实验内容:
编写程序,从键盘输入一串字符,将其中的小写字母转变为大写字母,其他字符不作转换,原样输出,结果在屏幕上显示。
相关知识:
- 掌握分支与循环结构的程序设计
- 掌握常用dos功能操作
程序流程图:
实现代码:
DATA SEGMENT
BUF DB 30 ;缓冲区长度
DB ? ;输入字符串的长度
DB 30 DUP(?) ;实际输入内容
CRLF DB 0AH,0DH,0AH,'$'
MSG1 DB 'INPUT STRING:',0AH,0DH,'$'
MSG2 DB 'OUTPUT STRING:',0AH,0DH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX ;数据段地址经AX传送给DS
INPUT:;字符串输入及提示
MOV DX,OFFSET MSG1
MOV AH,09H
INT 21H
LEA DX,BUF
MOV AH,0AH
INT 21H
LEA SI,BUF+1;缓冲区字符串循环输出初始化
MOV CL,[SI]
MOV CH,00H
LEA SI,BUF+2
READ: ;将输入的字符展示出来
MOV AL,[SI]
MOV DL,AL;
MOV AH,02H
INT 21H
INC SI
LOOP READ
MOV DX,OFFSET CRLF
MOV AH,09H
INT 21H
OUTPUT:字符串输出提示
MOV DX,OFFSET MSG2
MOV AH,09H
INT 21H
ORIG:;字母转换及单个字符输出循环初始化
LEA SI,BUF+1
MOV CL,[SI]
MOV CH,00H
LEA SI,BUF+2
JUBG:;对字母进行判断
MOV AL,[SI]
CMP AL,61H
JB DISP
CMP AL,7AH
JA DISP
SUB AL,20H
DISP:;展示转换后的单个字符
MOV DL,AL
MOV AH,02H
INT 21H
INC SI
LOOP JUBG
FINAL:;退出程序
MOV AH,4CH
INT 21H
CODE ENDS
END START