002_微机原理_8086微处理器_1.doc

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

第二章 8086微处理器 当今的高档微处理器是在80386的基础上发展起来的,而80386的基础是8086。8086和当今的高档微处理器不可比拟,但是它的指令流水线操作方式以及存储器的分段结构在微处理器发展史上是划时代的标志。 ??????? 8086是标准的16位CPU,其内部和外部的数据总线都为16位。地址总线为20位,最大内存寻址空间为220=l?MB。其主频(即时钟频率)为5?MHz,8086-1的主频为10?MHz。 ?2.1、8086的编程结构 8086的功能结构与指令流水 1.8086的指令流水 图2.1是8086的功能结构示意图。它由两大部分组成:执行部件(EU,Execute Unit)和总线接口部件(Interface Unit,BIU)。前者负责指令的译码和执行,后者负责所有涉及外部总线的操作。二者既独立工作,又相互配合。 ??? 图2.1 8086以前的微处理器操作都是串行的,即对每一条指令而言,都是先取指令,再分析、执行。具体可表示为 ??? 取指令一[读操作数]一执行一[写操作数]一取(下一条)指令一…… 方括号内的操作是操作数在内存中时所要进行的,当操作数是CPU内部的某个寄存器时,不需要这一步。显然,在指令执行期间,总线(BUS)是空闲的,这一重要的系统资源没有得到充分利用。而8086在执行部件执行指令期间,总线接口部件可利用总线预取后续指令或进行存储器操作数的读或写。图2.2表示了8086的一段工作过程。可以看出,在图示的一段时间内,8086执行了3条指令,并且预取了两条指令,存入内部的指令队列。图2.2揭示了一种现象——指令的并行操作,或者说指令的重叠执行,通常称之为指令流水线操作。 2.总线接口部件(BIU) 总线接口部件是8086同外部联系的接口。它负责所有涉及外部总线的操作,包括取指令、读操作数、写操作数、地址转换和总线控制等。 BIU使用了指令预取队列(简称指令队列或队列)机构来实现指令流水线操作。该队列的容量为6个字节,即允许预取6个字节的指令代码。每当指令队列有两个或两个以上的字节空间,且执行部件未向BIU申请读/写存储器操作数时,BIU顺序地预取后续指令的代码,并填入指令队列。 指令队列的工作方式是先进先出(First-in,First-out,FIFO),或者说??管道方式,先预取的指令即排在前面的指令先被取走执行,后面的依次向前推进,腾出的空间再放新预取的指令。 当EU执行指令时发现是一条转移指令(又称分支转移指令或分支指令),则BIU清除队列,从新的地址取指令,并立即送给EU去执行,然后,从后续的指令序列中取指令填满队列。可见,一遇到转移指令,就要重新预取指令队列中的下一条及下下一条指令。显然,这影响了机器的运行速度。8086,乃至80386、80486,都存在这个缺陷,直到Pentium出现,引入了分支指令预测技术,才得以克服。 ??? BIU中有一个16位的专用加法器∑,用来形成20位的物理地址。BIU中还有一些专用的寄存器,其作用在本节的后面介绍。 3.执行部件(EU) 执行部件负责指令的译码和执行。它的组成和第一章介绍的运算器有许多相似之处,包括算术逻辑运算部件ALU、通用寄存器、专用寄存器、标志寄存器等部件,这些部件的宽度都是16位。图2.1仅是一个组成结构示意图,不可能包括所有细节。对执行部件的理解主要在于它的总体功能以及各种寄存器的功能和应用。 8086的内部寄存器 从图2.1中可以看到,8086内含14个16位寄存器。下面分五方面加以介绍。 1.通用寄存器 图2.1中的AX、BX、CX和DX是4个16位的通用寄存器。为了能处理字节数据,这4个寄存器都可看成由2个8位寄存器组成,它们可单独使用。例如,AX可看成由高8位寄存器AH和低8位寄存器AL组成。在编程时,通用寄存器既可作为源操作数(其内容作为参与运算的数),又可作为目的操作数(用来存放运算结果)。 2.指针和变址寄存器 图2.1中的SP和BP同属指针寄存器。SP是堆栈栈指针寄存器,用来指示栈顶的位置。BP为基址指针。图2.1中的SI和DI同属变址寄存器。SI称为源操作数变址寄存器,DI称为目的操作数变址寄存器。SP、BP、SI以及DI寄存器的使用将在指令系统中详细介绍。 3.段寄存器 CS,DS,SS,ES均为段寄存器,要了解段寄存器的使用,首先需要了解8086的内部存储器分段结构。 8086的地址线为20位,最大寻址空间为220=1 MB。8086内部的寄存器都是16位,对地址的运算也是16位,而16位的最大寻址范围为216=64 KB。为了能在1 MB空间内进行全范围寻址,即可访问到1 MB存储器的任何一个存储单元,把

文档评论(0)

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

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

1亿VIP精品文档

相关文档