Происходит что-то странное, я не понимаю.
У меня есть переменная данных:
variable_a dq 0
Я проверяю, что это 0:
(gdb) x variable_a
0x0: Cannot access memory at address 0x0
Такпока все хорошо.
У меня есть rax:
(gdb) i r
rax 0x7fffffffe9e2 140737488349666
I MOV rax в переменную.
mov [variable_a], rax
Я печатаю переменную.
(gdb) x variable_a
0xffffffffffffe9e2: <error: Cannot access memory at address 0xffffffffffffe9e2>
Почему это происходит?Похоже, 1/4 переменной устанавливается в 1 с, когда она должна быть 0 с.
Я перешел на использование переменной BSS, и она работает просто отлично.Я использую YASM.