英文字母大小写转换程序设计 (2)
大小写字母转换设计(含程序)--课程设计

摘要在课程设计之前,具备微机原理的理论知识和实践能力;熟悉汇编语言编程技术;熟悉80X86的CPU结构和指令系统;熟悉相关常用接口电路的设计使用方法是必不可少的。
因此原理部分重新温习并整理了相关知识。
课程设计要求进行大小写字母的转换。
其实字母大小写的区别在于他们的ASCII码范围,它们之间的转换其实就是加减相应的ASCII码值。
在判断输入的字母是大写的还是小写的(即判断输入符号ASCII码在41H~5AH还是在61H~7AH内)之后,决定判断是加上还是减去ASCII码值。
另外如果输入的不是字母(输入字符对应ASCII码值不在41H~5AH或61H~7AH内),则需要报警提示,这不但涉及到用汇编语言实现发声的方法,而且对计算机硬件的了解也有要求,因此原理部分加入了部分有关声音产生的硬件知识。
关键词:汇编语言,ASCII码,大小写转换1.原理简介1.1 8086的内部结构80x86从功能上分执行单元EU(Execution Unit),和总线接口单元BIU(Bus Interface Unit),执行单元由算术逻辑单元(ALU)、标志寄存器、通用寄存器组和EU控制器等部件组成。
指令执行部件EU由算术逻辑单元、标志寄存器、通用寄存器和EU控制器等部件组成。
主要功能是执行指令:一般顺序执行,EU不断地从指令队列中取指令连续执行,而省去访问存储器取指令的时间。
需要访问存储器取操作数时,EU将访问地址送给BIU后,将要等待操作数到来后才能继续操作;遇到转移类指令时,要将指令队列中的后续指令作废,等待BIU重新从存储器取出目标地址中的指令代码进入指令队列后,EU才能继续执行指令。
算术逻辑单元(ALU)完成16位或8位的二进制运算;16位暂存寄存器用来暂存参加运算的操作数。
运算结果通过内部总线送到通用寄存器组或BIU的内部寄存器中等待写入存储器。
经ALU运算后的结果特征置入标志寄存器中保存EU控制器负责从BIU的指令队列中取指令,并对指令译码;根据指令要求向EU内部各部件发出控制命令以完成各条指令的功能。
《C语言程序设计》(软件技术11级)(第2章)

2.1基本字符、标识符和关键字
2.1.3 关键字(保留字) 为系统预定义的标识符,在C语言中有特殊的 含义
void int return float double char long short unsigned if else switch case default break
do while continue for
2.3数据的格式化输出和输入
输入输出函数库: stdio.h printf() scanf() getchar() putchar() gets() puts()
2.3数据的格式化输出和输入
2.3.1数据的格式化输出
学一学
printf( 格式控制,【输出列表】) ;
格式控制是用双引号括起来的字符串,分两种情况: 1.字符串只含有普通字符或转义字符,则不包含输出 列表。(练一练:\*‟\n‟为转义字符,表示换行*\)
结构类型 联合类型 枚举类型
struct union enum
空类型(无值类型) void
2.2数据类型及常数、变量
1.不同类型的数据在内存中占据不同长度的存 储区(字节),且采用不同的表示方式。 2.一种数据类型对应着一个取值的范围 3.一种数据类型对应着一组允许的操作 4.构造类型数据是由基本类型按照一定的规律 构造出来的。 5.C语言的数据又可分为常量和变量,他们都 分别属于上述类型中得一种。
iSum=iPrize1+iPrize2;
printf("该同学的奖学金为:%d\n",iSum);
return 0;
}
2.3数据的格式化输出和输入
大小写字母的转换方法

