汇编实现大小写字母转换程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、题目要求
编写程序,接收键盘输入的字符串,将其中大写字母转化为小写字母,并显示转化后的字符串。键盘输入的字符串存于STRBUF缓冲区中,最多输入30个字符。
二、实现原理
字符串是由若干个字符构成,而字符在计算机中以ASCII码形式存储,因此字符串是一个ASCII码序列。小写字符’a’…’z’的ASCII是61H~7AH,大写字符A’…’Z’的ASCII是41H~5AH,因此将大写字母转化为小写字母的方法是:大写字母ASCII加上20H。
三、实验程序及流程图
程序首先调用0A号功能,等待用户输入字符串,并存入STRBUF中。然后对输入字符逐个检测,若为大写字符,则将其转化为小写字符,否则不变。最后采用循环结构,使用02号调用,逐个显示字符串中的字符。流程图如图4.11所示。
–1–
图4.11 程序流程图
程序代码如下。
DATA SEGMENT
STRBUF DB 30,?,31 DUP (?) ;定义键盘接收缓冲区DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA
START:
–2–
第27章单片机实现密码锁MOV AX,DA TA
MOV DS,AX
LEA DX,STRBUF
MOV AH,0AH
INT 21H ;0A号调用,等待用户输入字符串
MOV CL,STRBUF+1
CMP CL,00
JZ EXITP
MOV CH,00H
MOV SI,2
XX1:
MOV AL,STRBUF[SI] ;读取一个字符
CMP AL,’A’
JB NEXT
CMP AL,’Z’
JA NEXT ;判断是否是大写字符,ASCII在41H~5AH之间
ADD STRBUF[SI],’a’-‘A’;大写字母ASCII值加20H
NEXT:
INC SI
LOOP XX1
MOV DL,0AH
MOV AH,02H
INT 21H ;控制换行
MOV CH,00
MOV CL,STRBUF+1
MOV SI,2
XX2:
MOV DL,STRBUF[SI]
MOV AH,02H
INT 21H
INC SI
LOOP XX2 ;显示字符串
EXITP:
MOV AH,4CH
INT 21H
CODE ENDS
END START
–3–