第二章8086系统结构_第1页
第二章8086系统结构_第2页
第二章8086系统结构_第3页
第二章8086系统结构_第4页
第二章8086系统结构_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

第2章8086系统结构2.18086CPU结构

2.28086CPU的引脚及其功能2.38086存储器组织2.48086系统配置2.18086CPU结构Inter8086CPU是16位微处理器,它有16根数据线和20根地址线,直接寻址空间为,即1MB。8088CPU内部结构与8086基本相同但对外数据总线只有8条,称为准16位微处理器。2.1.18086CPU的内部结构

微型计算机工作时,总是先从存储器中取指令,需要的话再取操作数,然后执行指令,送结果。通常8位机是串行执行的,而16位机可并行操作。8086CPU由总线接口部件BIU和指令执行部件EU组成,BIU和EU的操作是并行的。总线接口部件BIU完成取指令,读操作数,送结果,所有与外部的操作由其完成。而指令执行部件EU从BIU的指令队列中取出指令,执行指令,不必访问存储器或I/O端口。若需要访问存储器或I/O端口,也是由EU向BIU发出访问所需要的地址,在BIU中形成物理地址,然后访问存储器或I/O端口,取得操作数送到EU,或送结果到指定的内存单元或I/O端口。这种并行工作方式,大大提高了系统工作效率。图2.18086CPU内部结构示意图1.总线接口部件BIU总线接口部件BIU是8086CPU与外部(存储器和I/O端口)的接口,它提供了16位双向数据总线和20位地址总线,完成所有外部总线操作。BIU具有下列功能:地址形成、取指令、指令排队,读/写操作数和总线控制。它由下列各部分组成:(1)16位段地址寄存器:CS-代码段寄存器DS-数据段寄存器ES-附加段寄存器SS-堆栈段寄存器(2)16位指令指针寄存器IP:存放下一条要执行指令的偏移地址。(3)20位物理地址加法器:将16位逻辑地址变换成存储器读/写所需要的20位物理地址,实际上完成地址加法操作。(4)6字节指令队列:预放6字节的指令代码。(5)总线控制逻辑:发出总线控制信号。2.指令执行部件EU指令执行部件EU完成指令译码和执行指令的工作。它由以下几个部分组成:(1)算术逻辑运算单元ALU:完成8位或16位的二进制运算,16位暂存器可暂存参加运算的操作数。(2)标志寄存器PSW:存放ALU运算结果特征。(3)寄存器组:4个通用16位寄存器AX、BX、CX、DX,其中AX又称累加器。4个专用16位寄存器:源变址寄存器SI、目的变址寄存器DI、堆栈指针寄存器SP、基址指针寄存器BP。(4)EU控制器:取指令控制和时序控制部件。2.1.2寄存器结构寄存器用来存放运算过程中所需要的操作数地址、操作数及中间结果。8086微处理器内部包含有4组16位寄存器,它们分别是通用寄存器组,指针和变址寄存器,段寄存器,指令指针及标志位寄存器。如图2.2所示。2.8086CPU的内部寄存器图2.28086CPU内部寄存器

数据寄存器

指针与变址寄存器AXAHALSP

堆栈指针寄存器BXBHBLBP

基址寄存器CXCHCLSI

源变址寄存器DXDHDLDI

目的变址寄存器

段寄存器

指令指针与标志寄存器CS

代码段寄存器IP

指令指针寄存器DS

数据段寄存器FLAGS

标志位寄存器ES

附加段寄存器

SS

堆栈段寄存器

