微机原理与接口技术pp版本第3章_第1页
微机原理与接口技术pp版本第3章_第2页
微机原理与接口技术pp版本第3章_第3页
微机原理与接口技术pp版本第3章_第4页
微机原理与接口技术pp版本第3章_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3章章 微微 处处 理理 器器3.1 8086/8088微处理器微处理器3.2 8086总线的操作时序总线的操作时序3.3 从从80286到到Pentium微处理器结构的变化微处理器结构的变化3.4 80 x86的工作方式的工作方式习题习题3.1 80868088微处理器微处理器3.1.1 8086/8088微处理器的结构及执行程序的操作过程微处理器的结构及执行程序的操作过程8086 CPU是是Intel系列的系列的16位微处理器,它有位微处理器,它有16根数据根数据线和线和20根地址线,所以可寻址的地址空间是根地址线,所以可寻址的地址空间是2201MB。8088 CPU是准是准16位微处

2、理器,它的内部寄存器、内部位微处理器,它的内部寄存器、内部运算部件以及内部操作都是按运算部件以及内部操作都是按16位设计的,但对位设计的,但对外的数据总线只有外的数据总线只有8位,在处理一个位,在处理一个16位数据时,位数据时,8088需要两步操作,因而称需要两步操作,因而称8088是准是准16位微处理位微处理器。器。本章中关于本章中关于8086 CPU的内部结构是从指令的执行全过的内部结构是从指令的执行全过程来讨论的,即是从程序员和使用者的角度看到程来讨论的,即是从程序员和使用者的角度看到的结构。这种结构与的结构。这种结构与8086真正的物理结构有所区真正的物理结构有所区别,因而又称下面将要

3、讨论的别,因而又称下面将要讨论的8086 CPU的内部结的内部结构为编程结构。构为编程结构。8086 CPU从功能上可分为两部分,总线接口部件从功能上可分为两部分,总线接口部件(BIU)和执行部件和执行部件(EU)。其内部结构如图其内部结构如图3.1所示。所示。1. 总线接口部件总线接口部件总线接口部件的功能是:总线接口部件的功能是: (1) 从内存取指令送到指令队列;从内存取指令送到指令队列;(2) CPU执行指令时,总线接口部件要配合执行部件执行指令时,总线接口部件要配合执行部件从指定的内存单元或者外设端口取数据,或将数从指定的内存单元或者外设端口取数据,或将数据送到指定的内存单元或者外设

4、的端口。据送到指定的内存单元或者外设的端口。总线接口部件由下列各部分组成:总线接口部件由下列各部分组成: (1) 四个段地址寄存器,即四个段地址寄存器,即CS,16位代码段寄存器;位代码段寄存器;DS,16位数据段寄存器;位数据段寄存器;ES,16位附加段寄存器;位附加段寄存器;SS,16位堆栈段寄存器。位堆栈段寄存器。(2) 16位指令指针寄存器位指令指针寄存器IP。(3) 20位的地址加法器。位的地址加法器。(4) 六字节的指令队列缓冲器。六字节的指令队列缓冲器。80868088的的BIU指令队列和指令队列和20位地址加法器的作用:位地址加法器的作用: (1) 8086的指令队列缓冲器为六

5、个字节,的指令队列缓冲器为六个字节,8088的指令的指令队列缓冲器为四个字节。无论队列缓冲器为四个字节。无论8086还是还是8088,都,都会在执行指令的同时,从内存中取下一条指令或会在执行指令的同时,从内存中取下一条指令或几条指令,取来的指令就放在指令队列缓冲器中。几条指令,取来的指令就放在指令队列缓冲器中。图图3.1这样,一般情况下,这样,一般情况下,CPU执行完一条指令就可以立执行完一条指令就可以立即执行下一条指令,称为流水线技术,减少了即执行下一条指令,称为流水线技术,减少了CPU为取指令而等待的时间,从而提高了为取指令而等待的时间,从而提高了CPU的的效率。效率。(2) 地址加法器用

6、来产生地址加法器用来产生20位地址。上面已提到位地址。上面已提到8086可用可用20位地址寻址位地址寻址1MB的内存空间,但的内存空间,但8086内部内部所有的寄存器都是所有的寄存器都是16位的,所以需要一个附加的位的,所以需要一个附加的机构来根据机构来根据16位寄存器提供的信息计算出位寄存器提供的信息计算出20位的位的物理地址,这个机构就是物理地址,这个机构就是20位的地址加法器。位的地址加法器。2. 执行部件执行部件执行部件执行部件(EU)的作用是:的作用是: (1) 从指令队列中取出指令;从指令队列中取出指令;(2) 对指令进行译码,发出相应的传送数据或算术运对指令进行译码,发出相应的传

7、送数据或算术运算的控制信号;算的控制信号;(3) 接收由总线接口部件传送来的数据,或把数据传接收由总线接口部件传送来的数据,或把数据传送到总线接口部件;送到总线接口部件;(4) 进行算术运算。进行算术运算。执行部件由下列部分组成:执行部件由下列部分组成: (1) 四个通用寄存器四个通用寄存器AX,BX,CX,DX四个通用寄存器既可作为四个通用寄存器既可作为16位寄存器用,也可以作位寄存器用,也可以作为为8位寄存器使用,分别为位寄存器使用,分别为AH,AL,BH,BL,CH,CL,DH,DL。AX寄存器又称为累加器,寄存器又称为累加器,8086指令系统中有许多指指令系统中有许多指令都通过累加器的

