首先恭祝大家新春愉快过去是否经历过寒冬,已经不重要,春天已经来了,又可以开始新的一切了
这是本人节前的最后一帖,为了答谢各位坛友(当然还在网下的)的无私帮助
特在此散分助兴
可能有些朋友在为一些具体的事忙碌或在路上,看不到此帖,我在此也衷心地祝你们新的一年吉祥如意!

解决方案 »

  1.   

     嵌入汇编,无论答对与否都有分var Pos,a,b,i:Integer;
    px,py:PInteger;
    MyMax,MyMin:Integer;
    ....
    ....
    begin
    ....
    ....
    .....
    Pos:=a;
    ///////////////////////////////////////1
    while px^<=Pos do          
      begin
      if MYmax<py^ then  MYmax:=py^;
      if MyMin>py^ then MyMin:=py^;
      inc(px);
      inc(py);
      end;                     
     //////////////////////////////////////2 
    if MyMax>b then
    begin
    ........
    end;
     ///////////////////////////////////3
    for i:=a to b do
      begin
      if MYmax<py^ then  MYmax:=py^;
      if MyMin>py^ then MyMin:=py^;
      inc(py);
      end;            
    /////////////////////////////////////////4
    ....
    ....
    .....
    求上面 1--2注释间的嵌入汇编代码,
    如果方便的话也写出3--4部分的代码
    要求8086指令集,速度快
    据说可以提升速度很多!
      

  2.   

    View-debug windows-cpu
    自己看一下!
    用8086指令集就把EAX-->ax,其它cmp,jnz什么的都一样!
      

  3.   

     asm
     // jmp + $18
                   mov eax, [ebx]
                   cmp eax, [ebp - $14]
                   jle +$03 //////这句编译通不过
                   mov[ebp - $14], eax
                   cmp eax, [ebp - $18]
                   jnl + $03
                   mov[ebp - $18], eax
                   add ebx, $04
                   add esi, $04
                   cmp edx, [esi], jnl - $1C
                end;  
    是不是8086不重要,我想intel cpu能运行就可以了
    上面的代码有什么问题呢?
    还有,据说可以优化得很快,不知道如何做
      

  4.   

    加上两个变量x,y:integer
    不要每次都去取py^
    第一小段当中不需要每次都inc(px),只要记下最初的Pre(py),然后让px加上最后的py与Pre(py)的差值即可.至于使用汇编,其实在这里面没有任何助益.
      

  5.   

    不要那么想当然。之所以会觉得汇编快,在更多的时候是因为写代码时没有注意到可能影响或者可以改善效率的地方。比如说,在很多时候可能更习惯于用if...else if .... else ...之类的,而在特定的情况下是可以通过某些处理来转换成case ... of ...的。