求汇编语言大神帮忙看看错误
题目要求从键盘接收2个4位无符号十六进制数,现在这个程序输入纯数字的数没有问题但是输入字母就出错(如:输入1a2c显示3a4c),请大神帮忙指出错误与改正DATASEGM...
题目要求从键盘接收2个4位无符号十六进制数,现在这个程序输入纯数字的数没有问题但是输入字母就出错(如:输入1a2c显示3a4c),请大神帮忙指出错误与改正
DATA SEGMENT
NUMBER DW 10 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
XOR BX,BX
MOV SI,0
MOV CX,2
INP:
PUSH CX
MOV CX,4
INPUT:
MOV AH,01H
INT 21H
CMP AL,3AH
JL NUM
SUB AL,7H
NUM:
SUB AL,30H
CBW
XOR AH,AH
SAL BX,1
SAL BX,1
SAL BX,1
SAL BX,1
ADD BX,AX
LOOP INPUT
MOV NUMBER[SI],BX
ADD SI,2
POP CX
LOOP INP
MOV AH,4CH
INT 21H
CODE ENDS
END START 展开
DATA SEGMENT
NUMBER DW 10 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
XOR BX,BX
MOV SI,0
MOV CX,2
INP:
PUSH CX
MOV CX,4
INPUT:
MOV AH,01H
INT 21H
CMP AL,3AH
JL NUM
SUB AL,7H
NUM:
SUB AL,30H
CBW
XOR AH,AH
SAL BX,1
SAL BX,1
SAL BX,1
SAL BX,1
ADD BX,AX
LOOP INPUT
MOV NUMBER[SI],BX
ADD SI,2
POP CX
LOOP INP
MOV AH,4CH
INT 21H
CODE ENDS
END START 展开
1个回答
展开全部
DATA SEGMENT
NUMBER DW 10 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
XOR BX,BX
MOV SI,0
MOV CX,2
INP:
PUSH CX
MOV CX,4
INPUT:
MOV AH,01H
INT 21H
CMP AL,3AH
JL NUM
SUB AL,27H ; 小写字母应减27H
NUM:
SUB AL,30H
CBW
XOR AH,AH
SAL BX,1
SAL BX,1
SAL BX,1
SAL BX,1
ADD BX,AX
LOOP INPUT
MOV NUMBER[SI],BX
ADD SI,2
POP CX
LOOP INP
MOV AH,4CH
INT 21H
CODE ENDS
END START
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询