8、动作来执行。令都通过累加器的动作来执行。AX为为16位累加器,位累加器,AL为为8位累加器。位累加器。(2) 专用寄存器专用寄存器4个专用寄存器,基址指针寄存器个专用寄存器,基址指针寄存器BP,堆栈指针寄存堆栈指针寄存器器SP,源变址寄存器源变址寄存器SI,目的变址寄存器目的变址寄存器DI。4个专用寄存器的用法将在指令系统有专门的论述。个专用寄存器的用法将在指令系统有专门的论述。(3) 算术逻辑单元算术逻辑单元ALU它是它是16位的运算器,可用于位的运算器,可用于8位或位或16位二进制算术和位二进制算术和逻辑运算,也可按指令的寻址方式计算寻址存储逻辑运算,也可按指令的寻址方式计算寻址存储器所需

9、的器所需的16位偏移量。位偏移量。(4) 数据暂存寄存器数据暂存寄存器它协助它协助ALU完成运算,暂存参加运算的数据。完成运算,暂存参加运算的数据。(5) EU控制电路控制电路从总线接口的指令队列取出指令操作码,通过译码从总线接口的指令队列取出指令操作码,通过译码电路分析,发出相应的控制命令,控制电路分析,发出相应的控制命令,控制ALU数据数据的流向。如果是运算操作,操作数经过暂存寄存的流向。如果是运算操作,操作数经过暂存寄存器送入器送入ALU,运算结果经过运算结果经过ALU数据总线送到相数据总线送到相应的寄存器,同时标志寄存器应的寄存器,同时标志寄存器F根据运算结果改变根据运算结果改变状态。

10、状态。(6) 标志寄存器标志寄存器标志寄存器共有标志寄存器共有16位,其中位,其中7位未用,所用的各位含义如位未用,所用的各位含义如图图3.2所示。所示。其中其中6个标志位反映个标志位反映CPU指令运行后的运行状态信息,分指令运行后的运行状态信息,分别为别为SF、ZF、PF、CF、AF和和OF。这些标志位用于这些标志位用于根据指令执行后的操作结果进行判断转移。根据指令执行后的操作结果进行判断转移。3个控制标个控制标志,分别为志,分别为DF、IF和和TF。控制标志可由编程员通过指控制标志可由编程员通过指令进行设置,有专门的指令对控制标志置令进行设置,有专门的指令对控制标志置0或置或置1。下面举例

11、说明运算结果对标志位的作用。下面举例说明运算结果对标志位的作用。例例3.1将下面两个数进行加法运算,看标志位的变化情将下面两个数进行加法运算,看标志位的变化情况。况。0010 0011 0100 0101+) 0011 0010 0001 10010101 0101 0101 1110SF0, 因为最高位为因为最高位为0;ZF0, 因为运算结果不为因为运算结果不为0;PF0, 因为低因为低8位运算结果位运算结果01011110是奇数个是奇数个1;CF0, 因为最高位无有进位;因为最高位无有进位;AF0, 因为因为D3位没有向位没有向D4位产生进位;位产生进位;OF0, 由于由于D14位没向位没

12、向D15位产生进位,位产生进位,D15位也位也没有进位。没有进位。这里要特别指出的是溢出标志的使用。这里要特别指出的是溢出标志的使用。图图3.2当字节运算的结果超出了范围当字节运算的结果超出了范围128127,或者,或者当字运算的结果超出范围当字运算的结果超出范围3276832767时称为时称为溢出。当计算机进行加法运算时,每当判断出次溢出。当计算机进行加法运算时,每当判断出次高位向最高位产生进位,而最高位没有进位时,高位向最高位产生进位,而最高位没有进位时,便知产生了溢出,于是便知产生了溢出,于是OF1;或者反过来,每当或者反过来,每当判断出次高位向最高位无进位,而最高位却往前判断出次高位向

13、最高位无进位,而最高位却往前有进位时,便知也产生了溢出,于是有进位时,便知也产生了溢出,于是OF1。在减在减法运算时,每当判断出次高位需要借位,而次高法运算时,每当判断出次高位需要借位,而次高位没向最高位产生借位时产生溢出,位没向最高位产生借位时产生溢出,OF置置1;或者;或者反过来,次高位向最高位有借位,而最高位并不反过来,次高位向最高位有借位,而最高位并不需向更高位借位时产生溢出,需向更高位借位时产生溢出,OF置置1。对于有符号数的运算,利用溢出标志对于有符号数的运算,利用溢出标志OF和符号标志和符号标志SF可判断数值的大小,下面举例说明。可判断数值的大小,下面举例说明。例例3.2将将12

14、5和和-5进行减法运算,看标志位的变化情进行减法运算,看标志位的变化情况。况。125-(-5)=135125的原码:的原码: 01111101-5的补码:的补码: 11111011 01111101 -)11111011 10000010SF1因为最高位为因为最高位为1,运算结果为负数。,运算结果为负数。OF1因因D6向向D7无借位,但无借位,但D7向更高位有借位。向更高位有借位。对于有符号数,一个字节运算范围为对于有符号数,一个字节运算范围为128127,此数结果为此数结果为135超出范围,所以溢出标志超出范围,所以溢出标志OF1,得出正数减负数得负数的错误结果。得出正数减负数得负数的错误结

15、果。可以这样考虑这个问题,当可以这样考虑这个问题,当OF0时,无溢出,计算的数据时,无溢出,计算的数据正确,所以若正确,所以若SF0,运算结果为正数,那么被减数大于减运算结果为正数,那么被减数大于减数,若数,若SF1,运算结果为负数,那么被减数小于减数;而运算结果为负数,那么被减数小于减数;而当当OF1时,产生溢出,计数结果不正确了,所以时,产生溢出,计数结果不正确了,所以SF0时,时,得到错误的正数结果,那么被减数小于减数;当得到错误的正数结果,那么被减数小于减数;当SF1时,时,得到错误的负数结果,那么被减数大于减数。得到错误的负数结果,那么被减数大于减数。下面再举两个例子说明利用下面再举