1.通用寄存器组8086/8088CPU在指令执行部件EU中有4个16位通用寄存器,它们是AX、BX、CX和DX,用以存放16位数据或地址。也可分为8个8位寄存器来使用,低8位是AL、BL、CL和DL,高8位为AH、BH、CH和DH,只能存放8位数据,不能存放地址。在8086中,某些通用寄存器用作专门用途。例如,串指令中必须用CX寄存器作为计数寄存器,存放串的长度,同样,AX、BX、DX寄存器又可分别称为累加器、基址寄存器及数据寄存器。2.指针和变址寄存器8086/8088CPU中,有一组4个16位寄存器,它们是基址指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI和目的变址寄存器DI。这组寄存器存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。BP和SP寄存器称为指针寄存器,与SS联用,为访问现行堆栈段提供方便。通常BP寄存器在间接寻址中使用,操作数在堆栈段中,由SS段寄存器与BP组合形成操作数地址。即BP中存放现行堆栈段中一个数据区的“基址”的偏移量,所以称BP寄存器为基址指针。SP寄存器在堆栈操作中使用,PUSH和POP指令是从SP寄存器得到现行堆栈段的段内地址偏移量,所以称SP寄存器为堆栈指针,SP始终指向栈顶。寄存器SI和DI称为变址寄存器,通常与DS一起使用,为访问现行数据段提供段内地址偏移量。在串指令中,其中源操作数的偏移量存放在SI中,目的操作数的偏移量存放在DI中,SI与DI的作用不能互换,否则传送地址相反。在串指令中,SI、DI均为隐含寻址,此时,SI和DS联用,DI和ES联用。3.段寄存器8086/8088CPU可直接寻址1MB的存储器空间,直接寻址需要20位地址码,而所有内部寄存器都是16位的,只能直接寻址64KB,因此采用分段技术来解决。将1MB的存储空间分成若干逻辑段,每段最长64KB,这些逻辑段在整个存储空间中可浮动。8086/8088CPU内部设置了4个16位段寄存器,它们分别是代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES,由它们给出相应逻辑段的首地址,称为“段基址”。段基址与段内偏移地址组合形成20位物理地址,段内偏移地址可存放在寄存器中,也可存放在存储器中。例2.1代码段寄存器CS存放当前代码段基地址,IP指令指针寄存器存放了下一条要执行指令的段内偏移地址,其中CS=2000H,IP=003AH.通过组合,形成20位存储单元的寻址地址为2003AH。代码段内存放可执行的指令代码,数据段和附加段内存放操作的数据,通常操作数在现行数据段中,而在串指令中,目的操作数指明必须在现行附加段中。堆栈段开辟为程序执行中所要用的堆栈区,采用先进后出的方式访问它。各个段寄存器指明了一个规定的现行段,各段寄存器不可互换使用。程序较小时,代码段、数据段、堆栈段可放在一个段内,即包含在64KB之内,而当程序或数据量较大时,超过了64KB,可以定义多个代码段或数据段、堆栈段、附加段。现行段由段寄存器指明段地址,使用中可以修改段寄存器内容,指向其它段。有时为了明确起见,可在指令前加上段超越的前缀字,以指定操作数所在段。4.指令指针寄存器

8086/8088CPU中设置了一个16位指令指针寄存器IP,用来存放将要执行的下一条指令在现行代码段中的偏移地址。程序运行中,它由BIU自动将其修改,使IP始终指向下一条将要执行的指令的地址,因此它是用来控制指令序列的执行流程的。8086程序不能直接访问IP,但可以通过某些指令修改IP的内容。例如,当遇到中断指令或调用子程序指令时,8086自动调整IP的内容,将IP中下一条将要执行的指令地址偏移量入栈保护,待中断程序执行完毕或子程序返回时,可将保护的内容从堆栈中弹出到IP,使主程序继续运行。在跳转指令时,则将新的跳转目标地址送入IP,改变它的内容,实现了程序的转移。

5.标志寄存器PSW

标志寄存器是一个16位的寄存器,8086共使用了9个有效位,格式如图2.3所示。其中的6位是状态标志位:CF、PF、AF、ZF、CF和OF。3位为控制标志位:TF、IF和DF。状态标志位是当一些指令执行后,表征所产生数据的一些特征。而控制标志位则可以由程序写入,以达到控制处理机状态或程序执行方式的表征。图2.3标志寄存器格式D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0

OFDFIFTFSFZF

AF

PF

