求汇编语言大神帮忙看看错误

题目要求从键盘接收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
展开
 我来答
永恒pascal
2017-05-24 · TA获得超过4357个赞
知道大有可为答主
回答量:3902
采纳率:93%
帮助的人:661万
展开全部
        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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式