16、两个例子说明利用OF、SF如何判断数的大小。如何判断数的大小。例例3.3设被减数设被减数AL7,减数减数BL8,执行执行AL-BL后,根据标后,根据标志位判断志位判断AL、BL的大小。的大小。7的补码:的补码: 000001118的补码:的补码: 00001000 00000111 -)00001000 11111111OF0因为因为D6向向D7有借位,有借位,D7向更高位也有借位;向更高位也有借位;SF1因为最高位为因为最高位为1,是负数,是负数1;所以所以ALBL。是否正确呢?我们把运算结果的补码形式是否正确呢?我们把运算结果的补码形式11111111转转换成原码换成原码100000011

17、,可看出此结果正确。,可看出此结果正确。例例3.4设被减数设被减数AL125,减数减数BL50,执行执行AL-BL后,根据标志位判断后,根据标志位判断AL、BL的大小。的大小。-125的补码:的补码: 1000001150的补码:的补码: 00110010 10000011 -) 00110010_ 01010001OF1因因D6向向D7有借位,但有借位,但D7向更高位无借位;向更高位无借位;SF0为正数;为正数;所以所以ALBL。负数减正数,应该是负数,但运算结果却是正数,负数减正数,应该是负数,但运算结果却是正数,所以所以OF1,指出运算结果溢出,得出负数减正数指出运算结果溢出,得出负数减

18、正数得正数的错误结果。在得正数的错误结果。在OF1的情况下,的情况下,SF0,ALBL。3. 80868088 CPU执行程序的操作过程执行程序的操作过程(1) 总线接口部件在代码段寄存器总线接口部件在代码段寄存器CS中取出中取出16位的段位的段地址,再从指令指针寄存器地址,再从指令指针寄存器IP中取出中取出16位偏移地位偏移地址,经地址加法器形成址,经地址加法器形成20位地址,把该地址送上位地址,把该地址送上地址总线,并找到该地址所在的内存单元,从该地址总线,并找到该地址所在的内存单元,从该内存单元开始取出一些指令字节,依次放入指令内存单元开始取出一些指令字节,依次放入指令队列中。队列中。这

19、些指令按先进先出的原则存放,并按先进先出的这些指令按先进先出的原则存放,并按先进先出的顺序被执行部件执行。顺序被执行部件执行。(2) 每当每当8086的指令队列中有的指令队列中有2个空字节,或者个空字节,或者8088的的指令队列中有指令队列中有1个空字节时,总线接口部件就会自个空字节时,总线接口部件就会自动从内存单元中取指令放到指令队列中。动从内存单元中取指令放到指令队列中。(3) 执行部件从总线接口部件的指令队列队首取出指执行部件从总线接口部件的指令队列队首取出指令的代码,用几个时钟周期去执行指令。在执行令的代码,用几个时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者输入指令的

20、过程中,如果必须访问存储器或者输入输出设备,执行部件就会请求总线接口部件进入输出设备,执行部件就会请求总线接口部件进入总线周期去完成访问内存或者输入输出端口的总线周期去完成访问内存或者输入输出端口的操作;如果此时总线接口部件正好处于空闲状态,操作;如果此时总线接口部件正好处于空闲状态,那么,会立即响应执行部件的总线请求。那么,会立即响应执行部件的总线请求。但有时会遇到这种情况,执行部件请求总线接口部件访问总但有时会遇到这种情况,执行部件请求总线接口部件访问总线时,总线接口部件正在将某个指令取到指令队列中,此线时,总线接口部件正在将某个指令取到指令队列中,此时总线接口部件将首先完成这个取指指令的

21、总线周期,然时总线接口部件将首先完成这个取指指令的总线周期,然后再去响应执行部件发出的访问总线的请求。后再去响应执行部件发出的访问总线的请求。(4) 当指令队列已满,而且执行部件对总线接口部件又没有总当指令队列已满,而且执行部件对总线接口部件又没有总线访问请求时,总线接口部件便进入空闲状态。线访问请求时,总线接口部件便进入空闲状态。(5) 在执行转移指令、调用指令和返回指令时,下面要执行的在执行转移指令、调用指令和返回指令时,下面要执行的指令就不是在程序中紧接着排列的那条指令了,而总线接指令就不是在程序中紧接着排列的那条指令了,而总线接口部件往指令队列中装入指令时,总是按程序中指令排列口部件往

22、指令队列中装入指令时,总是按程序中指令排列的先后顺序进行的,这样,指令队列中已经装入的字节就的先后顺序进行的,这样,指令队列中已经装入的字节就没用了。碰到这种情况,指令队列中原有的内容被清除,没用了。碰到这种情况,指令队列中原有的内容被清除,总线接口部件会接着向指令队列中装入另一个程序段中的总线接口部件会接着向指令队列中装入另一个程序段中的指令。指令。3.1.2 80868088系统存储器的组织系统存储器的组织由于由于80868088 CPU有有20条地址线,能直接访问的条地址线,能直接访问的存储空间为存储空间为1MB,因此,每个存储单元所对应的因此,每个存储单元所对应的地址是地址是20位的,

23、而寄存器的位数是位的,而寄存器的位数是16位的,如何位的,如何用用16位的寄存器指向位的寄存器指向20位的存储单元是下面主要位的存储单元是下面主要论述的问题。论述的问题。1. 存储器的段结构存储器的段结构因为因为80868088内部寄存器是内部寄存器是16位的,能寻址的内位的,能寻址的内存空间只能是存空间只能是64KB,所以所以80868088系统采用了系统采用了地址分段的方法,将地址分段的方法,将1M空间分段,每段最多空间分段,每段最多64KB,在段内寻址仍可采用传统的在段内寻址仍可采用传统的16位地址寻址方法。位地址寻址方法。每个段的起始地址低每个段的起始地址低4位必须为位必须为0,高,高