大小写字母的转换方法1.引言1.1 概述在计算机编程中,大小写字母的转换是一项非常常见且基础的操作。
在编程语言中,我们经常需要将字符串的大小写进行转换,以满足不同的需求和操作。
大小写字母转换的方法可以根据具体的编程语言来进行实现,不同的语言可能会有不同的方式和函数来实现这一功能。
在本篇文章中,我们将探讨大写字母转小写字母和小写字母转大写字母的方法。
我们将会介绍一些常见的方式和技巧,帮助读者了解如何在不同的编程语言中实现大小写字母的转换。
通过学习本文,读者将能够掌握如何使用相关的编程语言函数或方法来实现大小写字母的转换。
这将为读者在编程过程中处理字符串提供便利,提高编码效率。
此外,我们还将探讨大小写字母转换的应用场景,帮助读者理解这一技巧在实际开发中的价值和作用。
总之,本篇文章将通过详细介绍大写字母转小写字母和小写字母转大写字母的方法,帮助读者对这一功能有全面的了解。
同时,我们还将讨论其在实际开发中的应用场景,以便读者能够更好地运用它们来解决问题。
接下来,我们将系统地介绍大写字母转小写字母和小写字母转大写字母的方法,以便读者能够更好地掌握和运用这一技巧。
1.2文章结构文章结构部分的内容:文章结构是指文本在整体上的组织方式和逻辑顺序,它决定了文章的基本框架和内容的呈现方式。
一个良好的文章结构可以帮助读者更好地理解文章的主题和观点。
本文主要介绍关于大小写字母转换方法的内容,文章结构包括引言、正文和结论三个部分。
在引言部分,我们将会对本文的内容进行概述,说明文章的目的和意义。
我们将介绍大小写字母转换方法对于书写规范和文字处理的重要性,并简要介绍本文的结构,为读者提供文章整体架构的预期。
在正文部分,我们将详细介绍大写字母转小写字母的方法和小写字母转大写字母的方法。
在2.1节,我们将阐述大写字母转小写字母的方法,包括使用编程语言的内置函数或算法来实现转换,以及手动进行大小写转换的一些常用规则。
在2.2节,我们将介绍小写字母转大写字母的方法,包括同样使用编程语言的内置函数或算法来实现转换,以及手动进行大小写转换的规则。
c语言26个大写和26个小写的英文字母

C语言中的26个大写和26个小写的英文字母是程序设计中的常见元素。
它们的使用不仅仅局限于编程中的变量命名和字符串处理,还涉及到字符集编码、大小写转换、ASCII码等方面。
在本文中,我们将深入探讨这些英文字母在C语言中的应用和相关知识。
1. ASCII码和字符集编码我们需要了解ASCII码和字符集编码的概念。
ASCII码是美国信息交换标准代码的缩写,它使用7位或8位二进制数表示128个字符,包括数字、英文字母、标点符号和控制字符等。
在ASCII码中,大写英文字母从A到Z的编码分别是65到90,小写英文字母从a到z的编码分别是97到122。
这些编码在C语言中的应用非常广泛,可以用于字符的比较、排序和转换等操作。
2. 字符的大小写转换C语言提供了一系列用于字符大小写转换的函数,比如toupper和tolower。
这些函数可以将大写字母转换为小写字母,或者将小写字母转换为大写字母。
在实际编程中,我们经常需要对用户输入的字符串进行大小写转换,或者对字符串中的字母进行统一的大小写处理。
这些函数的使用可以大大简化我们的编程工作,并提高程序的可读性和健壮性。
3. 字符串处理另外,26个大写和26个小写的英文字母在C语言中也经常用于字符串处理。
我们需要统计字符串中大写字母和小写字母的个数,或者将字符串中的所有字母转换为大写或小写。
我们还可以利用26个大写和26个小写的英文字母进行字符串的匹配和查找操作,比如在一个文本中查找某个单词或模式出现的位置。
所以说,26个大写和26个小写的英文字母在C语言中扮演着非常重要的角色。
它们不仅是编程中常见的元素,还涉及到字符集编码、大小写转换、字符串处理等方方面面。
对于一个C语言程序员来说,深入理解和熟练运用这些英文字母是至关重要的。
总结回顾我们在本文中深入探讨了C语言中26个大写和26个小写的英文字母的应用。
我们首先介绍了ASCII码和字符集编码的概念,然后讨论了字符的大小写转换和字符串处理。
英文字母大小写转换程序设计(2)

