我不知道发生了什么奇怪的事情。
我有一个数据变量:
variable_a dq 0
我检查它为0:
(gdb) x variable_a
0x0: Cannot access memory at address 0x0
到目前为止很好。
我有rax:
(gdb) i r
rax 0x7fffffffe9e2 140737488349666
我将MOV rax转换为变量。
mov [variable_a], rax
我打印变量。
(gdb) x variable_a
0xffffffffffffe9e2: <error: Cannot access memory at address 0xffffffffffffe9e2>
为什么会这样?看起来应该将变量的1/4设置为1s应该是0s。
我改为使用BSS变量,它工作得很好。 我正在使用YASM。