
汇编语言程序出错了,在线等 下面程序中连个cmp行出现了错误
DATASEGMENT;定义源数据段,数据段名称为DATAMSRDB"PLEASEINPUTDATA:$"DATAENDSCODESEGMENT;定义代码段,代码段名称为...
DATA SEGMENT ;定义源数据段,数据段名称为DATA
MSR DB "PLEASE INPUT DATA:$"
DATA ENDS
CODE SEGMENT ;定义代码段, 代码段名称为CODE
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA ;装载数据段
MOV DS,AX
MOV AH,09H ;显示提示信息PLEASE INPUT DATA:
MOV DX,OFFSET MSR
INT 21H
MOV AH,01H ;从键盘输入一个数据,该数据保存在AL中
INT 21H
MOV BL,AL ;将AL寄存器的数值存放到BL寄存器中
CMP BL,'7AH' ;小于5跳到NO去执行
JB NO
CMP BL,'61H' ;大于9跳到NO执行
JA NO
MOV AH,02H ;输出回车符号
MOV DL,0Dh
INT 21H
MOV AH,02H ;输出换行符号
MOV DL,0Ah
INT 21H
MOV AH,02H ;输出大写字母Y
MOV DL,'Y'
INT 21H
JMP TUICHU
NO:MOV AH,02H ;输出回车符号
MOV DL,0Dh
INT 21H
MOV AH,02H ;输出换行符号
MOV DL,0Ah
INT 21H
MOV AH,02H ;输出大写字母N
MOV DL,'N'
INT 21H
TUICHU: MOV AH,4CH ;返回DOS状态,固定结构
INT 21H
CODE ENDS
END START
CMP BL,'7AH'
CMP BL,'61H' 就是这俩行提示错误,题目的意思是输入一个字母判断是大写就显示Y,小写就显示N 程序里面注解是另外个程序的,我在那个程序基础上改的 展开
MSR DB "PLEASE INPUT DATA:$"
DATA ENDS
CODE SEGMENT ;定义代码段, 代码段名称为CODE
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA ;装载数据段
MOV DS,AX
MOV AH,09H ;显示提示信息PLEASE INPUT DATA:
MOV DX,OFFSET MSR
INT 21H
MOV AH,01H ;从键盘输入一个数据,该数据保存在AL中
INT 21H
MOV BL,AL ;将AL寄存器的数值存放到BL寄存器中
CMP BL,'7AH' ;小于5跳到NO去执行
JB NO
CMP BL,'61H' ;大于9跳到NO执行
JA NO
MOV AH,02H ;输出回车符号
MOV DL,0Dh
INT 21H
MOV AH,02H ;输出换行符号
MOV DL,0Ah
INT 21H
MOV AH,02H ;输出大写字母Y
MOV DL,'Y'
INT 21H
JMP TUICHU
NO:MOV AH,02H ;输出回车符号
MOV DL,0Dh
INT 21H
MOV AH,02H ;输出换行符号
MOV DL,0Ah
INT 21H
MOV AH,02H ;输出大写字母N
MOV DL,'N'
INT 21H
TUICHU: MOV AH,4CH ;返回DOS状态,固定结构
INT 21H
CODE ENDS
END START
CMP BL,'7AH'
CMP BL,'61H' 就是这俩行提示错误,题目的意思是输入一个字母判断是大写就显示Y,小写就显示N 程序里面注解是另外个程序的,我在那个程序基础上改的 展开
4个回答
展开全部
CMP BL,'61H' 是错误的。
可以使用:CMP BL, 61H ;
或者使用:CMP BL, 'a' 。
可以使用:CMP BL, 61H ;
或者使用:CMP BL, 'a' 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CMP OPR1 , OPR2 不能放立即数 把立即数放到寄存器里再cmp
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是要清空标志寄存器
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将CMP后面数字的引号去掉就可以了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询