24、16位放在位放在16位的段寄存器内,这高位的段寄存器内,这高16位地址称为段基址。段位地址称为段基址。段寄存器分别为寄存器分别为CS、DS、SS和和ES,段基址存放在这段基址存放在这4个段寄存器内。个段寄存器内。每个段不一定都是每个段不一定都是64KB,可以小于它,每个段可以可以小于它,每个段可以分开,也可以重叠。分开,也可以重叠。2. 物理地址的形成物理地址的形成物理地址是指物理地址是指CPU和存储器进行数据交换时实际所和存储器进行数据交换时实际所使用的地址。它由两部分组成:使用的地址。它由两部分组成: 段基址和偏移地段基址和偏移地址。段基址由段寄存器给出,偏移地址是指所要址。段基址由段寄存

25、器给出,偏移地址是指所要访问的内存单元离段起始地址的偏移距离,一般访问的内存单元离段起始地址的偏移距离,一般由由IP、DI、SI、BP、SP等等16位寄存器给出。当位寄存器给出。当CPU寻址某个存储单元时,先将段寄存器的内容寻址某个存储单元时,先将段寄存器的内容左移左移4位,然后加上指令中提供的位,然后加上指令中提供的16位偏移地址而位偏移地址而形成形成20位物理地址。位物理地址。20位物理地址的计算方法如位物理地址的计算方法如图图3.3所示。访问代码段内的指令,访问数据段或所示。访问代码段内的指令,访问数据段或堆栈段内的数据所用的段寄存器和存放偏移地址堆栈段内的数据所用的段寄存器和存放偏移地

26、址的寄存器之间的组合如图的寄存器之间的组合如图3.4所示。所示。图图3.3图图3.43. 8086系统存储区的分配系统存储区的分配(1) 00000H003FFH共共1KB区域用来存放中断矢量,这区域用来存放中断矢量,这一区域称为中断矢量表。中断矢量表的定义和作用参一区域称为中断矢量表。中断矢量表的定义和作用参阅中断一章的有关内容。阅中断一章的有关内容。(2) B0000HB0F9FH是单色显示器的显示缓冲区,存放是单色显示器的显示缓冲区,存放单色显示器当前屏幕显示字符所对应的单色显示器当前屏幕显示字符所对应的ASCII码和属码和属性。性。(3) B8000HBBF3FH约约16KB是彩色显示

27、器的显示缓冲是彩色显示器的显示缓冲区,存放彩色显示器当前屏幕像点所对应的代码。区,存放彩色显示器当前屏幕像点所对应的代码。(4) FFFF0HFFFFFH共共16个单元,一般用来存放一条个单元,一般用来存放一条无条件转移指令,转到系统的初始化程序。这是因为无条件转移指令,转到系统的初始化程序。这是因为系统加电或者复位时,会自动转到系统加电或者复位时,会自动转到FFFF0H执行。执行。3.1.3 80868088 微处理器的引脚功能微处理器的引脚功能8086/8088微处理器微处理器(CPU)可以在两种模式下工作,可以在两种模式下工作,即最大模式和最小模式。即最大模式和最小模式。所谓最小模式,就

28、是系统中只有所谓最小模式,就是系统中只有8086或者或者8088一个一个微处理器。在这种系统中,所有的总线控制信号微处理器。在这种系统中,所有的总线控制信号都直接由都直接由8086或或8088产生,因此,系统中的总线产生,因此,系统中的总线控制逻辑电路被减到最小。最大模式是相对最小控制逻辑电路被减到最小。最大模式是相对最小模式而言的。最大模式用在中等规模的或者大型模式而言的。最大模式用在中等规模的或者大型的的8086/8088系统中。在最大模式系统中,总是包系统中。在最大模式系统中,总是包含两个或两个以上微处理器,其中一个主处理器含两个或两个以上微处理器,其中一个主处理器就是就是8086或者或

29、者8088,其他的处理器为协处理器。,其他的处理器为协处理器。例如用于数值运算的处理器例如用于数值运算的处理器8087,用于输入,用于输入/输出输出大量数据的处理器大量数据的处理器8089。图图3.5为为8086 CPU和和8088 CPU的引脚图,图中带有括的引脚图,图中带有括号的引脚为最大模式时的引脚名称。号的引脚为最大模式时的引脚名称。图图3.58088是一种准是一种准16位微处理器,它的内部数据总线是位微处理器,它的内部数据总线是16位,外部数据总线是位,外部数据总线是8位,在软件上位,在软件上8088与与8086直接兼容,在硬件上除指令队列、第直接兼容,在硬件上除指令队列、第15引脚

30、引脚第第18引脚、第引脚、第34引脚、第引脚、第28引脚外,其他基本相同。引脚外,其他基本相同。我们主要了解最小模式下的我们主要了解最小模式下的8086,最大模式的引,最大模式的引脚功能略作介绍。脚功能略作介绍。在下面讲解引脚的动作过程中,用到一个总线周期在下面讲解引脚的动作过程中,用到一个总线周期的概念,这部分内容将在下一节中专门讲解。本的概念,这部分内容将在下一节中专门讲解。本节我们需要了解的是节我们需要了解的是CPU在进行工作时,无论是在进行工作时,无论是取指令还是读写数据,都是在一个时钟的统一控取指令还是读写数据,都是在一个时钟的统一控制下进行的。一个总线周期由制下进行的。一个总线周期

