汇编实现大小写字母转换
- 格式:doc
- 大小:27.50 KB
- 文档页数:3
摘要在课程设计之前,具备微机原理的理论知识和实践能力;熟悉汇编语言编程技术;熟悉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内部各部件发出控制命令以完成各条指令的功能。
⽤汇编进⾏⼤⼩写转换最近学习了⼀下8086的16位汇编语⾔,学习了⼀种⽐较奇葩的进⾏字母⼤⼩写转换的⽅法。
不必⽤CMP语句进⾏判断,⼀步到位。
当然前提要求是输⼊的数据必须是字母哈。
把字母的ASCII码⽤⼆进制查看:⼤写 16进制⼆进制⼩写 16进制⼆进制A 41 0100 0001 a 61 0110 0001B 42 0100 0010 b 62 0110 0010C 43 0100 0011 c 63 0110 0011D 44 0100 0100...Z 5A 0101 1010 z 7A 0111 1010明显的,⼩写的ASCII值 = ⼤写的ASCII值 + 20H⽽且,⼩写的和⼤写的在第5位是完全不同的,⼤写的恒为0,⼩写的恒为1于是,可以⽤位运算。
assume cs:code, ds:datadata segmentdb 'baSiC'db 'InFOinTion'data endscode segmentstart: mov ax, datamov ds, ax ;数据域对应datamov bx, 0mov cx, 5s: mov al, [bx]and al, 11011111b ;转换成⼤写mov [bx], alinc bxloop smov bx, 5mov cx, 10s1: mov al, [bx]or al, 00100000b ;转换成⼩写mov [bx], alinc bxloop s1mov ax, 4c00hint 21hcode endsend start对应的C++语⾔:#include <cstdio>using namespace std;int main(){char a[9] = "aBcdeFGh";char b[9] = {0};char c[9] = {0};for (int i=0; i<9; i++)b[i] = a[i] & 0xDF; //转换成⼤写for (int i=0; i<9; i++)c[i] = a[i] | 0x20; //转换成⼩写return 0; }。
英⽂字母⼤⼩写转换程序设计(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。
大小写转换代码在编程中,大小写转换是一个常见的需求。
有时候我们需要将字符串中的所有字母转换成大写或小写,有时候我们需要将字符串中的首字母大写。
在这篇文章中,我们将介绍如何使用代码实现这些转换。
将字符串转换成大写在Python中,我们可以使用upper()方法将字符串中的所有字母转换成大写。
下面是一个例子:```string = "hello world"string_upper = string.upper()print(string_upper)```输出结果为:```HELLO WORLD```在这个例子中,我们首先定义了一个字符串变量string,然后使用upper()方法将其转换成大写,并将结果存储在另一个变量string_upper中。
最后,我们使用print()函数输出结果。
将字符串转换成小写与将字符串转换成大写类似,我们可以使用lower()方法将字符串中的所有字母转换成小写。
下面是一个例子:```string = "HELLO WORLD"string_lower = string.lower()print(string_lower)```输出结果为:```hello world```在这个例子中,我们首先定义了一个字符串变量string,然后使用lower()方法将其转换成小写,并将结果存储在另一个变量string_lower中。
最后,我们使用print()函数输出结果。
将字符串中的首字母大写有时候我们需要将字符串中的首字母大写,可以使用capitalize()方法实现。
下面是一个例子:```string = "hello world"string_capitalize = string.capitalize()print(string_capitalize)```输出结果为:```Hello world```在这个例子中,我们首先定义了一个字符串变量string,然后使用capitalize()方法将其首字母大写,并将结果存储在另一个变量string_capitalize中。
北华航天工业学院课程设计报告(论文)设计课题:代码转换大小写字母转换专业班级:电子信息工程学生姓名:指导教师:设计时间: 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、汇编语言基础汇编:计算机不能直接识别和执行汇编语言程序,而要通过“翻译”把源程序译成机器语言程序(目标程序)才能执行,这一“翻译”工作称为汇编。
汇编有人工汇编和计算机汇编两种方法。
汇编语言是面向机器的,每一类计算机分别有自己的汇编语言。
汇编语言占用的内存单元少,执行效率高,广泛应用于工业过程控制与检测等场合。
转换成大写字母的函数转换成大写字母是一种常见的文本处理需求,通常用于将小写字母转换为大写字母。
在许多编程语言和文本编辑器中,都提供了内置的函数或方法来实现这个功能。
下面是一些常用编程语言中转换成大写字母的函数的示例,供参考:1. Python:在Python中,可以使用内置的upper()方法将字符串中的小写字母转换为大写字母。
```string = "hello world"uppercase_string = string.upper()print(uppercase_string) # 输出 "HELLO WORLD"```2. JavaScript:在JavaScript中,可以使用内置的toUpperCase()方法将字符串中的小写字母转换为大写字母。
```let string = "hello world";let uppercaseString = string.toUpperCase();console.log(uppercaseString); // 输出 "HELLO WORLD"```3. Java:在Java中,可以使用String类的内置方法toUpperCase()将字符串中的小写字母转换为大写字母。
```String string = "hello world";String uppercaseString = string.toUpperCase();System.out.println(uppercaseString); // 输出 "HELLO WORLD" ```4. C++:在C++中,可以使用算法库中的transform()函数结合toupper()函数将字符串中的小写字母转换为大写字母。
```cpp#include <iostream>#include <algorithm>#include <cctype>int main() {std::string str = "hello world";std::transform(str.begin(), str.end(), str.begin(),[](unsigned char c){ return std::toupper(c); });std::cout << str << std::endl; // 输出 "HELLO WORLD"return 0;}```5. C#:在C#中,可以使用内置的ToUpper()方法将字符串中的小写字母转换为大写字母。