回 帖 发 新 帖 刷新版面

主题:请问一下,这个程序为什么会溢出?

;实现(V-(X*Y+Z-540))/X
DSEG    SEGMENT 'DATA'
X DW 0007H
Y DW 0030H
Z DW 0122H
V DW 0410H
W1 DW ?
W2 DW ?
DSEG    ENDS

SSEG    SEGMENT STACK   'STACK'
        DW      100h    DUP(?)
SSEG    ENDS

CSEG    SEGMENT 'CODE'

;*******************************************

START   PROC    FAR
    PUSH    DS
    MOV     AX, 0
    MOV     AX, DSEG
    MOV     DS, AX
    MOV     ES, AX
MOV AX,X
IMUL Y
MOV BX,AX
MOV CX,DX
MOV AX,Z
CWD
ADD CX,AX
ADC BX,DX
SUB CX,540
SBB BX,0
MOV AX,V
CWD
SUB AX,CX
SBB DX,BX
IDIV X                      ;除法溢出
MOV W1,AX
MOV W2,DX
    RET
START   ENDP

CSEG    ENDS 

        END    START


这程序在运行到idiv x这条语句时溢出,请问一下,为什么在这里会溢出?

回复列表 (共1个回复)

沙发

貌似LZ的程序没什么错误的样子。。。没检查出来

我来回复

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