英⽂字母⼤⼩写转换程序设计(2)摘要 (1)数制转换 (2)1 DOS功能调⽤介绍 (2)2 设计⽅案 (5)3 总程序 (6)4 程序流程图及程序设计分析 (13)4.1主程序流程图 (13)4.2主程序流程图分析 (14)4.3⼤⼩写转换⼦程序ABC (14)4.3.1 ⼦程序ABC (14)4.3.2 ⼦程序ABC的流程图 (16)4.3.3 ⼦程序ABC流程图分析 (16)4.4ASCII码转换⼦程序CBA (17)4.4.1 ⼦程序CBA (17)4.4.2 ⼦程序CBA的流程图 (18)4.4.3 ⼦程序ABC流程图分析 (18)5 程序运⾏实例 (19)5.1⼤⼩写转换 (20)5.2ASCII码转换 (20)5.3输⼊⾮字符 (21)5.4调试中出现的错误 (21)6 ⼼得体会 (23)参考⽂献 (24)摘要汇编语⾔是直接⾯向处理器(Processor)的程序设计语⾔。
处理器是在指令的控制下⼯作的,处理器可以识别的每⼀条指令称为机器指令。
每⼀种处理器都有⾃⼰可以识别的⼀整套指令,称为指令集。
处理器执⾏指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变⾃⼰内部的⼯作状态,也能控制其它外围电路的⼯作状态。
汇编语⾔的主要特点是可以使⽤助记符来表⽰机器指令的操作码和操作数,可以⽤标号和符号来代替地址、常量和变量。
这次课程设计的任务是⽤汇编语⾔进⾏⼀个数制转换,从键盘输⼊⼀串字符(⾮字符则不接受),通过屏幕提⽰菜单选择转换成ASCII码,或者进⾏⼤⼩写转换(原来是⼤写转换成⼩写,⼩写则转换为⼤写)并显⽰。
先输⼊要转换的数据,再对数据进⾏检验判断其合法性,对不合法的数据进⾏警报并重新输⼊数据,对合法的数据按照要求进⾏⼤⼩写转换或者转换成ASCII,码,最后显⽰转换后的字符串。
关键词:DOS功能调⽤ ASCII码⼤⼩写转换数制转换1 DOS功能调⽤介绍DOS是⼀个磁盘操作系统,也称为IBM-DOS或者MS-DOS。
c语言实验题――大小写转换

C语言实验题――大小写转换一、实验背景大小写转换是C语言中常见的操作之一,可以实现将字符串中的所有小写字母转换成大写字母,或者将所有大写字母转换成小写字母。
在本实验中,我们将通过编写C语言程序实现大小写转换的功能。
二、实验目的通过本实验,我们可以达到以下目的:1.熟悉C语言的基本语法和基本函数的使用。
2.掌握字符串的处理方法及大小写转换的逻辑。
3.提升编程能力和解决实际问题的能力。
三、实验内容1.大小写转换函数的设计首先,我们需要设计一个函数,用于实现大小写转换的功能。
函数的原型如下:v o id co nv er tC as e(c h ar*s tr);该函数接受一个字符串作为参数,将字符串中的所有小写字母转换成大写字母,或者将所有大写字母转换成小写字母。
2.主函数的编写接下来,我们需要编写主函数,完成以下操作:1.提示用户输入一个字符串。
2.调用大小写转换函数,将用户输入的字符串进行大小写转换。
3.输出转换后的字符串。
3.程序测试最后,我们需要对程序进行测试,检查是否正确实现了大小写转换的功能。
四、实验步骤1.在本地的C语言集成开发环境(I DE)中创建一个新的C文件。
2.编写大小写转换函数`c on ve rt Ca se`,实现大小写转换的逻辑。
3.编写主函数,完成用户输入、大小写转换和输出的功能代码。
4.编译并运行程序,进行测试。
五、实验代码示例#i nc lu de<s td io.h>v o id co nv er tC as e(c h ar*s tr){i n ti=0;w h il e(st r[i]!='\0'){i f(s tr[i]>='a'&&s t r[i]<='z'){s t r[i]=s tr[i]-32;//转换为大写字母}e ls ei f(st r[i]>='A'&&s tr[i]<='Z'){s t r[i]=s tr[i]+32;//转换为小写字母}i++;}}i n tm ai n(){c h ar st r[100];p r in tf("请输入一个字符串:");s c an f("%s",s tr);c o nv er tC as e(st r);p r in tf("转换后的字符串:%s\n",st r);r e tu rn0;}六、实验结果与分析通过以上代码,我们可以实现将输入的字符串进行大小写转换并输出转换后的结果。
代码转换(大小写字母转换)

北华航天工业学院课程设计报告(论文)设计课题:代码转换大小写字母转换专业班级:电子信息工程学生姓名:指导教师:设计时间: 2010-12-16北华航天工业学院电子工程系微机原理课程设计任务书指导教师:教研室主任:年月日内容摘要在课程设计之前,具备微机原理的理论知识和实践能力;熟悉汇编语言编程技术;熟悉80X86的CPU结构和指令系统;熟悉相关常用接口电路的设计使用方法是必不可少的。
因此原理部分重新温习并整理了相关知识。
课程设计要求进行大小写字母的转换。
其实字母大小写的区别在于他们的ASCII码范围,它们之间的转换其实就是加减相应的ASCII码值。
在判断输入的字母是大写的还是小写的(即判断输入符号ASCII码在41H~5AH还是在61H~7AH内)之后,决定判断是加上还是减去ASCII码值。
关键词:汇编代码转换大小写目录一、概述 (1)二、方案设计与论证 (1)1.汇编语言基础 (1)2.方案设计 (2)三、程序设计 (3)1.程序设计流程图 (3)2.程序代码 (4)四、运行结果 (5)五、心得体会 (6)六、参考文献 (6)一、概述:在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制,常用的代码有BCD码、ASCll码和七段显示码等。
这些数制和编码根据其作用的不同,在存储形式上也有差异。
在实际应用中,它们也因使用的要求不同而有所差异。
在配备操作系统管理程序的计算机中,有些代码转换程序已在系统管理软件中编好。
还有些代码转换需要根据使用要求通过编程完成。
因此,代码转换是非数据处理中最常见的情况。
二、方案设计:1、汇编语言基础汇编:计算机不能直接识别和执行汇编语言程序,而要通过“翻译”把源程序译成机器语言程序(目标程序)才能执行,这一“翻译”工作称为汇编。
汇编有人工汇编和计算机汇编两种方法。
汇编语言是面向机器的,每一类计算机分别有自己的汇编语言。
汇编语言占用的内存单元少,执行效率高,广泛应用于工业过程控制与检测等场合。
大小转换程序

