回 帖 发 新 帖 刷新版面

主题:除法溢出问题?

不是说字除法,商超过8位则溢出吗?那60000/2 = 30000,不就是溢出了吗?

回复列表 (共5个回复)

沙发

当然会溢出

向上面除法是可以变通,以防止发生除溢出中断,还可提高执行效率
mov ax, 60000
shr ax, 1

对于单字除法,除数如果太小需要把被除数拖展为双字在除如
mov ax, 60000
mov cx, 2
cwd
div cx

板凳

同意思楼上的说法;)

3 楼

f

4 楼

mov ax,60000
严重错误,16位装不下

5 楼

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

我来回复

您尚未登录,请登录后再回复。点此登录或注册