题目描述
试编写一个汇编程序,能对键盘输入的小写字母用大写字母显示出来(要求采用子程序格式,即采用子程序完成将小写字母转化成大写字母)。
代码及注释
DATA SEGMENT
MESSAGE DB 'This is not a lower case letter.',13,10,'$' ;不是小写字母的提示信息
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AH,01
INT 21H ;输入字符结束
MOV BL,97
CMP AL,BL ;比较输入字符与a的ASCII码
JB EXIT ;输入字符不是小写字母则跳转到退出位置
MOV BL,122
CMP AL,BL ;比较输入字符与z的ASCII码
JA EXIT ;输入字符不是小写字母则跳转到退出位置
MOV BL,AL
MOV BH,0
CALL NEXT ;已判断是小写字母则调用子程序
MOV AH,4CH
INT 21H
EXIT:MOV AH,9 ;不是小写字母则输出不是的提示
MOV DX,SEG MESSAGE
MOV DS,DX
MOV DX,OFFSET MESSAGE
INT 21H
MOV AH,4CH ;中断程序
INT 21H
NEXT:MOV AL,32 ;小写变大写子程序
SUB BL,AL ;大小写字母之间ASCII码相差32,输入字符ASCII-32得到大写字母
MOV DL,BL
MOV AH,02
INT 21H ;输出字符
RET
CODE ENDS
END START
离线