procedure P(A, B: Integer);
begin
  { TODO : 实现 Result := A + B }
end;type
  TF = function(A, B: Integer): Integer;procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption := IntToStr(TF(@P)(1, 2)); //1 + 2 -> 3
end;

解决方案 »

  1.   

    用asm mov eax,xxx end;代替 result:=xxx 即可
      

  2.   

    procedure P(A, B: Integer);
    var
      r: Integer;
    begin
      { TODO : 实现 Result := A + B }
      r := A + B;
      asm
        mov EAX, r
      endend;
      

  3.   

    3楼正确
    procedure P(A, B: Integer);
    begin
      { DONE : 实现 Result := A + B }
      asm
        MOV EAX,A
        ADD EAX,B
      end;
    end;总结:过程是pascal特有的,但本质上和函数没有什么其别
      

  4.   

    最简单的:
    procedure P(A, B: Integer);
    asm
      ADD A, B
    end;
      

  5.   

    不太明白为什么要这样用?用Function有什么问题么?
      

  6.   

    to qiume: 分可以给,性欲给不了,不由得我啊
      

  7.   

    看CPU Window都能有所发现的
      

  8.   

    to belllab:别那么认真,只想和大家交流一下程序与程序之间那微妙的差别而已