大小写字母转换设计含程序课程设计

上传人:桔**** 文档编号:497411854 上传时间:2024-02-17 格式:DOC 页数:15 大小:60KB
返回 下载 相关 举报
大小写字母转换设计含程序课程设计_第1页
第1页 / 共15页
大小写字母转换设计含程序课程设计_第2页
第2页 / 共15页
大小写字母转换设计含程序课程设计_第3页
第3页 / 共15页
大小写字母转换设计含程序课程设计_第4页
第4页 / 共15页
大小写字母转换设计含程序课程设计_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《大小写字母转换设计含程序课程设计》由会员分享,可在线阅读,更多相关《大小写字母转换设计含程序课程设计(15页珍藏版)》请在金锄头文库上搜索。

1、摘要在课程设计之前,具备微机原理的理论知识和实践能力;熟悉汇编语言编程技术;熟悉80X86的CPU结构和指令系统;熟悉相关常用接口电路的设计使用方法是必不可少的。因此原理部分重新温习并整理了相关知识。课程设计要求进行大小写字母的转换。其实字母大小写的区别在于他们的ASCII码范围,它们之间的转换其实就是加减相应的ASCII码值。在判断输入的字母是大写的还是小写的(即判断输入符号ASCII码在41H5AH还是在61H7AH内)之后,决定判断是加上还是减去ASCII码值。另外如果输入的不是字母(输入字符对应ASCII码值不在41H5AH或61H7AH内),则需要报警提示,这不但涉及到用汇编语言实现

2、发声的方法,而且对计算机硬件的了解也有要求,因此原理部分加入了部分有关声音产生的硬件知识。关键词:汇编语言,ASCII码,大小写转换1.原理简介1.1 8086的内部结构80x86从功能上分执行单元EU(Execution Unit),和总线接口单元BIU(Bus Interface Unit),执行单元由算术逻辑单元(ALU)、标志寄存器、通用寄存器组和EU控制器等部件组成。指令执行部件EU由算术逻辑单元、标志寄存器、通用寄存器和EU控制器等部件组成。主要功能是执行指令:一般顺序执行,EU不断地从指令队列中取指令连续执行,而省去访问存储器取指令的时间。需要访问存储器取操作数时,EU将访问地址

3、送给BIU后,将要等待操作数到来后才能继续操作;遇到转移类指令时,要将指令队列中的后续指令作废,等待BIU重新从存储器取出目标地址中的指令代码进入指令队列后,EU才能继续执行指令。算术逻辑单元(ALU)完成16位或8位的二进制运算;16位暂存寄存器用来暂存参加运算的操作数。运算结果通过内部总线送到通用寄存器组或BIU的内部寄存器中等待写入存储器。经ALU运算后的结果特征置入标志寄存器中保存EU控制器负责从BIU的指令队列中取指令,并对指令译码;根据指令要求向EU内部各部件发出控制命令以完成各条指令的功能。总线接口单元由地址加法器、专用寄存器组、指令队列缓冲器和总线控制电路等部件组成;主要功能是

4、形成访问存储器的物理地址,负责与外部(存储器或I/O接口)打交道。正常情况下,BIU通过地址加法器形成指令的物理地址,从给定存储器地址中取出指令代码送指令队列缓冲器中等待执行(指令队列缓冲器中出现一个空字节,BIU将自动进行读指令的操作填满队列)。收到EU送来的操作数地址,BIU将立即形成操作数的物理地址,完成读/写操作数或运算结果功能。遇到转移类指令,BIU将指令队列缓冲器中的尚存指令作废,重新从存储器目标地址中取指令送指令缓冲器中。 指令队列可存放6字节的指令代码。一般情况下指令队列中总是填满指令,使EU可不断地得到执行的指令。16位地址加法器专门用来完成由逻辑地址变换成物理地址的功能。实