CFD15D0OFDFIFTFSFZFAFPFCF进借位标志奇偶标志半进借位标志零标志符号标志单步中断中断允许方向标志溢出标志1-有进、借位0-无进、借位1-低8位有偶数个10-低8位有奇数个11-低4位向高4位有进、借位0-低4位向高4位无进、借位1-结果为00-结果不为0(1)6个状态标志位的功能分别叙述如下:CF(CarryFlag)——进位标志位。当执行一个加法(或减法)运算,最高位产生进位(或借位)时,CF为1;否则为0。PF(ParityFlag)——奇偶标志位。该标志位反映运算结果低8位中“1”的个数是偶数还是奇数。当指令执行结果的低8位中含有偶数个1时,PF=1;否则PF=0。AF(AuxiliarycarryFlag)——辅助进位标志位。当执行一个加法(或减法)运算,结果的低4位向高4位有进位(或借位)时,AF=1;否则AF=0。一般用在BCD码运算中,判断是否需要十进制调整。ZF(ZeroFlag)——全零标志位。若当前的运算结果为零,ZF=1;否则ZF=0。SF(SignFlag)——符号标志位。它和运算结果的最高位相同。OF(OverflowFlag)——溢出标志位。当运算过程中产生溢出时,OF=1;否则OF=0。(2)3个控制标志位用来控制CPU的操作,由指令进行置位和复位。DF(DirectionFlag)——方向标志位。它用以指定字符串处理时的方向,当该位置“1”时,字符串以递减顺序处理,即地址以从高到低顺序递减。反之,则以递增顺序处理。IF(InterruptenableFlag)——中断标志位。它用来控制8086是否允许接收外部中断请求。若IF=1,允许CPU响应外部中断,反之则不响应外部中断。注意:IF的状态不影响非屏蔽中断请求(NMI)和CPU内部中断请求。TF(TrapFlag)——单步标志位。它是为调试程序而设定的控制位。当该位置“1”时,8086CPU处于单步状态,此时CPU每执行完一条指令就自动产生一次内部中断,使用户能逐条跟踪程序进行调试。当该位复位后,CPU恢复正常工作。例2.2将5394H与-777FH两数相加,并说明其标志位状态:0101001110010100+1000100010000001—————————————1101110000010101运算结果为-23EBH,并置标志位为CF=0,PF=0,AF=0,ZF=0,SF=1,OF=0。本节主要内容讲解视频2.28086CPUD引脚及其功能8086/8088CPU根据它的基本性能,应包括20条地址线,16条数据线,加上控制信号,电源和地线,芯片的引脚比较多。但由于制造工艺的限制,8086/8088CPU芯片采用40条引脚的双列直插式封装,因此部分引脚采用了分时复用的方式。另外8086/8088CPU可以工作在两种工作模式(最小模式和最大模式),最小模式用于单机系统。系统中所需要的控制信号全部由8086直接提供。最大模式用于多处理机系统,系统中所需要的控制信号由总线控制器8288提供。这样,24脚~31脚的8条引脚在两种工作模式中具有不同的功能。2.2.18086/8088CPU在最小模式中引脚定义8086CPU采用双列直插式的封装形式,具有40条引脚,见图2.4。它采用分时复用的地址/数据总线,所以有一部分引脚具有双重功能,即在不同时钟周期内,引脚的作用不同。图2.48086的引脚信号(括号中为最大模式下的名称)1、地址/数据总线AD15-AD0:地址/数据复用引脚,双向,三态。16位地址总线A15-A0,输出访问存储器或I/O的地址信息。16位数据总线D15-D0,与存储器和I/O设备交换数据信息。地址/数据总线复用2、地址/状态总线A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态。输出访问存储器的20位地址的高4位地址A19-A16或输出CPU的工作状态。S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S5=1,表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。S4、S3:指出当前使用段寄存器的情况。S4S3段寄存器00当前正在使用ES01当前正在使用SS10当前正在使用CS或不需使用段寄存器11当前正在使用DS3、控制总线(1)、/BHE/S7:高8位数据总线允许/状态复用引脚。在总线周期的T1状态,此引脚输出/BHE信号,表示高8位数据线D15-D8上的数据有效。在T2、T3、TW和T4状态时,此引脚输出S7状态信号。/BHE、A0组合:/BHEA0总线使用情况

00从偶地址单元开始,在16位数据总线上进行字传送01从奇地址单元开始,在高8位数据总线上进行字节传送10从偶地址单元开始,在低8位数据总线上进行字节传送11无效S7:8086中无定义。(2)/RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。(3)/WR:写信号,三态输出,低电平有效。/WR=0,表示当前CPU正在对存储器或I/O端口进行读操作。(4)M//IO:存储器或IO端口访问信号,三态输出。M//IO=1,表示CPU正在访问存储器;M//IO=0,表示CPU正在访问IO端口。(5)READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。(6)INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时IF=1,CPU响应中断,执行中断服务程序。(7)/INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。(8)NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。(9)/TEST:测试信号,输入,低电平有效。当CPU执行WAIT指令时,每隔5个时钟周期对/TEST进行一次测试,若/TEST=1,继续等待,直到/TEST=0。(10)RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始执行。(11)ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址/数据总线。(12)DT//R:数据发送/接收控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送方向,DT//R=1,发送数据-写操作;DT//R=0,接收数据-读操作。(13)/DEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。(14)HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(15)HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的引脚呈现高阻抗状态,从而让出总线。(16)MN//MX:工作模式选择信号,输入。

