主题:除法溢出问题?
euc
[专家分:4310] 发布于 2005-12-10 10:46:00
不是说字除法,商超过8位则溢出吗?那60000/2 = 30000,不就是溢出了吗?
回复列表 (共5个回复)
沙发
erping [专家分:3660] 发布于 2005-12-10 12:40:00
当然会溢出
向上面除法是可以变通,以防止发生除溢出中断,还可提高执行效率
mov ax, 60000
shr ax, 1
对于单字除法,除数如果太小需要把被除数拖展为双字在除如
mov ax, 60000
mov cx, 2
cwd
div cx
板凳
zhoul [专家分:260] 发布于 2005-12-11 19:46:00
同意思楼上的说法;)
3 楼
movaxl [专家分:0] 发布于 2008-03-07 22:51:00
f
4 楼
movaxl [专家分:0] 发布于 2008-03-07 22:53:00
mov ax,60000
严重错误,16位装不下
5 楼
def [专家分:3380] 发布于 2008-03-07 23:30:00
ah=0
al=高字节
ax/=bl =al...ah
高得数=al
al=低字节
ax/=bl =al...ah
低得数=al
余数=ah
也就是
;; 被除数__bh__ __bl__ 除数__cs__ 商__sh__ __sl__ 余数__ys__
xor ah,ah
mov al,__bh__
mov bl,__cs__
div bl
mov __sh__,al
mov al,__bl__
div bl
mov __sl__,al
mov __ys__,ah
我来回复