IDV出了什么问题?我消除了所有常见的嫌疑人;没有符号扩展和大股息/小除数。但在尝试将-2147483646
与4
分开时,我仍然得到2
。 (我还在divison之前打印了rax和rcx,它们的值是正确的。)
.intel_syntax noprefix
.data
outfmt: .asciz "%d\n"
array: .int 4,31,5,4
.text
.global main
main:
enter 0,0
xor rcx, rcx
inc rcx
inc rcx
lea rdi, array
mov rax, [rdi]
cqto
idiv rcx
lea rdi, outfmt
mov rsi, rax
call printf
leave
ret