程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 初學Delphi嵌入匯編[6] - & 操作符

初學Delphi嵌入匯編[6] - & 操作符

編輯:Delphi

//在匯編中訪問 Delphi 的變量可以使用 & 操作符

procedure Proc(str1,str2: string);
var
 s1,s2: string;
begin
 asm
  mov ecx, &str1 {}
  mov edx, &str2
  mov &s1, ecx  {}
  mov &s2, edx
 end;
 ShowMessage(s1 + s2);
end;

{在沒有歧義的情況下, 操作符 & 是可以省略的, 譬如上面的例子就可以省略}

//測試

procedure TForm1.Button1Click(Sender: TObject);
begin
 Proc('我是', '萬一'); {顯示: 我是萬一}
end;

//在什麼情況下不能省略呢? 例如:

procedure TForm1.Button2Click(Sender: TObject);
var
 ecx: Integer;  {這個變量和其中一個寄存器重名了}
begin
 ecx := 99;
 asm
  mov ecx, &ecx {現在 ecx 是寄存器; &ecx 是變量}
  add ecx, 1
  mov &ecx, ecx
 end;
 ShowMessage(IntToStr(ecx)); {100}
end;

{現在也得知: 其實這之前的例子, 只要是在匯編中使用的本地變量都可以加 & }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved