汇编语言第2章微型计算机系统结构研讨.ppt

汇编语言第2章微型计算机系统结构研讨.ppt

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言第2章微型计算机系统结构研讨

第2章 微型计算机系统结构 本章学习目标 .了解汇编语言程序设计的源程序总体结构和指令的执行过程。 .理解微型计算机8086/8088 CPU的内部结构和外部引脚的含义。 .充分理解微型计算机8086/8088 CPU的工作模式和适用的范围。 .理解8086/8088 CPU系统总线时序、总线周期的组成和完成的目标任务。 .掌握8086/8088 CPU内部段寄存器和通用寄存器的隐含及替代使用方法。 .熟练掌握8086/8088 CPU标志寄存器中的各标志位所表示的具体意义 和产生的条件。 2.1 8086/8088微处理器 2.1.1 CPU结构 为了说明8086 CPU的结构,需要先了解CPU的功能,然后考虑需要什么样的结构才能够实现这种功能。这样的一种学习思路可以使读者更容易理解CPU的各个组成结构。 CPU的功能概括起来就是“执行指令”。一个程序有很多条指令,放在内存中的。那么把它取出来送给CPU就是“取指”过程。 指令本身的执行在CPU内部,“执行过程”跟接口没有关系。执行完毕,要将结果输出到内存或者端口,这就是“输出结果”过程。 将上述指令执行的过程概括一下,可以分为3个步骤:①“取指”过程;②“执行”过程;③“输出结果”过程。执行过程在CPU内部完成,部件称为执行部件EU;“取指”和“输出结果”过程则是由总线接口部件BIU来完成的。 8086 CPU内部结构如图2-1所示。 从功能上可将8086分为两个部分,即总线接口单元BIU (Bus Interface Unit)和执行单元EU (Execution Unit). 1.总线接口单元BIU 总线接口单元的功能是负责完成与存储器或I/O设备之间的数据传送。其具体任务是:BIU要从内存取指令送到指令队列缓冲器;CPU执行指令时,总线接口单元要配合执行单元从指定的内存单元或外设端口中取数据,将数据传送给执行单元,或者把执行单元的操作结果传送到指定的内存单元或外设端口中。 BIU内有4个16位段地址寄存器CS(代码段寄存器)、DS(数据段寄存器)、SS(堆栈段寄存器)和ES(附加段寄存器),16位指令指针IP (Instruction Pointer), 6字节指令队列缓冲器,20位地址加法器和总线控制电路。下面对总线接口单元作3点说明。 (1)指令队列缓冲器 8086的指令队列为6个字节,而8088的指令队列为4个字节。不管是8086还是8088,都会在执行指令的同时,从内存中取下面一条或几条指令,取来的指令就依次放在指令队列中。它们采用“先进先出”的原则,按顺序存放,并顺序到EU中去执行,且遵循下列原则。 1)取指时,每当指令队列缓冲器中存满一条指令时,EU就立即开始执行。 2)指令队列缓冲器中只要空出两个字节,BIU便自动执行取指操作,直到填满为止。 3)在EU执行指令的过程中,指令需要对存储器或I/O设备存取数据时,BIU将在执行完现行取指的存储器周期后的下一个存储器周期时,对指定的内存单元或I/O设备进行存取操作,交换的数据经BIU由EU进行处理。 4)当EU执行完转移、调用和返回指令时,则要清除指令队列缓冲器,并要求BIU从新的地址重新开始取指令,新取的第一条指令将直接经指令队列送到EU去执行,随后取来的指令将填入指令队列缓冲器。由于BIU和EU是分开并独立工作的,因此,在一般情况下,CPU执行完一条指令后就可以执行下一条指令,而不需要像以往8位CPU那样重复地进行先取指令、后执行指令的串行操作。16位CPU这种并行重叠操作的特点,提高了总线的信息传输效率和整个系统的执行速度。如图2-2所示为8086/8088 CPU程序的执行过程。 (2)地址加法器和段寄存器 8086有20条地址线,但CPU内部寄存器只有16位,那么如何用16位寄存器实现20位地址的寻址呢?分别用16位的段寄存器与16位的偏移量巧妙地解决了这一矛盾。 即各个段寄存器分别用来存放各段的起始地址。由IP提供或由EU按寻址方式计算出寻址单元的16位偏移地址(又称为逻辑地址)后,将与左移4位后的段寄存器的内容同时送到地址加法器进行相加,形成一个20位的实际地址(又称为物理地址),以对存储单元寻址。 实际地址的产生过程如图2-3所示。 例如,要形成某指令码的实际地址,就需将IP的值与代码段寄存器CS (Code Segment)左移4位后的内容相加。假设CS=ECOOH, IP=0800H,此时指令的物理地址为EC800H。 2.执行单元EU 执行单元不与系统直接相连,它的功

文档评论(0)

ddf55855 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档