DATDATA 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 AL,61H
JB NO
CMP AL,7AH
JA NO
MOV AH,02H ;输出回车符号
MOV DL,0Dh
INT 21H
MOV AH,02H ;输出换行符号
MOV DL,0Ah
INT 21H
MOV AH,02H ;
MOV DL,'lower'
INT 21H
JMP TUICHU
NO:MOV AH,02H ;输出回车符号
MOV DL,0Dh
INT 21H
MOV AH,02H ;输出换行符号
MOV DL,0Ah
INT 21H
MOV AH,02H ;
MOV DL,'upper'
INT 21H
TUICHU: MOV AH,4CH ;返回DOS状态,固定结构
INT 21H
CODE ENDS
END START
DATAS SEGMENT
SAY DB 'upper',13,10,'$'
SAY2 DB 'lower',13,10,'$'
SAY3 DB 'no',13,10,'$'
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
MOV AH,1 ;1号功能调用,从键盘读入一个字符,ASCII码送到AL
INT 21H
CMP AL,40H
JBE NO
CMP AL,5AH ;大写字母的ASCII码为41H~5AH,JBE为小于等于则跳转
JBE UPPER
CMP AL,60H
JBE NO
CMP AL,7AH ;小写字母的ASCII码为61H~7AH,JBE为小于等于则跳转
JBE LOWER
JMP NO ;否则 无条件跳转NO
UPPER:
LEA DX,SAY
MOV AH,9
INT 21H
JMP EXIT
LOWER:
LEA DX,SAY2
MOV AH,9
INT 21H
JMP EXIT
NO:
LEA DX,SAY3
MOV AH,9
INT 21H
JMP EXIT
EXIT:
MOV AH,4CH
INT21H
CODES ENDS
END START