MN//MX=1,表示CPU工作在最小模式系统;MN//MX=0,表示CPU工作在最大模式系统。(17)CLK:主时钟信号,输入。8086/8088的时钟频率为5MHZ。4、电源线和地线8086/8088采用单+5V电源,1、20引脚为地线。5、最大模式下的有关引脚(1)QS1、QS0:指令队列状态信号,输出。

QS1QS0含义00无操作01将指令首字节送入指令队列10队列为空11将指令其余字节送指令队列(2)/S2、/S1、/S0:总线周期状态信号,三态输出。

/S2、/S1、/S0状态信号的编码/S2/S1/S0操作过程产生信号000发中断响应信号/INTA001读I/O端口IORC010写I/O端口IOWC011暂停无100取指令/MRDC101读存储器/MRDC110写存储器/AMWC111无作用无(3)/RQ//GT0、/RQ//GT1:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。输入时表示其他主控者向CPU请求使用总线,输出时表示CPU对总线请求的响应信号,两个引脚可以同时与两个主控者相连。其中/RQ//GT0比/RQ//GT1有较高的优先权。(4)/LOCK:总线封锁信号,三态输出,低电平有效。/LOCK=0,CPU不允许其它控制器占用总线。本节主要内容讲解视频2.38086存储器组织2.3.1存储器地址的分段1.存储器地址的分段在存储器中是以字节为单位存储信息的,每个存储单元有唯一的地址来确定。8086/8088系统有20根地址线可寻址1MB字节的存储空间,即对存储器寻址要20位物理地址,而8086为16位机,CPU内部寄存器只有16位,可寻址64KB。因此8086系统把整个存储空间分成许多逻辑,每段容量不超过64KB。

8086系统对存储器的分段采用灵活的方法,允许各个逻辑段在整个存储空间中浮动,这样在程序设计时可使程序保持相对的完整性。段和段之间可以是连续的(整个存储空间分成16个逻辑段),也可以是分开的或重叠的。如图2-7所示:任何一个存储单元的实际地址,都是由段地址及段内偏移地址两部分组成,从图2-7可以看出,任何一个存储单元,可以在一个段中定义,也可定义在两个重叠的逻辑段中,关键看段的首地址如何指定。IBMPC机对段的首地址有限制。规定必须从每小段的首地址开始,每16字节为一小段,所以段起始地址必须能被16整除才行。2.物理地址形成8086系统将段地址放在段寄存器中,称为“段基址”。有4个段寄存器,分别为代码段寄存器CS,数据段寄存器DS,附加段寄存器ES和堆栈段寄存器SS。段内“偏移地址”指出了从段地址开始的相对偏移位置。它可以放在指令指针寄存器IP中,或16位通用寄存器中。

逻辑地址:存储器的任一个逻辑地址由段基址和偏移地址组成,都是无符号的16位二进制数,程序设计时采用逻辑地址。物理地址:存储器的绝对地址,从00000~FFFFFH,是CPU访问存储器的实际寻址地址,它由逻辑地址变换而来。物理地址计算如下所示:物理地址=段基址×16+偏移地址因为段基址指每段的起始地址,它必须是每小段的首地址,其低4位一定为0,所以在实际工作时,是从段寄存器中取出段基址,将其左移4位,再与16位偏移地址相加,就得到了物理地址,此地址在CPU的总线接口部件BIU的地址加法器中形成。

图2.3物理地址形成过程3.逻辑地址来源逻辑地址来源如下表所示:

CS0000IP代码段DS或ES0000SI、DI或BXSS0000SP或BP数据段堆栈段存储器段寄存器和偏移地址寄存器组合关系2.3.28086存储器的分体结构8086系统中,1MB的存储空间分成两个存储体:偶地址存储体和奇地址存储体,各为512KB,示意图如图2-10所示:图2-118086系统的存储器结构图2-11所示为8086系统的存储器结构。1MB存储器分为两个库,每个库的容量都是512KB。其中和数据总线D15~D8相连的库全部由奇地址单元组成,称为高位字节库或奇地址库,利用/BHE信号低电平作为此库的选择信号;另一个库和数据总线D7~D0相连,由偶地址单元组成,称为低位字节库或偶地址库,利用地址线A0=0(低电平)作为此库的选择信号。所以只有A19~A1共19个地址线用来作为两个库内的存储单元的寻址信号。表2-1给出/BHE与A0相配合可能进行的操作。A0操作数据引脚00从偶地址开始读/写一个字(规则字)AD15~AD010从偶地址开始读/写一个字节AD7~AD001从奇地址开始读/写一个字节AD15~AD80110从奇地址开始读写一个字(非规则字),第一总线周期高8位数据有效,第二总线周期低8位数据有效AD15~AD8AD7~AD0表2-1和A0的代码组合对应的存取操作当在偶数地址中存取一个数据字节时,CPU从低位库中经数据线AD7~AD0存取数据。由于被寻址的是偶数地址,所以地址位A0=0,由于A0是低电平所以才能在低位库中实现数据的存取。而指令中给出的是在偶地址中存取一个字节,/BHE信号应为高电平,故不能从高位库中读出数据。相反,当在奇数地址中存取一个字节数据时,应经数据线的高8位AD15~AD8传送。此时,指令应指出是从高位地址(奇数地址)寻址,/BHE信号为低电平有效状态,故高位库能被选中,即能对高位库中的存储单元进行存取操作。由于是高位地址寻址,故A0=1低位库存储单元不会被选中。如表2-1所示,8086CPU也可以一次在两个库中同时各存取一个字节,完成一个字的存取操作。字数据是将连续存放的两个字节数据构成一个16位的字数据。规定字的高8位字节存放在高地址单元,字的低8位字节存放在低地址单元。同时规定将低位字节的地址作为这个字的地址。通常,一个字数据总是位于偶地址,即偶地址对应低位字节,奇地址对应高位字节,符合这种规则存放的字数据称为“规则字”。双字数据要占用4个字节,用以存放连续的两个字。在存放低位字或高位字时,高位字节位于高地址,低位字节位于低地址,以最低位字节地址作为它的地址。规则字的存取操作可以在一个总线周期中完成。由于地址线A19~A1是同时连接在两个库上的,只要BHE和A0信号同时有效,就可以一次实现在两个库中对一个字(高低两字节)完成存取操作。对字的存取操作所需的BHE及A0信号是由字操作指令给出的。对非规则字的存取操作就需要两个总线周期才能完成:在第一个总线周期中,CPU是在高位库中存取数据(低位字节),此时A0=1,BHE=0。然后再将存储器地址加1,使A0=0,选中低位库;在第二个总线周期中,是在低位库中存取数据(高位字节),此时A0=0,BHE=1。本节主要内容讲解视频2.3.3堆栈的概念

所谓堆栈是在存储器中开辟一个区域,用来存放需要暂时保存的数据。堆栈段是由段定义语句在存储器中定义的一个段,它可以在存储器lMB空间内任意浮动,堆栈段容量小于等于64KB,段基址由堆栈寄存器SS指定,栈顶由堆栈指针SP指定,根据堆栈构成方式不同,堆栈指针SP指向的可以是当前栈顶单元,也可以是栈顶上的一个“空”单元,一般采用SP指向当前栈顶单元。堆栈的地址增长方式一般是向上增长,栈底设在存储器的高地址区,堆栈地址由高向低增长。例2.3:假如当前SS=C000H,堆栈段<64KB,SP=1000H,指出当前栈顶在存储器中的位置。当前栈顶在存储器中的地址为C1000H,如图所示:堆栈的工作方式是“先进后出”,用入栈指令PUSH和出栈指令POP可将数据压入堆栈或从堆栈中弹出数据,栈顶指针SP的变化由CPU自动管理。堆栈以字为单位进行操作,堆栈中的数据项以低字节在偶地址,高字节在奇地址的次序存放。当执行PUSH指令时,CPU自动修改指针SP-2→SP。使SP指向新栈顶,然后将低位数据压人(SP)单元,高位数据压入(SP+1)单元。当执行POP指令时,CPU先将当前栈顶SP(低位数据)和SP+1(高位数据)中的内容弹出,然后再自动修改指针,使SP+2→SP,SP指向新栈顶。

例2.4上图中若AX=3322H,BX=1100H,CX=6655H,执行指令PUSHAXPUSHBXPOPCX此时堆栈中内容发生什么变化?AX,BX,CX中的内容是什么?如图C所示。