31、由4个时钟周期组成,个时钟周期组成,习惯上将习惯上将4个时钟周期称为个时钟周期称为4个状态,分别为个状态,分别为T1、T2、T3和和T4状态,如图状态,如图3.6所示。所示。图图3.6TW状态是用来等待存储器和状态是用来等待存储器和I/O设备对设备对CPU的响应,的响应,此时总线上的信息状态和此时总线上的信息状态和T3时的状态一样。时的状态一样。1. 地址地址/数据总线数据总线AD15AD0为地址为地址/数据复用引脚,双向,三态。该数据复用引脚,双向,三态。该引脚既可以输出访问存储器或访问引脚既可以输出访问存储器或访问I/O的地址信息的地址信息A15A0,又可以作为与存储器和又可以作为与存储器

32、和I/O设备交换数设备交换数据信息的据信息的D0D15。他们是分时工作的。由于他们是分时工作的。由于8088 CPU对外数据总线是对外数据总线是8位,所以位,所以AD0AD7为复用为复用线,线,AD15AD8不作复用,仅作为地址线输出地不作复用,仅作为地址线输出地址。址。2. 地址地址/状态总线状态总线A19/S6A16/S3A19/S6A16/S3为地址为地址/状态总线复用引脚,输出,状态总线复用引脚,输出,三态。三态。该引脚输出访问存储器的该引脚输出访问存储器的20位地址的高位地址的高4位地址,也位地址,也可以输出可以输出CPU的一些工作状态,它也是分时工作的一些工作状态,它也是分时工作的

33、。在总线周期的的。在总线周期的T1状态,用来输出地址的最高状态,用来输出地址的最高位,在总线周期的位,在总线周期的T2、T3和和T4状态时,用来输出状态时,用来输出状态信息。状态信息。S6: 指示指示8086/8088当前是否与总线相连,当前是否与总线相连,S6=0,表表示示8086/8088当前与总线相连。当前与总线相连。S5: 表明中断允许标志当前的设置。表明中断允许标志当前的设置。S5=0,表示表示CPU中断是关闭的,禁止一切可屏蔽中断的中断中断是关闭的,禁止一切可屏蔽中断的中断请求;请求;S5=1表示表示CPU中断是开放的,允许一切可中断是开放的,允许一切可屏蔽中断的中断申请。屏蔽中断

34、的中断申请。S4和和S3: 组合起来指出当前使用的段寄存器的情况,组合起来指出当前使用的段寄存器的情况,如表如表3.1所示。所示。3. 控制总线控制总线(1) BHE/S7: 高高8位数据总线允许位数据总线允许/状态复用引脚。在状态复用引脚。在总线周期的总线周期的T1状态此引脚输出状态此引脚输出BHE信号,表示高信号,表示高8位数据线位数据线D15D8上的数据有效,上的数据有效,T2、T3、TW和和T4状态,此引脚输出状态信号状态,此引脚输出状态信号S7。BHE信号和信号和A0信号合起来,说明当前数据总线的使用情况,如信号合起来,说明当前数据总线的使用情况,如表表3.2所示。所示。S7用来输出

35、状态信息,在当前用来输出状态信息,在当前8086芯片的设计中未芯片的设计中未被赋予定义,暂作备用。在被赋予定义,暂作备用。在8088中第中第34引脚不是引脚不是BHE/S7,而是被赋于另外的信号。在最大模式时,而是被赋于另外的信号。在最大模式时,此引脚恒为高电平;在最小模式时,则为此引脚恒为高电平;在最小模式时,则为SS0,这这和和DT/、M/IO一起决定了一起决定了8088芯片当前总线周期芯片当前总线周期的读的读/写动作。写动作。(2) RD: 读信号,三态输出,低电平有效。读信号,三态输出,低电平有效。RD=0时,时,表示当前表示当前CPU正在对存储器或正在对存储器或I/O端口进行读操作。

36、端口进行读操作。(3) WR: 写信号,三态输出,低电平有效。写信号,三态输出,低电平有效。WR=0时,时,表示当前表示当前CPU正在对存储器或正在对存储器或I/O端口进行写操作。端口进行写操作。(4) M/IO: 存储器或存储器或I/O端口访问信号,三态输出。端口访问信号,三态输出。M/IO=1时,表示时,表示CPU当前正在访问存储器;当前正在访问存储器;M/IO=0时,表示时,表示CPU当前正在访问当前正在访问I/O端口。端口。(5) READY: 准备就绪信号,输入,高电平有效。准备就绪信号,输入,高电平有效。READY=1时,表示时,表示CPU访问的存储器或访问的存储器或I/O端口已准

37、端口已准备好传送数据。若备好传送数据。若CPU在总线周期在总线周期T3状态检测到状态检测到READY信号为低电平,表示存储器或信号为低电平,表示存储器或I/O设备尚未准设备尚未准备就绪,备就绪,CPU自动插入一个或多个等待状态自动插入一个或多个等待状态TW,直直到到READY信号变为高电平为止。信号变为高电平为止。(6) INTR: 可屏蔽请求信号,输入,电平触发,高电平可屏蔽请求信号,输入,电平触发,高电平有效。当有效。当INTR=1时,表示外设向时,表示外设向CPU发出中断请求,发出中断请求,CPU在当前指令周期的最后一个在当前指令周期的最后一个T状态去采样该信号,状态去采样该信号,若此时

