在下面的汇编语言程序中增加数字5次,在递增数字后,消息应该只显示一次,但在我的情况下,它会显示两次。如果不使用NUM作为命名内存位置,我只使用BL作为寄存器来存储输入值并对其执行计算,则不会出现这种情况。为什么这样?
DATA_HERE SEGMENT
MSG DB "ENTER THE NUMBER: $"
MSG1 DB "NUMBER AFTER INCREMENTING 5 TIMES: $"
NUM DB ?
DATA_HERE ENDS
CODE_HERE SEGMENT
ASSUME CS:CODE_HERE, DS:DATA_HERE
START:
MOV AX, DATA_HERE
MOV DS, AX
LEA DX, MSG
MOV AH, 09H
INT 21H
MOV AH, 01H
INT 21H
MOV NUM, AL
;NEWLINE
MOV AH, 02H
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H
MOV CL, 05H
REPEAT:
INC NUM
DEC CL
JNZ REPEAT
LEA DX, MSG1
MOV AH, 09H
INT 21H
MOV DL, NUM
MOV AH, 02H
INT 21H
CODE_HERE ENDS
END START
输出是:
ENTER THE NUMBER: 2
NUMBER AFTER INCREMENTING 5 TIMES: 7
NUMBER AFTER INCREMENTING 5 TIMES: _
另外,我假设递增后的数字将小于9.
如果
该怎么做