DATA SEGMENT
BUF DB 40
DB ?
DB 40 DUP (?) ;输入的字符串存放在此处
BUF1 DB 13,10,40 DUP(?) ;字符串中的数字存放在此处
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AH,10
LEA DX,BUF
INT 21H
LEA DI,BUF1+2
LEA SI ,BUF+2
L_START: CMP BYTE PTR [SI],13 ;BYTE PTR[DI] 表示指向的值是个BYTE ,(一字节判断是否为回车,如果是则停止比较,否则继续比较
JZ L_END
CMP BYTE PTR [SI],'9' ;判断是否小于数字9的arscii码,如果小于等于说明有可能是数字字符
JBE L_EXIT
CMP BYTE PTR [SI],'a' ;判断是否大于‘a’的arscii码
JA L1
CMP BYTE PTR [SI],'z'
JB L1
L1: SUB BYTE PTR [SI],20H
MOV AL,BYTE PTR [SI]
MOV BYTE PTR [DI],AL ;判断出了是小写字母,则直接将其存放在buf1中
INC DI
L_EXIT:INC SI
JMP L_START
L_END: MOV BYTE PTR [DI],'$' ;这是给buf1中最后一个数字字符后面加一个‘$‘,这样等下就可以直接调用9号功能输出了
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载