我尝试在汇编中进行简单的除法,但是出现“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程序)
答案 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}}时,您没有使用相同的分段值)。
这是唯一的可能性。