首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 內嵌組合語言:var/out 參數取值技巧

     編輯:Delphi

地址參數在組合語言中的解引用操作

在 Delphi 內嵌組合語言中處理 var 或 out 參數時,寄存器中存放的是參數的地址而非值。必須使用方括號 [] 進行解引用取值,類似於 Delphi 中的指標解引用 P^。

核心代碼示例

function Fun(var x, y: Integer): Integer;
asm
  mov eax, x      {eax 現在保存的是 x 的地址}
  mov eax, [eax]  {[eax] 取值,類似 P^}
  mov edx, y
  add eax, [edx]  {將 y 的值加到 eax}
  {mov @Result, eax 此處可省略,EAX 默認即為返回值}
end;

測試調用

procedure TForm1.Button1Click(Sender: TObject);
var
  a, b: Integer;
begin
  a := 1;
  b := 8;
  a := Fun(a, b);
  ShowMessage(IntToStr(a));  {顯示 9}
end;

關鍵點: 方括號 [] 是組合語言中取內存值的標準語法,對應高級語言的指標解引用操作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved