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

Delphi 內嵌組合語言:& 操作符取變量地址

     編輯:Delphi

組合語言中訪問 Delphi 變量地址的 & 操作符

在 asm 塊中,& 操作符用於獲取 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.Button2Click(Sender: TObject);
var ecx: Integer;  {與寄存器 ECX 重名}
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