簡體   English   中英

程序集尋址模式和語法

[英]Assembly addressing mode and syntax

我是Assembly編程的新手,並在網上搜索了教程和電子書。 我發現了一些有關匯編語言語法的令人困惑的信息,例如在一個教程中,我閱讀了以下代碼:

MOV EBX, [MY_TABLE]     ; Effective Address of MY_TABLE in EBX
MOV [EBX], 110          ; MY_TABLE[0] = 110

在書中,我讀到:

mov ax, [Data] ; normal direct memory addressing of a wor
mov ebx, Data ; ebx = & Data
3 mov ax, [ebx] ; ax = *ebx

所以,當我們MOV封閉在一個變量[]像一個寄存器EBX ,我們存儲在寄存器什么樣的價值? 該存儲位置中的地址或實際值?

NASM手冊中

規則很簡單,對存儲位置內容的任何訪問都需要在地址周圍加上方括號,而對變量地址的任何訪問都不需要。 因此,形式為mov ax,foo的指令將始終引用編譯時常量,無論它是EQU還是變量的地址。 並且要訪問變量bar內容 ,必須對mov ax,[bar]編碼。

所以

MOV EBX, [MY_TABLE]     ; Effective Address of MY_TABLE in EBX

錯誤:它沒有將EBX設置為地址,而是將其設置為存儲在MY_TABLE地址中的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM