划分emu 8086汇编错误

时间:2012-12-18 21:15:26

标签: assembly x86-16 divide-by-zero

  

可能重复:
  ASM x86 integer overflow

我得到一个除法错误溢出,我不知道为什么。 以下是重现错误的完整代码

include emu8086.inc

org 100h

       mov ax, 2 
       mov bx, 10
       div bx

       mov ax, 2
       mov bx, 2
       div bx   
       ret

1 个答案:

答案 0 :(得分:7)

尝试在每个xor dx, dx之前添加div,看看是否有帮助。

由于您指定的是16位目标,div会将dx:ax除以该目标。如果dx开始包含大量数字(更准确地说,只有非常小的数字),结果将溢出。即使它没有溢出,您的结果也不会像您显然想要的那样ax / bx

相关问题