汇编实现大小写字母转换程序
- 格式:doc
- 大小:55.00 KB
- 文档页数:3
实验一字母大小写转换实验实验一字母大小写转换实验一、实验目的:了解各种字符尤其是小写字母和大写字母在计算机内的表示方式,并学习如何进行大小写字母的转换。
同时通过该实验熟悉汇编语言程序调试的过程和基本方法。
二、实验内容已知程序功能如下:接收键盘输入按键,并将按键对应的ASCII码放入AL中,若按下Enter(回车)键则结束输入,显示转换结果,并返回继续等待键盘输入,若按下“CTRL+C”,则程序结束。
要求:为程序填空,实现将输入的小写字母转换为大写字母,除小写字母外的其他字符保持不变的功能。
提示:对AL中的ASCII码进行判断,是回车键则结束输入,否则继续判断是否小写字母,如果是小写字母则转换为大写字母,否则保持不变。
三、实验步骤:1、画出程序流程图2、列出程序清单,并进行注释3、对程序进行上机调试,观察实验结果四、思考如何修改程序,使键盘接收到Enter(回车)键后只显示转换的大写字母,其他的非字母字符不显示,然后返回继续等待键盘输入。
附录:程序DA TA SEGMENTBUF DB 100 DUP(?) ;BUF缓冲区用来保存转换成功的大写字母的ASCII码MESS DB 'please enter your word:',0AH,0DH,'$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXMOV BX,OFFSET BUFKKK: MOV SI,0000HLEA DX,MESS ;显示‘PLEASE ENTER YOUR WORD:'提示字符MOV AH,9 ;显示‘PLEASE ENTER YOUR WORD:'提示字符INT 21H ;显示‘PLEASE ENTER YOUR WORD:'提示字符GGG: MOV AH,01H ;从键盘接收一个键的输入,并把得到按键对应字符的ASCII码存入ALINT 21H ;从键盘接收一个键的输入,并把得到按键对应字符的ASCII码存入ALCMP AL,0DHJZ BBBCMP AL,61HJB GGGCMP AL,7AHJA GGGSUB AL, 20HTTT: MOV [BX+SI],ALINC SIJMP GGGBBB: MOV [BX+SI],AL ;BBB程序段负责处理回车键按下的事件MOV AL,0AH ;把转换成功的大写字母显示出来并继续等待下一次输入MOV [BX+SI+1],ALMOV AL,'$'MOV [BX+SI+2],ALMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HMOV AH,09HMOV DX,BXINT 21HJMP KKKPPP: MOV AX,4C00HINT 21HCODE ENDSEND START思考题程序把GGG内的“JA GGG和JB GGG”改为“JA TTT和JB TTT”。
标题:C语言中输入小写字母输出大写字母的程序在C语言中,输入小写字母,输出大写字母是一个非常基础但又非常实用的功能。
在本文中,将从简单的字符处理和ASCII码转换开始,逐步深入探讨如何编写一个高效且稳定的程序来实现这一功能。
1. 字符处理和ASCII码在C语言中,字符是以ASCII码存储和处理的。
ASCII码是一种用于表示文本的编码标准,在这个标准中,每个字符都对应一个唯一的数字。
大写字母和小写字母在ASCII码中是有规律的排列的,大写字母的ASCII码要比小写字母的ASCII码小一个固定的值。
这就为我们实现输入小写字母输出大写字母的功能提供了基础。
2. 简单的小写转大写程序我们可以编写一个简单的程序,实现输入一个小写字母,输出一个对应的大写字母的功能。
以下是一个简单的C语言程序示例:```c#include <stdio.h>int m本人n() {char lowercase, uppercase;printf("请输入一个小写字母:");scanf("c", lowercase);uppercase = lowercase - 32;printf("对应的大写字母是:c\n", uppercase);return 0;}```在这个程序中,我们首先通过`scanf`函数获取用户输入的小写字母,并且通过简单的ASCII码转换,得到对应的大写字母。
这个程序非常简单,但是具有很好的可读性和易懂性。
3. 更加稳健的输入输出程序然而,上面的程序有一个致命的缺陷,就是没有对用户的输入进行任何检查,如果用户输入的不是小写字母,程序可能会出现意料之外的错误。
为了实现更加稳健的输入输出程序,我们需要添加一些用户输入的检查和提示。
```c#include <stdio.h>int m本人n() {char lowercase, uppercase;printf("请输入一个小写字母:");scanf(" c", lowercase); // 注意这里加了一个空格,用于清空输入缓冲区if (lowercase >= 'a' lowercase <= 'z') { // 判断输入是否为小写字母uppercase = lowercase - 32;printf("对应的大写字母是:c\n", uppercase);} else {printf("输入错误!请输入一个小写字母。
北华航天工业学院课程设计报告(论文)设计课题:代码转换大小写字母转换专业班级:电子信息工程学生姓名:指导教师:设计时间: 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、汇编语言基础汇编:计算机不能直接识别和执行汇编语言程序,而要通过“翻译”把源程序译成机器语言程序(目标程序)才能执行,这一“翻译”工作称为汇编。
汇编有人工汇编和计算机汇编两种方法。
汇编语言是面向机器的,每一类计算机分别有自己的汇编语言。
汇编语言占用的内存单元少,执行效率高,广泛应用于工业过程控制与检测等场合。
课程设计任务书学生姓名:刘小燕专业班级:电信0801班指导教师:陈德军工作单位:信息工程学院题目:英文字母大小写转换程序设计初始条件:具备数字电路的理论知识;具备微机原理的理论知识和实践能力;熟悉汇编语言编程技术;熟悉80X86的CPU结构和指令系统;熟悉相关常用接口电路的设计使用方法。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、输入英文字母串,在回车后实现大小写转换2、按命令要求将字符串转换为全部大写或全部小写3、非英文字母不允许输入并声响报警4、程序采用汇编语言在PC机上完成5、完成符合学校要求的设计说明书时间安排:一周,其中2天程序设计,2天程序调试,1天完成课程设计报告书及答辩指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)1 DOS功能调用 (1)2总体方案论证 (4)3程序流程图及程序设计分析 (5)3.1主程序设计 (5)3.1.1流程图及其分析 (5)3.1.2程序设计 (6)3.2 chos字符串转换子程序设计 (8)3.2.1流程图及其分析. (8)3.2.2程序设计 (9)3.3小写转大写子程序设计 (11)3.3.1流程图及其分析 (11)3.3.2程序设计 (12)3.4大写转小写子程序设计 (13)3.4.1流程图及其分析 (13)3.4.2程序设计 (14)4 总程序 (15)5 课程设计心得体会 (20)参考文献 (21)摘要汇编语言是用指令的助记符、符号地址、标号等书写程序的语言,实际上是机器语言的一种符号表示,主要特点是可以使用助记符来表示机器指令的操作码和操作数,可以用标号和符号来代替地址、常量和变量。
汇编语言是能够利用计算机所有硬件特性进而直接控制硬件的唯一语言。
本次课程设计的任务是用汇编语言做一个英文字母大小写转换程序,按照用户的要求完成对输入数据的大写或者小写转换。
先输入要转换的数据,再对数据进行检验判断其合法性,对不合法的数据进行警报并重新输入数据,对合法的数据按照要求进行大写或者小写转换,最后显示转换后的字符串。
c语言中输入小写字母输出大写字母的程序文章标题:深入理解C语言中输入小写字母输出大写字母的程序一、背景介绍在C语言中,实现输入小写字母输出大写字母的程序是程序员们经常遇到的需求之一。
这一需求不仅在实际编程中频繁出现,而且对于初学者来说,也是一个常见的疑惑点。
本文将深入探讨如何在C语言中实现输入小写字母输出大写字母的程序,并且将会以从简到繁、由浅入深的方式来讨论这一主题。
二、基础知识在C语言中,要实现输入小写字母输出大写字母的程序,首先需要了解两个重要的概念:ASCII码和字符类型。
ASCII码是用来表示字符的一种编码方式,它包含了从0到127的所有基本字符,其中包括大小写字母、数字、标点符号等。
在C语言中,字符类型是一种基本的数据类型,用来表示单个字符。
三、实现方法在C语言中,可以通过两种方式来实现输入小写字母输出大写字母的程序:一种是利用ASCII码进行转换,另一种是使用内置函数进行转换。
1. 利用ASCII码进行转换每个字符在计算机中都有对应的ASCII码,而小写字母和大写字母之间的ASCII码差值恰好为32。
可以通过将输入的小写字母的ASCII码减去32,得到对应的大写字母的ASCII码,然后将其转换为字符输出,即可实现输入小写字母输出大写字母的功能。
2. 使用内置函数进行转换除了利用ASCII码进行转换外,C语言还提供了内置函数toupper(),该函数可以将小写字母转换为大写字母。
只需要将输入的小写字母作为参数传入toupper()函数,即可得到对应的大写字母输出。
四、总结回顾通过对C语言中输入小写字母输出大写字母的程序实现方法的深入探讨,我们可以看到,无论是利用ASCII码进行转换还是使用内置函数进行转换,都能够简单而有效地实现这一功能。
对于初学者来说,掌握这些方法不仅可以提高编程效率,更有助于理解字符类型和ASCII码的概念。
五、个人观点和理解在我看来,掌握C语言中输入小写字母输出大写字母的程序实现方法是每个程序员的基本技能之一。
./*将小写字母转换为大写字母。
例如:C Language,转换为C LANGUAGE。
*/#include <stdio.h>void change(char s[]){int i;for(i=1;i<=20;i++){if(s[i]>='a'&&s[i]<='z')s[i]=s[i]-32;}}main(){ void CHECK();char str[20]="C Language";clrscr();change(str);printf("%s\n",str);CHECK();}./*求出数组arr中的最大数,并把最大数和arr[0]中的数进行交换。
*/#include <stdio.h>#define N 20/***Fill in the blanks***/void swap(int __a[]____,int n){ int k, m, t ;m=0;/***Fill in the blanks***/for(k=0;k<n;_k++_____)if(a[k]>a[m]) m=k;t=a[0];/***Fill in the blanks***/a[0]=_a[m]_____;a[m]=t;}main( ){ int i,n=10,arr[N]={0,5,12,10,23,6,9,7,10,8}; printf("\n交换前:");for(i=0;i<n;i++) printf("%4d",arr[i]);swap(arr,n);printf("\n交换后:");for(i=0;i<n;i++) printf("%4d", arr[i]);printf("\n");}/*计算1 1 1 1 11 - --- + --- - --- + --- - ... ---2 3 4 5 n例如,n=100时,运算结果为:0.688172。
编⼀个程序,输⼊⼀个字符,如果是⼤写字母,就转换成⼩写字母,如果输⼊的字符是⼩写字母,则转换为⼤using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace _3字符互转{class Program{static void Main(string[] args){Console.WriteLine("请输⼊⼀个字符:");//输出到命令提⽰符上⾯char c;//定义⼀个字符string s;//定义⼀个字符串while (true)//输⼊正确才退出{s = Console.ReadLine();//⽤s来存储⽤户输⼊的值if (s.Length == 1)//如果⽤户输⼊的字符串的长度是1的话说明⼀定是⼀个字符{c = Convert.ToChar(s);//将s转换会字符if (char.IsLower(c))//判断是不是⼩写字符,如果是的话转换,如果不是的判断是不是⼤写字符{Console.WriteLine("⼤写字符是:");Console.Write(char.ToUpper(c));//⼩写字符转换为⼤写字符break;}else if (char.IsUpper(c)){Console.WriteLine("⼩写字符是:");Console.Write(char.ToLower(c));//⼤写字符转换为⼩写字符break;}}Console.WriteLine("请输⼊⼀个字符");//其他⾮法输出,通通输⼊这条语句}Console.ReadKey();//按任意键退出}}}。
汇编实现⼤⼩写字母转换程序⼀、题⽬要求编写程序,接收键盘输⼊的字符串,将其中⼤写字母转化为⼩写字母,并显⽰转化后的字符串。
键盘输⼊的字符串存于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 SEGMENTSTRBUF DB 30,?,31 DUP (?) ;定义键盘接收缓冲区DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:–2–第27章单⽚机实现密码锁MOV AX,DA TAMOV DS,AXLEA DX,STRBUFMOV AH,0AHINT 21H ;0A号调⽤,等待⽤户输⼊字符串MOV CL,STRBUF+1CMP CL,00JZ EXITPMOV CH,00HMOV SI,2XX1:MOV AL,STRBUF[SI] ;读取⼀个字符CMP AL,’A’JB NEXTCMP AL,’Z’JA NEXT ;判断是否是⼤写字符,ASCII在41H~5AH之间ADD STRBUF[SI],’a’-‘A’;⼤写字母ASCII值加20H NEXT:INC SILOOP XX1MOV DL,0AHMOV AH,02HINT 21H ;控制换⾏MOV CH,00MOV CL,STRBUF+1MOV SI,2XX2:MOV DL,STRBUF[SI]MOV AH,02HINT 21HINC SILOOP XX2 ;显⽰字符串EXITP: MOV AH,4CH INT 21H CODE ENDS END START –3–。
一、题目要求
编写程序,接收键盘输入的字符串,将其中大写字母转化为小写字母,并显示转化后的字符串。
键盘输入的字符串存于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–。