例如,如果我有一个名为 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)
那么,为什么方括号的行为取决于它们是第一个还是第二个操作数?