相关疑难解决方法(0)

为什么在 NASM 中我们必须使用方括号 ([]) 来 MOV 到内存位置?

例如,如果我有一个名为 test 的变量,声明如下:

test db 0x01      ;suppose the address is 0x00000052
Run Code Online (Sandbox Code Playgroud)

如果我做这样的事情:

mov rax, test     ;rax = 0x00000052
mov rax, [test]   ;rax = 0x01
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试保存它时,如果我们遵循相同的模式:

mov test, 0x01    ;address 0x00000052 = 0x01
mov [test], 0x01  ;address 0x01 = 0x01
Run Code Online (Sandbox Code Playgroud)

但实际上是:

mov [test], 0x01  ;address 0x00000052 = 0x01
Run Code Online (Sandbox Code Playgroud)

那么,为什么方括号的行为取决于它们是第一个还是第二个操作数?

assembly nasm yasm

4
推荐指数
1
解决办法
938
查看次数

标签 统计

assembly ×1

nasm ×1

yasm ×1