[讨论]Delphi中内嵌ASM
Delphi中内嵌ASM:
procedure sh(ss:string);
begin
showmessage(ss);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s := 'hello!';
asm
lea edx,s
call sh
end;
end;
上面有什么问题>?
Delphi中内嵌ASM:
procedure sh(ss:string);
begin
showmessage(ss);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s := 'hello!';
asm
lea edx,s
call sh
end;
end;
上面有什么问题>?
procedure sh(ss:string); stdcall;//这里要记得delphi默认是register调用,而不是stecall
begin
showmessage(ss);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s := 'hello!';
asm
push s {string的首地址是不能访问的,所以lea取它的首地址再跳转的时候会出错,我感觉应该是这样的}
call sh
end;
end;
我要的就是寄存器的方式
调用API才用stdcall