汇编实现大小写字母转换程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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–

相关文档
最新文档