网站大量收购独家精品文档,联系QQ:2885784924

微机原理课程设计大小写字母转换.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理课程设计大小写字母转换.doc

摘要 在课程设计之前,具备微机原理的理论知识和实践能力;熟悉汇编语言编程技术;熟悉80X86的CPU结构和指令系统;熟悉相关常用接口电路的设计使用方法是必不可少的。因此原理部分重新温习并整理了相关知识。 课程设计要求进行大小写字母的转换。其实字母大小写的区别在于他们的ASCII码范围,它们之间的转换其实就是加减相应的ASCII码值。在判断输入的字母是大写的还是小写的(即判断输入符号ASCII码在41H~5AH还是在61H~7AH内)之后,决定判断是加上还是减去ASCII码值。另外如果输入的不是字母(输入字符对应ASCII码值不在41H~5AH或61H~7AH内),则需要报警提示,这不但涉及到用汇编语言实现发声的方法,而且对计算机硬件的了解也有要求,因此原理部分加入了部分有关声音产生的硬件知识。 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内部各部件发出控制命令以完成各条指令的功能。 总线接口单元I/O接口)打交道。 正常情况下,BIU通过地址加法器形成指令的物理地址,从给定存储器地址中取出指令代码送指令队列缓冲器中等待执行(指令队列缓冲器中出现一个空字节,BIU将自动进行读指令的操作填满队列)。 收到EU送来的操作数地址,BIU将立即形成操作数的物理地址,完成读/写操作数或运算结果功能。遇到转移类指令,BIU将指令队列缓冲器中的尚存指令作废,重新从存储器目标地址中取指令送指令缓冲器中。 指令队列可存放6字节的指令代码。一般情况下指令队列中总是填满指令,使EU可不断地得到执行的指令。 16位地址加法器专门用来完成由逻辑地址变换成物理地址的功能。实际上是进行一次地址加法,将两个16位的逻辑地址转换为20位的物理地址,以达到可寻址1M字节的存储空间。 总线控制电路将8086CPU的内部总线与外部总线相连,是8086CPU与外部交换数据的必经之路。包括16条数据总线、20条地址总线和若干条控制总线。程序装载到内存中后通过16位数据线确定各个段地址,开始取出指令(内存中读字节),放到指令队列,队列出口通过EU控制器执行指令并同时影响IP(指令指针移动指令长度,或通过指令执行后影响IPXOR OPRD1,OPRD2串操作类 段间间接转移:JMP DOWRD PTR OPRD ;IP=[EA],CS=[EA+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 OPRD 操 作: SP=SP-2,((SP)+1),(SP))=CS;SP=SP-2,((SP)+1),(SP))=IP;IP=[EA];CS=[EA+2] CALL指令先把CS压入堆栈,再把IP压入堆栈。当执行RET指令而返回时,从堆栈中取出一个字放入IP中,然后从堆栈中再取出第二个字放入CS中,作为段间返回地址。 返回指令格式有: RET ;SP=((SP+1),SP),SP=SP+2 RET n ;SP=((SP+1),SP),SP=SP+2 SP=SP+n RET n指令要求n为偶数,当RET正常

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档