divide overflow急,32位除法

divide overflow急,32位除法
源程序:
.486
DATA SEGMENT
NUM1 DD 10000010H
NUM2 DW 1000H
NUM3 DW
NUM4 DW
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA SI,NUM1
MOV AX,[SI]
MOV DX,[SI+2]
;CWD
MOV CX,NUM2
;MOV CX,2
DIV CX
MOV NUM3,DX
MOV NUM4,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
穿草裙的鱼 1年前 已收到1个回答 举报

镜水幽幽 幼苗

共回答了16个问题采纳率:81.3% 举报

整数32位除16位有一半的机会Divide overflow,所以除之前先要识别再处理.
可以用高16位被除数与16位除数比较,如果高16位>=除数,用例外程序进行分支处理.

1年前 追问

8

穿草裙的鱼 举报

能说的详细一点吗,我是一个初学者,谢谢

举报 镜水幽幽

以你的程序讲,32位被除数装进DX(1000H),AX(0010H),除数装进CX(1000H) 先比较一下DX,CX 如果DX>=CX,则一定overflow, 另行作跳转处理,不进DIV CX指令分支.
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.016 s. - webmaster@yulucn.com