5、际上是进行一次地址加法,将两个16位的逻辑地址转换为20位的物理地址,以达到可寻址1M字节的存储空间。总线控制电路将8086CPU的内部总线与外部总线相连,是8086CPU与外部交换数据的必经之路。包括16条数据总线、20条地址总线和若干条控制总线。程序装载到内存中后通过16位数据线确定各个段地址,开始取出指令(内存中读字节),放到指令队列,队列出口通过EU控制器执行指令并同时影响IP(指令指针移动指令长度,或通过指令执行后影响IP。1.2 8086的指令系统8086全部指令按功能可分成六大类:1.数据传送类一般格式:MOV OPRD1,OPRD2MOV 是操作码,OPRD1和OPRD2分别是

6、目的操作数和源操作数。功 能: 完成数据传送。堆栈指令,包括入栈(PUSH)和出栈(POP)指令两类,仅能进行字运算(操作数不能是立即数)(1)入栈指令PUSH一般格式:PUSH OPRD功 能: 将数据压入堆栈(2)出栈指令POP一般格式:POP OPRD功 能: 将数据弹出堆栈累加器专用传送指令,有三种,输入、输出和查表指令。前两种又称为输入输出指令。(1)IN 指令一般格式:IN AL,n ; B ALnIN AX,n ; W AXn+1nIN AL,DX ; B ALDXIN AX,DX ; W AXDX+1DX功 能: 从I/O端口输入数据至AL或AX。(2)OUT 指令一般格式:O

7、UT n,AL ;B ALnOUT n,AX ;W AXn+1nOUT DX,AL ;B ALDXOUT DX,AX ;W AXDX+1DX功 能: 将AL或AX的内容输出至I/O端口。2.算术运算类加法指令 (Addition)(1)一般形式: ADD OPRD1,OPRD2功 能: OPRD1OPRD1+OPRD2(2)一般形式:ADC OPRD1,OPRD2 ;带进位的加法;功 能: OPRD1OPRD1+OPRD2 +CF(3)一般形式:INC OPRD功 能: OPRDOPRD+1减法指令(Subtraction)(1)一般形式:SUB OPRD1,OPRD2功 能: OPRD1OP

8、RD1-OPRD2(2)一般形式:SBB OPRD1,OPRD2功 能: OPRD1OPRD1-OPRD2-CF (3)一般形式:DEC OPRD功 能: OPRDOPRD-1-CF3.逻辑运算类逻辑运算指令(1)一般形式:NOT OPRD功 能: 对操作数求反,然后送回原处,操作数可以是寄存器或存储器内容。(2)一般形式:AND OPRD1,OPRD2功 能:对两个操作数进行按位的逻辑“与”运算,结果送回目的操作数。(3)一般形式:TEST OPRD1,OPRD2 功 能:完成与AND指令相同的操作,结果反映在标志位上,但并不送回,通常使用它进行测试。(4)一般形式:OR OPRD1,OPR

9、D2功 能: 对指定的两个操作数进行逻辑“或”运算。结果送回目的操作数。(5)一般形式:XOR OPRD1,OPRD2功 能: 对两个指定的操作数进行“异或”运算,结果送回目的操作数。4.串操作类重复指令前缀串指令5.程序转移类无条件转移、调用和返回指令(1)无条件转移指令JMP,分直接转移和间接转移两种。一般格式:JMP OPRD ;OPRD是转移的目的地址直接转移的3种形式为:短程转移:JMP SHORT OPRD ;IP=IP+8位位移量目的地址与JMP指令所处地址的距离应在-128127范围之内。近程转移:JMP NEAR PTR OPRD ;IP=IP+16位位移量 或:JMP OP

10、RD ;NEAR可省略目的地址与JMP指令应处于同一地址段范围之内。远程转移: JMP FAR PTR OPRD ;IP=OPRD的段内位移量,CS=OPRD所在段地址。远程转移是段间的转移,目的地址与JMP指令所在地址不在同一段内。执行该指令时要修改CS和IP的内容。间接转移指令的目的地址可以由存储器或寄存器给出。段内间接转移:JMP WORD PTR OPRD ;IP=EA (由OPRD的寻址方式确定)。JMP WORD PTRBX ;IP=(DS)*16+(BX)JMP WORD PTR BX ;IP=(BX)段间间接转移:JMP DOWRD PTR OPRD ;IP=EA,CS=EA+

11、2该指令指定的双字节指针的第一个字单元内容送IP,第二个字单元内容送CS。JMP DWORD PTR BX+SI(2)调用和返回指令 CALL指令用来调用一个过程或子程序。由于过程或子程序有段间(即远程FAR)和段内调用(即近程NEAR)之分,所以CALL也有FAR和NEAR之分,因此RET也分段间与段内返回两种。调用指令一般格式为: 段内调用:CALL NEAR PTR OPRD操 作: SP=SP-2,(SP)+1),(SP)=IP,IP=IP+16位位移量 CALL指令首先将当前IP内容压入堆栈。当执行RET指令而返回时,从堆栈中取出一个字放入IP中。段间调用:CALL FAR PTR

