要把下面这个简单的过程改写成汇编,应该怎么写?
  procedure testshowmsg2(str: string);
  begin
    ShowMessage(str);
  end;我看了CPC窗口是怎么写的:
      mov eax,[ebp-$04]
      call showmessage但我想他这么写时显示出来的并不是我传进去的值,而是乱码。

解决方案 »

  1.   


    procedure testshowmsg2(str: string);
    asm
      call ShowMessage;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      testshowmsg2('123');
    end;
      

  2.   

    如果要传递参数,可以这样写:procedure AsmTest;
    var
      s: string;
    begin
      s := '123';
      asm
        mov  eax, s
        call Showmessage
      end;
    end;前面那个也可这样写的:mov str但属多此一举