0
我遇到了我的汇编代码问题。每当我调试这个代码时,Division Overflow是总是错误的。当AX的值只有两位数时,代码平稳运行。汇编语言 - 分区溢出(4位数)
我需要做什么改变才能使分区工作4位数值?谢谢。
ASSUME DS:DATA, CS:CODE
DATA SEGMENT
X DW 0
Y DW ?
s DB "The aswer is", 0
Z DW 4
DATA ENDS
CODE SEGMENT
MAIN PROC
MOV DS:[Y],23
MOV AX,[Y]
ADD AX,4556
MOV [X],AX
PUSH[X]
CALL WRITE
POP[X]
MOV AH,4CH
INT 21H
MAIN ENDP
WRITE PROC
PUSH BP
MOV BP,SP
MOV AX,0B800H
MOV ES,AX
MOV ES,AX
MOV DI,5*160
MOV AX,[BP+4]
MOV BL,10
DIV BL
ADD AL,'0'
STOSB
XCHG AH,AL
ADD AL,'0'
STOSB
MOV AL, 00001111B
STOSB
POP BP
RET
WRITE ENDP
CODE ENDS
END MAIN
你可以'添加斧子'00''(或'3030h')一次做al和ah。然后,你可以'stosw'来一次存储它们。你可以'mov byte ptr [di],00001111B',而不是先在'AL'中加入一个值。 –