38、若此时IF=1,则则CPU响应中断,停止执行原指令序列,响应中断,停止执行原指令序列,转去执行中断服务程序。转去执行中断服务程序。(7) INTA: 中断响应信号,输出,低电平有效。表示中断响应信号,输出,低电平有效。表示CPU响响应了外设发来的应了外设发来的INTR信号。信号。(8) NMI: 不可屏蔽中断请求信号,输入,上升沿触发。该请不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后响应中断。号有效,则执行完当前指令后响应中断。(9) TEST: 测试信号,输入,低电平

39、有效。当测试信号,输入,低电平有效。当CPU执行执行WAIT指令时,每隔指令时,每隔5个时钟周期对个时钟周期对TEST进行一次测试,进行一次测试,若测到若测到TEST无效,无效,CPU继续处于等待状态,直到检测到继续处于等待状态,直到检测到TEST为低电平。为低电平。(10) RESET: 复位信号,输入,高电平有效。复位信号,输入,高电平有效。RESET信号至信号至少要保持少要保持4个时钟周期。个时钟周期。CPU接到接到RESET信号后,停止进信号后,停止进行操作,并将标志寄存器、行操作,并将标志寄存器、IP、DS、SS、ES及指令队列清及指令队列清零,将零,将CS设置为设置为FFFFH。当

40、复位信号为低电平时,当复位信号为低电平时,CPU从从FFFF0H开始执行程序。开始执行程序。(11) ALE: 地址锁存允许信号,输出,高电平有效。用地址锁存允许信号,输出,高电平有效。用来做地址锁存器来做地址锁存器8282的片选信号,使由的片选信号,使由AD15AD0分分时发出的地址信息和数据信息分开。时发出的地址信息和数据信息分开。(12) DT/: 数据发送数据发送/接收控制信号,三态输出。在最小接收控制信号,三态输出。在最小模式系统中使用模式系统中使用8286作为数据总线的收发器,作为数据总线的收发器,DT/信号信号用来控制用来控制8286芯片的数据传送方向。当芯片的数据传送方向。当D

41、T/R=1时,则时,则进行数据发送,即进行写操作;当进行数据发送,即进行写操作;当DT/R=0时,则进行时,则进行数据接收,即进行读操作。数据接收,即进行读操作。(13) DEN: 数据允许信号,三态输出,低电平有效。在数据允许信号,三态输出,低电平有效。在最小模式系统中,用来作数据收发器最小模式系统中,用来作数据收发器8286的选通信号。的选通信号。(14) HOLD: 总线请求信号,输入,高电平有效。当系总线请求信号,输入,高电平有效。当系统中统中CPU之外的另一个主模块要求占用总线时,通过之外的另一个主模块要求占用总线时,通过它向它向CPU发一高电平的请求信号。发一高电平的请求信号。(1

42、5) HLDA: 总线请求响应信号,输出,高电平有效。当总线请求响应信号,输出,高电平有效。当HLDA有效时,表示有效时,表示CPU对其他主部件的总线请求作出响对其他主部件的总线请求作出响应,与此同时,所有与三总线相接的应,与此同时,所有与三总线相接的CPU的引脚呈现高阻的引脚呈现高阻抗,从而让出总线。抗,从而让出总线。(16) MN/MX: 工作模式选择信号,输入。工作模式选择信号,输入。MN/MX=1,表示表示CPU工作在最小模式系统;工作在最小模式系统;MN/MX=0, 表示表示CPU工作在工作在最大模式系统。最大模式系统。(17) CLK: 主时钟信号,输入。主时钟信号,输入。8086

43、和和8088要求时钟信号的要求时钟信号的占空比为占空比为33%,即,即1/3周期为高电平,周期为高电平,2/3周期为低电平。周期为低电平。8086和和8088的时钟频率要求为的时钟频率要求为5MHz,8086|1的时钟频率为的时钟频率为10MHz,8086|2的时钟频率为的时钟频率为8MHz。不同型号的芯片使用不同型号的芯片使用的时钟频率不同。的时钟频率不同。4. 电源线和地线电源线和地线8086和和8088均用单一的均用单一的+5V电源。电源。1、20引脚为地线,应接地。引脚为地线,应接地。5. 最大模式下的有关引脚最大模式下的有关引脚(1) QS1、QS0: 指令队列状态信号,输出。这两个

44、信号指令队列状态信号,输出。这两个信号组合起来提供了总线周期的前一个状态中指令队列的组合起来提供了总线周期的前一个状态中指令队列的状态,以便于外部对状态,以便于外部对8086/8088内部指令队列的动作跟内部指令队列的动作跟踪。踪。QS1、QS2的代码组合和对应的含义见表的代码组合和对应的含义见表3.3所示。所示。(2) S2、S1、S0: 总线周期状态信号,三态输出。在最总线周期状态信号,三态输出。在最大模式系统中,它用来给总线控制器大模式系统中,它用来给总线控制器8288提供服务。提供服务。8288利用这些状态信号产生对存储器和利用这些状态信号产生对存储器和I/O设备的读写设备的读写信号。

45、这信号。这3个状态信号的编码和含义如表个状态信号的编码和含义如表3.4所示。所示。(3) RQ/GT1、EQ/GT2: 总线请求信号总线请求信号(输入输入)/总线请求总线请求允许信号允许信号(输出输出),双向,低电平有效。,双向,低电平有效。这两个信号端可供这两个信号端可供CPU以外的以外的2个处理器用来发出使用总个处理器用来发出使用总线的请求信号和接收线的请求信号和接收CPU对总线请求信号的回答信号。对总线请求信号的回答信号。这两个应答信号都是双向的。这两个应答信号都是双向的。RQ/GT0的优先级比的优先级比RQ/GT1的高。的高。(4) LOCK: 总线封缩信号,三态输出,低电平有效。总线

