如何在nasm x86汇编语言中使用寻址模式?

时间:2017-11-29 06:35:54

标签: assembly x86 nasm addressing-mode

我对在nasm x86汇编语言中寻址模式感到困惑 在阅读nasm手册后,我发现 [] 用于获取方括号内指定的内存位置的值。

我的理解:

var db 10

mov eax , var     ;  address of var is copied into eax register
mov eax , [var]   ;  value of var 10 is copied into eax register

这里我感到很困惑:

here the screenshot of the below code from a book i read

MY_TABLE TIMES 10 DW 0    ; Allocates 10 words (2 bytes) each initialized to 0
MOV EBX, [MY_TABLE]       ; Effective Address of MY_TABLE in EBX
MOV [EBX], 110            ; MY_TABLE[0] = 110
ADD EBX, 2                ; EBX = EBX +2
MOV [EBX], 123            ; MY_TABLE[1] = 123

(此代码取自assembly_tutorial tutorialspoint.com)

在第二行 MOV EBX,[MY_TABLE] ,根据我的理解,MY_TABLE指向一个初始化为零的地址。所以它应该将值0移动到ebx寄存器。但是他们在评论中提到了有效的地址 MY_TABLE被复制到EBX寄存器中。我怀疑的是,为什么要复制地址而不是零值。

在第三行 MOV [EBX],110 ,根据他们的评论,ebx的有效地址为MY_TABLE。所以根据我的理解[EBX]应该得到地址的值,所以它变成 mov value_at_effective_address,110 。那么将一个常数复制到一个值中有什么意义呢?

 MOV EBX, [MY_TABLE] ;a value copied into ebx or a address copied into ebx?

 MOV [EBX], 110  ; moving 110 to a memory loation or to a value at a memory address.

 MOV [EBX], 123 ; moving 123 to a memory location or to a value at a momory address.

0 个答案:

没有答案