Я хочу получить два номера и сделать деление. Но он продолжает бросать исключение Float Point, поэтому я использовал gdb для отладки, и я обнаружил, что когда я храню значение rax, его высокие биты «повреждены».NASM mov работает неправильно
Когда [num] - 20d, 0x2800000014 хранится в rax.
Когда [num] 40d хранится 0x1400000028.
Я предполагаю, что некоторые из его высоких бит загружаются (?), Когда я их храню. В чем проблема?
section .data
in: db "%d %d", 0
len: equ $-in
section .bss
num: resd 2
section .text
main:
mov rdi, in
mov rsi, num
mov rdx, num + 4
xor rax, rax
call scanf
mov rax, [num] ; ------------- here
mov rdx, [num + 4]
idiv rdx
...
xor rax, rax
ret