A在emu8086中写了一个程序,它读取2个32位十六进制数并计算出它们的64位数产品。因为寄存器是16位的,所以我每次读取4位数字并将它们存储在其中一个中。我的问题是,当我阅读并打印(供用户查看他输入的内容)数字时,每4个数字我的程序会打印一个额外的字符。我找不到任何错误,所以我把这个例程放在这里我认为必须引起这个。
READ_HEX PROC NEAR
LL: READ
CMP AL,'0'
JL LL
CMP AL,'9'
JLE NEXT1
CMP AL,'A'
JL LL
CMP AL,'F'
JLE NEXT2
NEXT1:
PRINT AL
SUB AL,30H
RET
NEXT2:
PRINT AL
SUB AL,37H
RET
READ_HEX ENDP
MAKE_16_BIT PROC NEAR
MOV CX,4
MOV BX,0
MOV AX,0
L: CALL READ_HEX
MOV AH,0
ROL BX,4
ADD BX,AX
LOOP L
MAKE_16_BIT ENDP
答案 0 :(得分:0)
根据您提供给我们的非常有限的代码数量,并且完全没有上下文,我建议您可能会错过第二个程序中的ret
。