前言在20世纪的最后20年中,计算机被成功的应用于工程设计和制造业中,它成倍的提高了劳动生产率,创造了空前巨大的物质文明,它把任何创新的思想转化为市场商品的时间缩短到惊人的程度计算机技术的发展日新月异,在未来的几年中,各种计算机相关技术都会得到飞速发展和应用,使计算机变得更加人性化,智能化。
而多媒体技术与网络技术的迅猛势头人类所使用的计算工具是随着生产的发展和社会的进步,从简单到复杂、从低级到高级的发展过程,计算工具相继出现了如算盘、计算尺、手摇机械计算机、电动机械计算机等。
1946年,世界上第一台电子数字计算机(ENIAC)在美国诞生。
这台计算机共用了18000多个电于管组成,占地170m2,总重量为30t,耗电140kw,运算速度达到每秒能进行5000次加法、300次乘法。
电子计算机在短短的50多年里经过了电子管、晶体管、集成电路(IC)和超大规模集成电路(VLSI)四个阶段的发展,使计算机的体积越来越小,功能越来越强,价格越来越低,应用越来越广泛,目前正朝智能化(第五代)计算机方向发展。
微机原理与接口技术的进步将更好更快的推动计算机技术的发展。
在未来的社会中将其这越来越重要的作用。
目录1设计思路及流程图 12 程序段设计 32.1实现“0”“1”输入和判断的程序段 32.2 大小写字母判断程序段设计 52.3 大小写字母转换程序设计72.4 响铃报警程序设计83 总程序设计及调试10心得体会16参考文献181设计思路及流程图本次课设的题目是:英文字母大小写转换程序设计。
要求:1、输入英文字母串,在回车后实现大小写转换。
2、按命令要求将字符串转换为全部大写或全部小写。
3、非英文字母不允许输入并声响报警。
4、程序采用汇编语言在PC机上完成。
接到这个题目时,我首先考虑到大小写之间的转换是关键,可能要用到子程序,循环程序和中断程序以及一些比较和跳转指令等。
在经过反复思考和设计后我得到了以下的设计思路:首先程序应该输出提示信息,以用来为下面的程序选择做准备(是选择大写转小写程序还是选择小写转大写程序),如“0”和“1”.“0”用来执行大写转小写程序,“1”用来执行小写转大写程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要 (1)数制转换 (2)1 DOS功能调用介绍 (2)2 设计方案 (5)3 总程序 (6)4 程序流程图及程序设计分析 (13)4.1主程序流程图 (13)4.2主程序流程图分析 (14)4.3大小写转换子程序ABC (14)4.3.1 子程序ABC (14)4.3.2 子程序ABC的流程图 (16)4.3.3 子程序ABC流程图分析 (16)4.4ASCII码转换子程序CBA (17)4.4.1 子程序CBA (17)4.4.2 子程序CBA的流程图 (18)4.4.3 子程序ABC流程图分析 (18)5 程序运行实例 (19)5.1大小写转换 (20)5.2ASCII码转换 (20)5.3输入非字符 (21)5.4调试中出现的错误 (21)6 心得体会 (23)参考文献 (24)摘要汇编语言是直接面向处理器(Processor)的程序设计语言。
处理器是在指令的控制下工作的,处理器可以识别的每一条指令称为机器指令。
每一种处理器都有自己可以识别的一整套指令,称为指令集。
处理器执行指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其它外围电路的工作状态。
汇编语言的主要特点是可以使用助记符来表示机器指令的操作码和操作数,可以用标号和符号来代替地址、常量和变量。
这次课程设计的任务是用汇编语言进行一个数制转换,从键盘输入一串字符(非字符则不接受),通过屏幕提示菜单选择转换成ASCII码,或者进行大小写转换(原来是大写转换成小写,小写则转换为大写)并显示。
先输入要转换的数据,再对数据进行检验判断其合法性,对不合法的数据进行警报并重新输入数据,对合法的数据按照要求进行大小写转换或者转换成ASCII,码,最后显示转换后的字符串。
关键词:DOS功能调用 ASCII码大小写转换数制转换1 DOS功能调用介绍DOS是一个磁盘操作系统,也称为IBM-DOS或者MS-DOS。
DOS不仅为用户提供了许多使用命令,而且还有用户可以直接调用的上百个子程序。
对这些子程序的调用,称为系统功能调用。
这些子程序主要完成一系列的管理功能。
在使用时,用户不需要了解各种I/O接口硬件的详细情况,就能完成对I/O接口的控制和管理。
为了使用方便,将所有子程序从1号开始顺序编号,这些编号称为DOS 功能调用号。
所以在进行设计之前,先要弄清楚DOS 功能调用。
常用的DOS功能调用:1.键盘输入并显示(1号功能调用)格式: INT 21H功能:按下任何键,将其对应字符的ASCII码送入AL中,并在屏幕上显示该字符。
如果按下的是Ctrl+Break组合键,则终止程序执行。
1号功能调用无须入口参数,出口参数在AL中2.键盘输入但不显示格式: MOV AH, 08HINT 21H功能:同1号功能调用,但字符不在屏幕上显示。
3.屏幕显示一个字符(2号功能调用)格式: MOV DL, ‘字符’MOV AH, 02HINT 21H功能:将置入DL寄存器中的字符在屏幕上显示输出。
4.打印输出(5号功能调用)格式: MOV DL, ‘字符’MOV AH, 05HINT 21H功能:将置入DL寄存器中的字符送打印机接口,打印输出。
5.屏幕显示格式: LEA DX, 字符串的偏移地址MOV AH, 09HINT 21H功能:在屏幕上显示字符串。
在使用9号功能调用时,应当注意以下问题。
(1)待显示的字符串必须先放在内存一数据区(DS段)中,且以‘$’符号作为结束标志。
(2)应当将字符串首地址的段基址和偏移地址分别存入DS和DX寄存器中。
6.字符串输入功能调用(0AH号功能调用)格式: LEA DX, 已定义缓冲区的偏移地址MOV AH, 0AHINT 21H功能:从键盘接收字符,并存放到内存缓冲区。
在使用0AH号功能调用时,应当注意以下问题。
(1)执行前先定义一个输入缓冲区,缓冲区内第一个字节定义为允许最多输入的字符个数,字符个数应包括回车符0DH在内,不能为“0”值。
第二个字节保留,在执行程序完毕后存入输入的实际字符个数。
从第三个字节开始存入从键盘上接收字符的ASCII码。
若实际输入的字符个数少于定义的(2)应当将缓冲区首地址的段基址和偏移地址分别存入DS和DX寄存器中。
7.返回DOS操作系统(4CH号功能调用)格式: MOV AH, 4CHINT 21H功能:终止当前程序的运行,并把控制权交给调用的程序,即返回DOS系统,屏幕出现DOS提示符,如“C: \ >”,等待DOS命令。
8.直接输入、输出单字符(6号功能调用)格式: MOV DL, 输入/输出标志MOV AH, 06HINT 21H功能:执行键盘输入操作或屏幕显示输出操作,但不检查Ctrl+Break组合键是否按下。
执行这两种操作的选择由DL寄存器中的内容决定。
(1)当(DL)=0FFH时,执行键盘输入操作。
若标志ZF=0,AL中放入字符的ASCII码;若标志ZF=1,表示无键按下。
这种调用用来检测键盘是否有键按下,但不等待键盘输入。
(2)当(DL)≠0FFH时,表示将DL中内容送屏幕显示输出。
9.检查键盘的工作状态(0BH号功能调用)格式: MOV AH, 0BHINT 21H功能:检查是否有键盘输入,若有键按下,则使AL=0FFH,若无键按下,则AL=00H。
对于利用键盘操作退出循环或使程序结束之类的操作来说,这种调用是很方便实用的。
2 设计方案本次课程设计的要求是:从键盘输入一串字符,通过屏幕提示菜单选择转换成ASCII码,或者进行大小写转换并显示。
设计的基本思路:首先要先完成字符串的输入并存在buf1中,然后输入一个字符通过检验字符来选择跳转到相应的子程序中去进行ASCII码转换或者进行大小写转换,将转换后的字符串存放到buf2中;转换完成后跳转到输出部分即可完成程序功能;为了程序能重复运行,在代码段末尾加一条强制跳转语句跳到开头部分。
3 总程序;*----------------------------------------------------------*;* 输入一串字符(非字符则不接受) *;* 原字符存放在buf1中 ,转换后的字符存放在buf2中 *;* 按照屏幕菜单选择进行ASCII码转换 *;* 或者进行大小写转换 *;*----------------------------------------------------------*DATA SEGMENT ;数据段input db 0ah,0dh,'if you want to quit ,please press Q/q! 'db 0ah,0dh,'press other key to zhuanhuan',0ah,0dh,'$';输入提示inputmess db 0ah,0dh,'please input buf1:',0ah,0dh,'$' buf db 100db ?db 100 dup(0) ;字符缓冲区ZHUANHUAN db 0ah,0dh,'if you want to change case press A/a! 'db 0ah,0dh,'if you want to transform to ascii pressB/b!',0ah,0dh,'$' ;转换提示outputmess db 0ah,0dh,'after transform Character String BUF2 :'db 0ah,0dh,'BUF1:$' ;输出提示BUF1 DB 100 dup(0)chgline db 0ah,0dh,'BUF2:'BUF2 DB 100 DUP(0)BUF3 db 0ah,'$'DATA ENDSSTACK1 SEGMENT STACKDB 20 DUP(?)STACK1 ENDSCODESEGMENT ;代码段ASSUME DS:DATA,SS:STACK1,CS:CODESTART:MOV AX,DATAMOV DS,AXAP: LEA DX,input ;输入提示MOV AH,9INT 21hMOV AH,08hINT 21hCMP AL,'Q'JE exitCMP AL,'q'JE exitPA: LEA DX,inputmessMOV AH,9INT 21hLEA DX,bufMOV AH,10 ;输入字符INT 21hLEA di,buf+2 ;将字符存入缓冲区buf中LEA si,buf1MOV CX,0next: MOV DL,[di]INC diCMP DL,0dh ;判断是否传送完毕JNE aaJMP end0aa: MOV [si],DL ;将缓冲区buf中的内容存入buf1中INC siINC CXJMP nextexit: MOV AH,4CHINT 21Hend0: MOV byte ptr [si],'$'INC CXMOV BP,CXMOV SI,OFFSET BUF1 ;建立源地址指针MOV DI,OFFSET BUF2 ;建立目标地址指针MOV CX,BP ;字节数送入CX寄存器LEA DX, ZHUANHUAN ;输出转换信息,进行转换选择MOV AH,9INT 21HMOV AH,08INT 21HCMP AL,'A' ;检验输入的字符,输入A/a跳到AB进行大小:;写转换,是B/b跳到BA进行ASCII转换JE ABCMP AL,'a'JE ABCMP AL,'B'JE BACMP AL,'b'JE BAAB: CALL ABC ;调用子程序ABCJMP L1BA: CALL CBA ;调用子程序CBAJMP L1ABC PROC ;子程序ABCAC: PUSH SI ;进栈PUSH DIPUSH CXPUSH AXMOV AL,[SI]CMP AL,'$'JE L1 ;判断大小写并进行大小写转换 CMP AL,'a'JL DBACMP AL,'z'JL JKJMP PAJK: SUB AL,20HMOV [DI],ALJMP AA0DBA: CMP AL, 'Z'JL KKJMP PAKK: CMP AL,'A'JG LLJMP PALL:ADD AL,20HMOV [DI],ALAA0: INC SIINC DIDEC CXJNZ ACPOP CX ;出栈POP DIPOP SIPOP AXRETABC ENDPCBA PROC ;完成字符转换成ASCII的子程序 AD: PUSH SI ;进栈PUSH DIPUSH CXPUSH AXMOV AL,[SI]CMP AL,'$'JE L1CMP AL,'a'JL ABDCMP AL,'z'JLE HWJMP PAHW: CBWMOV BL,10H ;将小写字母转换成ASCIIDIV BLADD AL,30HMOV [DI],ALINC DIADD AH,30HMOV [DI],AHJMP BB0ABD: CMP AL ,'Z'JLE HOJMP PAHO: CMP AL,'A'JGE MOJMP PAMO: CBWMOV BL,10H ;将大写字母转换成ASCII码 DIV BLADD AL,30HMOV [DI],ALINC DIADD AH,30HMOV [DI],AHBB0: INC SI ;SI+1,DI+1INC DIDEC CXJNZ ADPOP CX ;出栈POP DIPOP SIPOP AXRETCBA ENDPL1: LEA DX,OUTPUTMESS ;实现输出MOV AH,9INT 21HLEA DX,buf1MOV AH,9INT 21hLEA DX,chgline MOV AH ,9INT 21hLEA dx,BUF3MOV ah,9INT 21hJMP APCODE ENDSEND START4 程序流程图及程序设计分析4.2 主程序流程图分析首先在屏幕上输出显示字符串输入提示符,再进行字符串的输入,输入字符串完成后在屏幕上输出转换信息:(选择输入A/a进行大小写转换或者输入B/b 进行ASCII转换),接着输入一个字符,判断输入字符A/a还是B/b跳转到进行相应的转换(在子程序中判断是否有非字符,若有非字符则重新输入,没有则进行转换),转换完成后跳转到输出部分进行输出,程序结束。