堆栈主要用于中断及子程序调用,也可用于数据暂时保存。在进入中断服务子程序和子程序调用前,原来CPU中现行信息(指令指针IP,及寄存器中有关内容)都必须保存,在中断服务子程序和子程序调用结束返回主程序时,又必须恢复原来保存的信息,这些均由堆栈操作来完成。其中指令指针的入栈和出栈由CPU自动管理,而一些寄存器中内容的保存及返回,需要用户自己利用指令PUSH、POP来完成。

由于堆栈操作的先进后出的特点,一定要注意两点:1)先进入的内容要后弹出,保证返回寄存器内容不发生错误。例2.5PUSHAXPUSHBXPUSHCXPOPCXPOPAXPOPBX会使AX和BX内容互相交换。2)PUSH和POP的指令要成对,若不匹配的话,会造成返回主程序的地址出错。例2.6PUSHAXPUSHBXPUSHCX...POPCXPOPBXRET会使CPU返回主程序时,返回地址取出的是原来AX中的内容,使整个程序执行出错。2.48086系统配置8086/8088系统可以有最小模式和最大模式两种系统配置方式,两种方式的选择是由硬件设定的。当CPU的引脚MN//MX端接高电平+5V时,构成最小模式,当MN//MX接低电平时,构成最大模式。

最小模式:单机系统,系统中所需要的控制信号由CPU提供,实现和存储器及I/0接口电路的连接。

最大模式:可以构成多处理器/协处理器系统,即一个系统中存在两个以上微处理器,每个处理器执行自己的程序。

常用的处理器有数值运算协处理器8087,输入/输出处理器8089。系统中所需要的控制信号由总线控制器8288提供,8086CPU提供信号控制8288,以实现全局资源分配及总线控制权传递。2.4.1最小模式系统

在最小模式系统中,除了8086CPU,存储器及I/O接口芯片外,还要加入:1片8284A,作为时钟发生器3片8282/8283或74LS373,作为地址锁存器2片8286/8287或74LS245,作为双向数据总线收发器配置成一个系统。图2.158086CPU最小模式下的典型配置1.地址锁存器8282/8283CPU与存储器(或I/O端口)进行数据交换时,CPU首先要送出地址信号,然后再发出控制信号及传送数据。由于8086引脚限制,地址和数据分时复用一组总线,所以要加入地址锁存器,先锁存地址,使在读/写总线周期内地址稳定。8282/8283是三态缓冲的8位数据锁存器,8282的输入和输出信号是同相的,8283的输入和输出信号反相。8282/8283在最小模式系统中作地址锁存器用,20位物理地址需要用3片。OODQCLKOSTB。。。。。ODI0DO0OE。。。。。。。8282引脚及内部结构图。。。。DI0~DI7输入端DO0~DO7输出端/OE允许控制(低电平有效)STB锁存信号高电平允许(通过)低电平禁止(锁存)DI7DO72.双向数据总线收发器8286/8287

8086CPU驱动数据的负载能力有限,当挂在数据总线上的部件增加时,可以利用双向数据总线收发器8286/8287来增加驱动能力。8286/8287是三态8位双向数据收发器,8286数据输入与输出同相,8287数据输入与输出反相。DEN=0OE=0当DT/R=0时,当DT/R=1时,ABAOBOOO。。。。。。。OOETA1A7。。。B1B7。。。。接DEN接DT/R8286BA8286引脚及内部结构图1289111218193.时钟发生器8284

8086CPU的内部和外部的时间基准信号由时钟输入信号CLK提供,CLK信号是由外部时钟发生器8284产生,并由驱动门电路进行功率放大。8284时钟发生器与8086CPU的连接图如下页:RESETREADYCLKOSCPCLKRESRDY10+5V等待电路14.31818MHZ8284RESETREADYCLK14.318MHZ2.385MHZ8086/80882.4.2最大模式系统

CPU的引脚MN//MX接地时,8086为最大模式系统,在最大模式系统中需要增加总线控制器8288和总线裁决器8289,以完成8086CPU为中心的多处理器系统的协调工作。此时CPU输出的状态信号/S0~/S2同时送给8288和8289,由8288输出原CPU所有的控制信号:存储器读/写控制,I/O端口读/写控制,中断响应信号等。由8289来裁决总线使用权赋给哪个处理器,以实现多主控者对总线资源的共享。总线控制器8288

总线控制器8288是20个引脚的双极型器件。8086CPU的总线状态信号/S0、/S1、/S2输入总线控

温馨提示

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

评论

0/150

提交评论