46、封缩信号,三态输出,低电平有效。LOCK有效时,表示有效时,表示CPU不允许其他总线主控部件不允许其他总线主控部件占用总线。占用总线。LOCK信号是由指令信号是由指令“LOCK”使其有使其有效,并维持到下一条指令执行完毕为止。效,并维持到下一条指令执行完毕为止。此外,在此外,在8086/8088的两个中断响应脉冲之间,的两个中断响应脉冲之间,LOCK信号也自动变为有效电平,以防其他总线主信号也自动变为有效电平,以防其他总线主部件在中断响应过程中占用总线而使一个完整的部件在中断响应过程中占用总线而使一个完整的中断响应过程被间断。还须指出,在中断响应过程被间断。还须指出,在DMA期间,期间,LOC

47、K端被浮空而处于高阻状态。端被浮空而处于高阻状态。3.2 8086总线的操作时序总线的操作时序为了使取指令和传送数据能协调工作,为了使取指令和传送数据能协调工作,8086 CPU的的操作是在时钟操作是在时钟CLK统一控制下进行的。统一控制下进行的。8086时时钟频率为钟频率为5MHz,故一个时钟周期为故一个时钟周期为200ns。执行一条指令所需的时间,称为一个指令周期。而执行一条指令所需的时间,称为一个指令周期。而一个指令周期是由若干个总线周期一个指令周期是由若干个总线周期(或称机器周或称机器周期期)所组成的。一个总线周期是所组成的。一个总线周期是CPU通过总线与通过总线与存储器或外部设备进行

48、一次数据传输所需的时存储器或外部设备进行一次数据传输所需的时间。间。一个总线周期又是由若干个时钟周期组成。一个最一个总线周期又是由若干个时钟周期组成。一个最基本的总线周期是由基本的总线周期是由4个时钟周期组成。常将个时钟周期组成。常将4个时钟周期分别称为个时钟周期分别称为4个状态,即个状态,即T1、T2、T3和和T4。8086的主要操作是:的主要操作是: (1) 系统的复位和启动操作;系统的复位和启动操作;(2) 暂停操作;暂停操作;(3) 总线操作;总线操作;(4) 中断操作。中断操作。3.2.1 系统的复位和启动系统的复位和启动1. 复位复位8086/8088 CPU的的RESET引脚可以

49、用来使引脚可以用来使CPU复位和启动。要求复位和启动。要求RESET引脚上的高电平信号维引脚上的高电平信号维持持4个时钟周期才能保证个时钟周期才能保证CPU可靠地复位。初次加可靠地复位。初次加电也能使电也能使CPU复位,这时要求复位,这时要求RESET的高电平信的高电平信号维持时间不小于号维持时间不小于800ns。8086 CPU被复位后,被复位后,PSW、DS、ES、SS和其他寄和其他寄存器被清零,指令队列也被清零,段寄存器存器被清零,指令队列也被清零,段寄存器CS和和指令指针指令指针IP分别被初始化为分别被初始化为FFFFH和和0000H,因此因此8086 CPU复位后重新启动,执行的第一

50、条指令所复位后重新启动,执行的第一条指令所在存储单元的物理地址为在存储单元的物理地址为FFFFH16+0000HFFFF0H。一般情况下,在从一般情况下,在从FFFF0H开始的单元中,存放一条开始的单元中,存放一条无条件转移指令,以转移到系统程序实际开始处。无条件转移指令,以转移到系统程序实际开始处。值得注意的是在复位后由于标志寄存器的各位均被值得注意的是在复位后由于标志寄存器的各位均被清零,使清零,使IF=0,处于关中断状态,处于关中断状态,8086/8088 CPU不能响应可屏蔽的中断请求。因而在系统程序的不能响应可屏蔽的中断请求。因而在系统程序的初始化时,用指令初始化时,用指令STI使标

51、志寄存器中的使标志寄存器中的IF=1,以以使使CPU能够响应可屏蔽中断请求。能够响应可屏蔽中断请求。复位操作时序如图复位操作时序如图3.7所示:所示: 图图3.7因为因为CPU内部是用时钟脉冲来同步外部的复位信号内部是用时钟脉冲来同步外部的复位信号的,所以的,所以CPU内部的内部的RESET信号是在外部信号是在外部RESET信号有效后的时钟上升沿有效的。信号有效后的时钟上升沿有效的。RESET信号变信号变成高电平以后,再经过成高电平以后,再经过1个时钟周期,所有的三态个时钟周期,所有的三态输出线被置成高阻状态,并一直维持高阻状态直输出线被置成高阻状态,并一直维持高阻状态直到到RESET信号回到

52、低电平。但在进入高阻状态的信号回到低电平。但在进入高阻状态的前半个时钟周期,即在前一个时钟周期的低电平前半个时钟周期,即在前一个时钟周期的低电平期间,这些三态线被置成不作用状态,等到时钟期间,这些三态线被置成不作用状态,等到时钟信号又成为高电平时,三态输出线才进入高阻状信号又成为高电平时,三态输出线才进入高阻状态。复位时,态。复位时,8086 CPU的总线信号如表的总线信号如表3.5所示。所示。2. 重新启动重新启动复位信号复位信号RESET由高电平跳变到低电平的过程中,由高电平跳变到低电平的过程中,触发了触发了CPU内部的一个复位逻辑电路,经过内部的一个复位逻辑电路,经过7个时个时钟周期后,

53、钟周期后,CPU就被启动恢复正常工作。从就被启动恢复正常工作。从FFFF0H地址所指的单元开始执行程序。地址所指的单元开始执行程序。3.2.2 最大与最小模式下的总线操作最大与最小模式下的总线操作8086/8088 CPU为了要与存储器及外设端口交换数据,为了要与存储器及外设端口交换数据,需要执行一个总线周期,这就是总线操作。按照需要执行一个总线周期,这就是总线操作。按照数据传输方向来分,总线操作可以分为总线读操数据传输方向来分,总线操作可以分为总线读操作和总线写操作。总线读操作是指作和总线写操作。总线读操作是指CPU从存储器从存储器或外设端口读取数据,总线写操作是指或外设端口读取数据,总线写

