回 帖 发 新 帖 刷新版面

主题:如何向汇编代码里传入全局变量

procedure JC_call;
var
 addr_tt:pointer;
 begin
    addr_tt   :=pointer($72fce10);
  pushad
    push xxxxxxxx
   mov ecx,xxxxxxx  我想把这里换成mov ecx,P ,这里 P 位置上的 值 是一会一变的我要从一个固定内存读出来。
     CALL  addr_tt
  popad
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
    P:=$XXXXXXXX  ; 这是我从内存里读出 的数据
end;
我现在的问题是P的值就不能正确的传到 mov ecx,P 这。
请问有别的解决办法吗?
end.

回复列表 (共1个回复)

沙发

  pushad
    push xxxxxxxx     不知addr_tt会不会释放这个压栈,不释放的话popad不乱套?
    mov ecx,xxxxxxx  
    CALL  addr_tt
  popad

我只是从汇编角度来看的。DELPHI调用汇编子程序,最好都用堆栈传递参数

我来回复

您尚未登录,请登录后再回复。点此登录或注册