8086汇编 - 划分溢出

时间:2012-08-27 21:02:05

标签: assembly x86 x86-16

我尝试在汇编中进行简单的除法,但是出现“Divide overflow”错误。

我的简单代码: cs:sum和cs:num是一个字节变量。 (分贝)

    mov ax, word ptr cs:sum
mov cl, 10
xor dx,dx
div cl ; divide by 10
mov cs:num, ah ; ger rightest

不确定原因 - 但正如我所说 - 我未能妥善处理。

那么你知道那个问题是什么以及如何解决它?谢谢!

(我正在使用cs deference,因为这是一个TSR程序)

1 个答案:

答案 0 :(得分:4)

为此导致除法异常

mov ax, word ptr cs:sum
mov cl, 10
div cl

ax(来自word ptr cs:sum)的值必须>> = 2560.

word ptr cs:sum不是< word ptr cs:sum 2560或代码中的代码已被破坏,您没有将值存储在sum中或从那里获取(例如,在引用{{1}}时,您没有使用相同的分段值)。

这是唯一的可能性。