54、操作是指CPU将数将数据写入存储器或外设端口。据写入存储器或外设端口。1. 8086 CPU最小模式下的总线读周期最小模式下的总线读周期图图3.8表示了表示了CPU从存储器或从存储器或I/O端口读取数据的时序。端口读取数据的时序。最基本的读操作包含最基本的读操作包含4个状态,即个状态,即T1、T2、T3和和T4。当存储器或当存储器或I/O设备速度慢于设备速度慢于CPU速度时,就速度时,就在在T3和和T4状态之间插入状态之间插入1个或几个等待状态个或几个等待状态TW。下面分述几个状态下,地址、数据、控制信号的产下面分述几个状态下,地址、数据、控制信号的产生与时刻的关系。生与时刻的关系。图图3.8

55、(1) T1状态状态当当CPU准备开始一个总线读周期时,用准备开始一个总线读周期时,用M/IO信号指信号指出当前执行的读操作是从存储器读,还是从出当前执行的读操作是从存储器读,还是从I/O端端口读。如果从存储器读,则口读。如果从存储器读,则M/IO为高电平,如果为高电平,如果是从是从I/O端口读,则端口读,则M/IO为低电平。为低电平。M/IO信号的信号的有效电平一直保持到整个总线周期的结束。在有效电平一直保持到整个总线周期的结束。在T1状态,状态,CPU经地址经地址/数据复用线数据复用线AD15AD0,地址地址/状态复用线状态复用线A19/S7A16/S3发出发出20位地址信息,位地址信息,

56、发出地址信息的同时发出地址信息的同时BHE和和ALE控制信号有效,控制信号有效,BHE信号用来表示高位数据线上的信息可以使用,信号用来表示高位数据线上的信息可以使用,用该信号作为奇地址存储体的选择信号,配合地用该信号作为奇地址存储体的选择信号,配合地址信号来实现对存储单元的寻址。址信号来实现对存储单元的寻址。ALE信号作为信号作为地址锁存信号,启动锁存器地址锁存信号,启动锁存器8212,在,在ALE信号下信号下降沿将降沿将20位地址和位地址和BHE信号锁存。从而把地址信信号锁存。从而把地址信息和状态信息分开。息和状态信息分开。(2) T2状态状态在在T2状态时,状态时,A19/S6A16/S3

57、上的地址信号消失,上的地址信号消失,而出现而出现S6S3状态信号,这些状态信号保持到读状态信号,这些状态信号保持到读周期结束,状态信号用来表明当前正在使用哪一周期结束,状态信号用来表明当前正在使用哪一个段寄存器,指示可屏蔽中断允许标志个段寄存器,指示可屏蔽中断允许标志IF的状态,的状态,以及表明以及表明8086 CPU当前是连在总线上。当前是连在总线上。AD15AD0变成高阻状态,为读入数据作准备。变成高阻状态,为读入数据作准备。RD有效信号为由高电平变成低电平,送至存储器或有效信号为由高电平变成低电平,送至存储器或I/O端口,开始从被选中的存储单元或端口,开始从被选中的存储单元或I/O端口读

58、取端口读取数据。数据。DEN也变成低电平有效信号,启动收发器也变成低电平有效信号,启动收发器8286,与,与在在T1状态时已有效的状态时已有效的DT/信号一样,做好了接收来信号一样,做好了接收来自存储器或自存储器或I/O端口的数据。端口的数据。(3) T3状态状态如果存储器或如果存储器或I/O端口已做好了数据准备而不需要等待状端口已做好了数据准备而不需要等待状态时,则在态时,则在T3状态期间将数据放到数据总线上,在状态期间将数据放到数据总线上,在T3结束时,结束时,CPU从从AD15AD0上读取数据。上读取数据。(4) TW状态状态在总线读周期,若存储器或在总线读周期,若存储器或I/O设备来不

59、及把数据放到数设备来不及把数据放到数据总线上,则发出一个低电平信号到据总线上,则发出一个低电平信号到CPU的的READY端,端,使使CPU在在T3和和T4之间插入一个或几个之间插入一个或几个TW状态,来等状态,来等待存储器或待存储器或I/O端口的数据。端口的数据。8086 CPU这时的工作过这时的工作过程是:程是: 在在T3状态开始测试状态开始测试READY引脚信号,若发现引脚信号,若发现READY信号有效,则表示存储器或信号有效,则表示存储器或I/O端口能按时将端口能按时将数据送上数据总线,数据送上数据总线,T3状态之后即进入状态之后即进入T4状态;若测状态;若测试到试到READY为低电平,

60、则在为低电平,则在T3状态结束后,不进入状态结束后,不进入T4状态,而插入一个或几个状态,而插入一个或几个TW状态,在每个状态,在每个TW状态状态开始,开始,CPU都测试都测试READY线,只有发现它为高电平后,线,只有发现它为高电平后,才在该才在该TW结束后进入结束后进入T4状态。状态。在最后一个在最后一个TW状态,数据已经出现在数据总线上。状态,数据已经出现在数据总线上。所以,在最后一个所以,在最后一个TW状态中,总线的动作和基本状态中,总线的动作和基本总线周期中总线周期中T3状态所完成的动作完全一样。而在状态所完成的动作完全一样。而在其他的其他的TW状态,所有控制信号的电平和状态,所有控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论