我正在尝试进行简单的划分:
mov ebx, 10
mov eax, 1111111111 ;(10 times)
mov edx, 0
idiv bx
据说我想得到以下结果:
edx = 1
eax = 111111111(9次)
但我得到的结果是:
edx = 7
eax = 1111098720
有谁知道问题可能是什么?
由于
答案 0 :(得分:1)
mov ebx, 10 mov eax, 1111111111 ;(10 times) mov edx, 0 idiv bx
立刻让我感到震惊的是,您为 32 位操作设置了所有寄存器,但随后执行 16 位除法。 将其更改为以下内容将得到所需的结果:
mov ebx, 10
mov eax, 1111111111
cdq
idiv ebx