12、OPRD操 作: SP=SP-2,(SP)+1),(SP)=CS;SP=SP-2,(SP)+1),(SP)=IP;IP=EA;CS=EA+2CALL指令先把CS压入堆栈,再把IP压入堆栈。当执行RET指令而返回时,从堆栈中取出一个字放入IP中,然后从堆栈中再取出第二个字放入CS中,作为段间返回地址。返回指令格式有:RET ;SP=(SP+1),SP),SP=SP+2 RET n ;SP=(SP+1),SP),SP=SP+2 SP=SP+nRET n指令要求n为偶数,当RET正常返回后,再做SP=SP+n操作。6.控制类循环控制指令loop1.3汇编语言程序设计 计算机不能直接识别和执行汇编语言

13、程序,而要通过“翻译”把源程序译成机器语言程序(目标程序)才能执行,这一“翻译”工作称为汇编。汇编有人工汇编和计算机汇编两种方法。汇编语言是面向机器的,每一类计算机分别有自己的汇编语言。汇编语言占用的内存单元少,执行效率高,广泛应用于工业过程控制与检测等场合。汇编语言语句格式:标号: 操作符 操作数 ;注释START: MOV A,30H ;A(30H)标号用来标明语句地址,它代表该语句指令机器码的第一个字节的存储单元地址。标号一般规定由18个英文字母或数字组成,但第一个符号必须是英文字母。注释只是对语句或程序段的含义进行解释说明,以方便程序的编写、阅读和交流,简化软件的维护,一般只在关键处加

14、注释。伪指令:伪指令只用于汇编语言源程序中,对汇编过程起控制和指导的作用,不生成机器码,汇编结束,自动消失。汇编语言程序设计步骤:(1)分析问题(2)确定算法(3)设计程序流程(4)分配内存单元:分配内存工作单元,确定程序和数据区的起始地址(5)填写汇编语言程序(6)调试程序1.4报警声音生成早期的PC系列机中有一个专门用于定时的集成电路,型号是8253/8254。它有三个通道,第一个通道用于控制系统时钟正常运转;第二个通道用于存储器刷新,第三个通道通过一组电路与喇叭相联。定时器通道3的G端与61H端口的bit0位相联,如果将61H端口的bit0位置成1,那么定时器通道3就被启动,此时将有一组

15、信号从OUT端输出,信号的频率可以用程序控制;若61H端口bit0位为0,则定时器被关闭,OUT端就会恒定为1。此电路用在这里相当一个可控开关,如果将61H端口的bit0、bit1位都置成1,则相当于既打开了定时器又打开了开关,这时候定时器产生的声音信号就会送到放大器推动喇叭发声;若将bit0位置0,则定时器关闭,此时OUT端为1,这时候如果连续改变bit1位的状态,也可以从喇叭中听到声音若将bit1位置0,则开关关闭,此时即使打开定时器也不能听到声音。 PC中的定时电路有三个通道,通道3用于发声,通道1用于控制系统内部的时钟。大家都十分清楚用DOS的TIME命令可以观察并修改系统内部的一个时钟,这个时钟之所以能连续运转主要依靠定时器的通道1。 通道1的工作方式和通道3一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号