版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章Intel80X86系列微处理器4.18086/8088微处理器概述4.28086/8088内部寄存器结构4.38086/8088的存储器组织和I/O组织4.48086/8088的内部结构4.58086/8088外特性——引脚信号及其功能 4.68086/8088最小工作模式及其系统结构4.78086/8088最大工作模式及其系统结构4.88086/8088总线时序4.9INTEL80286到PentiumCPU4.18086/8088微处理器概述1978年Intel公司推出了首枚16位微处理器8086,以后英特尔生产的80X86系列微处理器,均与其兼容。1979年Intel公司推出了成本较低的Intel8088微处理器。1981年IBM公司选择8088微处理器作为核心来设计IBMPC微计算机系统,推向市场后获得了巨大的成功,为后来的80x86系列微处理器成为主流微计算机的处理核心打下了基础。4.18086/8088微处理器概述4.28086/8088内部寄存器结构了解CPU内部寄存器结构并掌握其使用方法是进行汇编语言程序设计的关键和基础。8086/8088内部有14个16位的寄存器,可供程序直接使用。按功能分为三组:通用寄存器组(8个)、段寄存器组(4个)和控制寄存器组(2个)。4.28086/8088内部寄存器结构4.2.1通用寄存器组4.2.2段寄存器组4.2.3控制寄存器组4.2.1通用寄存器组数据寄存器地址指针和变址寄存器8086/8088CPU有8个通用寄存器。这8个寄存器可以分为两类:数据寄存器和地址指针与变址寄存器。一、数据寄存器数据寄存器包括4个16位寄存器AX、BX、CX和DX,通常用于存放参与运算的操作数和运算结果。每一个数据寄存器又可将高、低8位分别作为两个独立的8位寄存器使用。它们的高8位分别记作AH、BH、CH、DH,低8位分别记作AL、BL、CL、DL。二、地址指针和变址寄存器
地址指针和变址寄存器包括4个16位寄存器SP、BP、SI和DI。它们主要是用来存放或指示操作数的偏移地址。其中SP、BP为地址指针寄存器,SI、DI为变址寄存器。SP堆栈指针:存放堆栈栈顶的偏移地址。堆栈操作指令PUSH和POP根据该寄存器得到操作数的偏移地址。BP基址寄存器:存放堆栈中数据的偏移地址。SI源变址寄存器:用来存放源数据区的偏移地址。DI目标变址寄存器:用来存放目的数据区的偏移地址。所谓变址寄存器,是指它存放的地址在串操作指令中可以按照要求自动增加/减少。4.2.2段寄存器组8086/8088CPU的存储器采用分段管理,为此,8086/8088内部设置了4个16位的段寄存器,CS代码段寄存器、DS数据段寄存器、SS堆栈段寄存器和ES附加段寄存器,分别用于存放代码段、数据段、堆栈段和附加段的段基地址。关于这4个寄存器的使用详见“4.38086/8088的存储器组织和I/O组织”。4.2.3控制寄存器组IP指令指针FLAGS标志寄存器8086/8088CPU包含2个16位的控制寄存器:指令指针IP和标志寄存器FLAGS。一、IP指令指针IP用于存放下一条要执行的指令的偏移地址。程序运行中,IP的内容自动修改,始终指向下一条要执行的指令地址。IP起着控制指令执行流程的作用,是一个十分重要的控制寄存器。正常情况下,程序不能直接修改IP的内容,但当需要改变程序执行顺序时,如遇到中断指令或调用指令时,IP中的内容将被自动修改。二、FLAGS标志寄存器FLAGS用于存放指令执行结果的特征和CPU工作方式。其内容通常称为处理器状态字(ProcessorStatusWord,PSW)。FLAGS是一个16位寄存器,实际使用了9位。9个标志分为状态标志和控制标志两类。图4.3标志寄存器1、状态标志CF:进位标志。有进位或借位时,CF=1;否则CF=0。PF:奇偶标志。低8位有偶数个“1”,PF=1;否则PF=0。AF:辅助进位标志。D3位有进位或借位时,AF=1;否则AF=0。ZF:零标志。结果为零,ZF=1;否则ZF=0。SF:符号标志。结果为负数,SF=1;否则SF=0。OF:溢出标志。发生溢出,OF=1;否则OF=0。
6个状态标志位用来表示运算结果的特征。状态标志位的置位或清零,由CPU根据运算过程和运算结果自动设置。2、控制标志
3个控制标志是用来控制CPU的工作方式的标志。
IF:中断允许标志。用来控制对外部可屏蔽中断的响应。如果IF=1,则允许CPU响应外部可屏蔽中断请求;否则CPU不响应外部可屏蔽中断请求。
DF:方向标志。用来控制串操作指令的执行。如果DF=1,则串操作指令的地址自动减量修改,串数据的传送过程是从高地址到低地址进行;否则,串操作指令的地址自动增量修改,串数据的传送过程是从低地址到高地址进行。
TF:陷阱标志,又称单步标志。当TF=1时,微处理器就进入单步工作方式,每执行完一条指令便自动产生一个内部中断(称为单步中断),转去执行一个中断服务程序,可以借助中断服务程序来检查每条指令的执行情况;如果TF=0,则CPU正常(连续)执行指令。4.38086/8088的存储器组织和I/O组织4.3.1存储器的分段管理4.3.2物理地址与逻辑地址4.3.3物理地址的形成 4.3.4堆栈4.3.5存储器组织4.3.6I/O组织4.3.1存储器的分段管理为了实现对1MB单元的寻址,8086/8088系统采用了存储器分段技术。存储器分段技术具体实现方法是:将1MB的存储空间分成许多逻辑段,每段最长64K字节单元,段内可以使用16位地址码进行寻址。每个逻辑段在实际存储空间中的位置是可以浮动的,逻辑段的起始地址可由段寄存器的内容来确定。实际上,段寄存器中存放的是段起始地址的高16位,称之为段基地址,逻辑段起始地址的低4位为0。图4.4逻辑段在物理存储器中的位置
各个逻辑段在实际的存储空间中可以完全分开,也可以部分重叠,甚至完全重叠。段的起始地址的计算和分配通常是由操作系统完成的,并不需要普通用户参与。4.3.2物理地址与逻辑地址物理地址:信息在存储器中实际存放的地址,它是CPU访问存储器时实际输出的地址。
8086/8088系统的物理地址是20位,存储空间为220=1M字节单元,地址范围从00000H到FFFFFH。CPU和存储器交换数据时所使用的就是20位的物理地址。逻辑地址:编程时所使用的地址,由段基地址和偏移量两部分构成。程序设计时所涉及的地址是逻辑地址而不是物理地址。编程时不需要知道产生的代码或数据在存储器中的具体物理位置。这样可以简化存储资源的动态管理。段基地址(段地址或段基址):段的起始地址的高16位。偏移量(偏移地址):所访问的存储单元距段的起始地址之间的字节距离。
在8086/8088计算机系统中,每个存储单元可以看成具有两种地址:物理地址和逻辑地址。4.3.2物理地址与逻辑地址给定段基地址和偏移量,就可以在存储器中寻址所访问的存储单元。在8086/8088系统中,段基地址和偏移量都是16位的。段基地址由16位的段寄存器CS、DS、SS和ES提供;偏移量通常由BX、BP、SP、SI、DI、IP或这些寄存器的组合形式来提供。例如,8086/8088开机后执行的第一条指令的逻辑地址由CS和IP两个寄存器给出,其逻辑地址表示为FFFFH:0000H,对应的物理地址为FFFF0H。4.3.3物理地址的形成8086/8088访问存储器时的20位物理地址可由逻辑地址转换而来。转换方法:将段寄存器中的16位段基地址左移4位(低位补0),再与16位的偏移量相加,即可得到所访问存储单元的物理地址。计算公式:
物理地址=段基地址×16+偏移量上式中的“段基地址×16”在微处理器中是通过将段寄存器的内容左移4位(低位补0)来实现的,得到的是20位的段的起始地址。段的起始地址与偏移量相加的操作由20位地址加法器来完成,图4.58086/8088物理地址的产生【例4.1】设代码段寄存器CS中的内容为4232H,指令指针寄存器IP中的内容为0066H,即[CS]=4232H,[IP]=0066H,则访问代码段存储单元的物理地址计算如下:
所以,访问代码段存储单元的物理地址为42386H。【例4.2】设数据段寄存器DS的内容为1234H,基址寄存器BX的内容为0023H,即[DS]=1234H,[BX]=0023H,则访问数据段存储单元的物理地址计算如下:
所以,访问数据段存储单元的物理地址为12363H。4.3.4堆栈堆栈是存储器中的一个特殊的数据存储区,采用“后进先出”的原则存放数据,通常它的一端(栈底)是固定的,另一端(栈顶)是浮动的,信息的存入和取出都只能在浮动的一端进行。堆栈主要用来暂时保存程序运行时的一些地址或数据信息。例如:当CPU执行调用指令时,用堆栈保存程序的返回地址(亦称断点地址);在中断处理时,通过堆栈“保存现场”和“恢复现场”;有时也利用堆栈为子程序传递参数。4.3.5存储器组织8086CPU有四个逻辑段,分别是代码段、数据段、堆栈段和附加段。代码段:用于存放指令代码。代码段寄存器CS存放代码段的段基地址,偏移量由指令指针IP提供。数据段和附加段:用于存放操作数。数据段寄存器DS存放数据段的段基地址,附加段段寄存器ES存放附加段的段基地址。堆栈段:堆栈段用于暂时保存程序运行中的一些数据和地址信息。4.3.6I/O组织8086/8088I/O端口为64KB,因此只需要16跟地址线A15~A0。对I/O端口寻址时不需要使用段寄存器,高位地址A19~A16输出0。4.48086/8088的内部结构8086/8088微处理器由两个独立的部件构成,一个是总线接口部件BIU(BusInterfaceUnit),另一个是执行部件EU(ExecutionUnit)。4.4.1总线接口部件BIU
BIU负责完成微处理器内部与外部(内存储器和I/O端口)的信息传送,即负责取指令和存取数据。
BIU由以下5个部分组成:4个16位的段寄存器:CS、DS、SS和ES,分别用于存放当前代码段、数据段、附加段和堆栈段的段基地址。16位指令指针IP:用于存放下一条要执行的指令的偏移地址。20位物理地址加法器:用于将来自于段寄存器的16位段地址左移4位后与来自于IP寄存器或EU提供的16位偏移地址相加,形成一个20位的物理地址。6/4字节的指令队列:用于存放预取的指令,减少等待时间,避免取指令和取操作数发生冲突,从而提高运行效率。总线控制逻辑:用于产生并发出总线控制信号,以实现对存储器和I/O端口的读/写控制。它将CPU的内部总线与16位的外部总线相连,是CPU与外部进行数据交换的通路。4.4.2执行部件EU
执行部件EU的功能就是负责指令的执行。
EU由以下几部分组成:算术逻辑单元ALU:ALU完成16位或8位的二进制数的算术/逻辑运算,绝大部分指令的执行都由ALU完成。在运算时,数据先传送至16位的暂存寄存器中,经ALU处理后,运算结果可通过内部总线送入通用寄存器或由BIU存入存储器。标志寄存器FLAGS:它用来反映CPU最后一次运算结果的状态特征或存放控制标志。FLAGS为16位,其中7位未用。通用寄存器组:它包括4个数据寄存器AX、BX、CX、DX,其中AX又称累加器,4个地址指针和变址寄存器,即基址寄存器BP、堆栈指针寄存器SP、源变址寄存器SI和目的变址寄存器DI。EU控制系统:它接收从BIU中指令队列取来的指令,经过指令译码形成各种定时控制信号,向EU内各功能部件发送相应的控制命令,以完成每条指令所规定的操作。4.4.3BIU与EU的动作协调原则
总线接口部件(BIU)和执行部件(EU)按以下流水线技术原则协调工作,共同完成所要求的信息处理任务。每当8086的指令队列中有两个空字节,或8088的指令队列中有一个空字节时,BIU就会自动把指令取到指令队列中。其取指的顺序是按照指令在程序中出现的前后顺序。每当EU准备执行一条指令时,它会从BIU部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行该指令。在执行指令的过程中,如果需要访问存储器或者I/O端口,那么EU就会请求BIU,进入总线周期,完成访问内存或者I/O端口的操作;如果此时BIU正好处于空闲状态,会立即响应EU的总线请求。如BIU正将某个指令字节取到指令队列中,则BIU将首先完成这个取指令的总线周期,然后再去响应EU发出的访问总线的请求。当指令队列已满,且EU又没有总线访问请求时,BIU便进入空闲状态。在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,则指令队列中已经装入的字节被自动消除,BIU会接着往指令队列装入转向后的另一程序段中的指令代码。4.58086/8088外特性
——引脚信号及其功能8086/8088CPU采用40个引脚的双列直插式封装形式。为了减少芯片的引脚,8086/8088CPU采用了引脚复用技术,因此部分引脚具有双重功能。这些双功能引脚的功能转换分两种情况:一种是采用了分时复用的地址/数据和地址/状态引脚;另一种是根据不同的工作模式定义不同的引脚功能。4.5.18086外特性
——引脚信号及其功能
电源、地和时钟信号系统复位和准备好信号地址、数据和状态信号中断信号读、写选通信号模式选择信号最小工作模式下的专用信号最大工作模式下的专用信号一、电源、地和时钟信号VCC电源端:接入的电压为+5V±10%。GND接地端:两条GND均应接地。CLK时钟信号:输入,提供CPU和总线控制的基本定时脉冲。8086CPU要求时钟信号是占空比为33%的非对称性的脉冲信号。二、系统复位和准备好信号RESET复位信号:输入,高电平有效,用来停止CPU的现行操作,完成CPU内部的复位过程。该信号必须由低到高,并且至少要保持4个时钟周期的高电平,才能完成复位CPU。READY准备就绪信号:输入,高电平有效,用来确认CPU访问的存储器或I/O设备是否完成数据传送。该信号是为了CPU与低速的存储器或I/O设备之间实现速度匹配所设置的。当READY为高电平时,表示内存或I/O设备已准备就绪,可以立即进行一次数据传输。TEST#测试信号:输入,低电平有效。该信号用于协调8086CPU与8087协处理器的操作。表4.1复位后内部寄存器状态寄存器名称状态FLAGS清除IP0000HCSFFFFHDS0000HSS0000HES0000H指令缓冲队列清除三、地址、数据和状态信号ADl5~AD0地址/数据复用总线:双向,三态,分时复用。在总线周期的T1状态,输出地址;在总线周期的T2~T4状态,作为数据线使用。A19/S6~A16/S3地址/状态复用线:输出,三态,分时复用。在总线周期的T1状态,用来输出地址的最高4位,在总线周期的其他状态用来输出状态信息。BHE#/S7总线高字节允许/状态信号S7:输出,三态,分时复用。在总线周期的T1状态,有效时表示选择高8位数据。在总线周期的其他状态用来输出状态,S7未定义。S7未定义。S6总是为0。S5表明中断允许标志的当前设置情况。如果IF=l,则S5=1,表示当前允许可屏蔽中断;如果IF=0,则S5=0,表示当前禁止一切可屏蔽中断。S4和S3状态的组合指出当前正使用哪个段寄存器。表4.2S4、S3代码组合与段寄存器的关系S4S3当前使用的段寄存器00附加段寄存器ES01堆栈段寄存器SS10代码段寄存器CS或未使用任何段寄存器11数据段寄存器DS四、中断信号INTR可屏蔽中断请求信号:输入、高电平有效。当该信号变为高电平时,表示外部设备有可屏蔽中断请求。CPU在每个指令周期的最后一个T状态检测此引脚,一旦测得此引脚为高电平,并且中断允许标志位IF=1,则CPU在当前指令周期结束后,转入中断响应周期。NMI非屏蔽中断请求信号:输入,上升沿有效。该中断请求不能用软件进行屏蔽,不受中断允许标志IF的控制。当该引脚上电平有由低到高的变化,就会在当前指令结束后引起中断。NMI中断通常由电源掉电等紧急情况引起。
INTA#中断响应信号:(最小工作模式下的专用信号)输出,低电平有效,在最小模式下,CPU响应可屏蔽中断后发给请求中断设备的应答信号,是对中断请求信号INTR的响应。五、读、写选通信号
RD#读信号:输出,三态,低电平有效,表示CPU正在对存储器或I/O端口进行读操作。在读总线周期的T2,T3,TW状态,均保持低电平。
WR#写信号(最小工作模式下的专用信号):输出,三态,低电平有效,表示CPU正在对存储器或I/O端口进行写操作。在写总线周期的T2,T3,TW状态,均保持低电平。六、模式选择信号8086CPU有两种工作模式:最小工作模式和最大工作模式。MN/MX#模式选择信号:用于选择CPU工作在最大工作模式还是最小工作模式。当此引脚接+5V(高电平)时,CPU工作于最小工作模式;若接地(低电平),CPU工作于最大工作模式。最小工作模式:系统中只有8086一个微处理器,系统中的所有总线控制信号都直接由8086产生。最大工作模式:系统中含有两个或两个以上微处理器,其中一个是主处理器8086,其它为协处理器,总线控制信号由芯片8288产生。由于在不同工作模式下,引脚24~31有着不同的名称和定义,因此称为专用引脚信号,除了引脚24~31外,其它引脚信号称为公共引脚信号。七、最小工作模式下的专用信号HOLD总线保持请求信号:输入,该信号是最小模式系统中除主CPU以外的其他总线控制器(如DMA控制器)申请使用系统总线的请求信号。HLDA总线保持响应信号:输出,该信号是对HOLD的响应信号。WR#写信号。M/IO#存储器/IO访问控制信号:输出。高电平时访存,低电平时访问IO。DEN#数据允许信号:输出,作为双向数据总线收发器8286的选通信号。它在每一次存储器访问或I/O访问或中断响应周期有效。DT/R#数据发送/接收控制信号:输出,三态,使用8286作为数据总线收发器时,8286的数据传送方向由控制。数据发送时=1;数据接收时=0。ALE地址锁存允许信号:输出、提供给地址锁存器8282的控制信号。INTA#中断响应信号。八、最大工作模式下的专用信号S2#,S1#,S0#总线周期状态信号:输出,三态,这三个信号组合起来指出当前总线周期所进行的操作类型。RQ#/GT1#,RQ#/GT0#总线请求信号/总线请求允许信号:这两个引脚是双向的,信号为低电平有效。这两个信号是最大模式系统中主处理器8086和其他协处理器(如8087,8089)之间交换总线使用权的联络控制信号。LOCK#总线封锁信号:输出,三态,低电平有效。当为低电平时,表明此时CPU不允许其他总线主设备占用总线。QS1,QS0指令队列状态信号:输出,QS1,QS0两信号用来指示CPU内指令队列的当前状态,以使外部处理器(主要是协处理器8087)对CPU内指令队列的动作进行跟踪。4.5.28088与8086引脚的不同之处8088CPU为准16位机,虽然其内部结构与8086基本相同,但是只能按8位与外部进行数据交换,因此8088的某些引脚信号与8086有所不同。不同的引脚包括:8088的地址/数据复用线为8条,即AD7~AD0,而A15~A8为单一的地址线;8088中无BHE#信号,引脚34为状态信号线SS0#。8086与8088的28号引脚在最小模式下都是用来选择存储器或I/O的,但二者选择电平相反。8088的存储器/IO控制线为IO/M#,即该信号为高电平时是I/O端口访问;为低电平时是存储器访问。这与8086的信号刚好相反。4.68086/8088最小工作模式及其系统结构4.6.18284A时钟发生器4.6.2总线分离与缓冲4.6.3最小工作模式下控制核心单元的组成4.6.18284A时钟发生器8086/8088系统采用Intel8284A作为时钟发生器。8284A将晶体振荡器的振荡频率分频后,向8086/8088系统提供符合要求的时钟脉冲CLK、PCLK和OSC信号;同时为复位信号RESET和准备好信号READY进行同步。一、8284A的引脚及其功能8284A为18引脚双列直插式封装。主要引脚及其功能如下:OSC:晶振输出端。CLK:系统时钟信号输出端。PCLK:外设时钟信号输出端。RES#:复位输入端。RESET:复位信号输出端。READY:准备好信号输出端。RDY1、RDY2:准备好信号输入端。AEN1#、AEN2
#:对应RDY1、RDY2的允许控制信号输入端。Vcc:电源输入端。GND:接端地。二、8284A的功能结构
8284A内部电路分为三大模块:时钟信号产生电路。RESET信号产生电路。READY信号产生电路。三、时钟信号产生电路
在IBMPC/XT机中,8284A外接石英晶体振荡器的振荡频率fc为14.31818MHz,因此OSC、CLK和PCLK信号的频率分别为14.31818MHz、4.77MHz和2.385MHz。四、RESET信号产生电路
通过加电与按键复位电路产生的RES#信号经过8284同步后输出符合系统要求的RESET信号。4.6.2总线分离与缓冲8086/8088CPU的地址总线和数据总线分时复用,然而IBMPC/XT机系统总线的地址总线和数据总线不是分时复用的,因此需要解决这一问题。利用8位锁存驱动器Intel8282和8位双向数据收发器Intel828
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度模特时尚产业模特聘用合同-@-12
- 二零二五年度出租车公司股权转让与绿色出行推广协议4篇
- 上海车位购买协议范本(2024版)版B版
- 二零二五版废旧设备买卖及环境评估协议3篇
- 二零二五年度食堂承包与营养搭配服务合同3篇
- 2025年生物科技企业部分股权增资扩股合同3篇
- 2025年鲜羊奶行业新型经销商合作模式合同范本3篇
- 二零二五年度原创动漫角色形象知识产权归属协议下载2篇
- 二零二五年空压机设备销售与安装验收合同2篇
- 2025年度高速公路服务区智能停车场车位租用合同范本
- 青岛版二年级下册三位数加减三位数竖式计算题200道及答案
- GB/T 12723-2024单位产品能源消耗限额编制通则
- GB/T 16288-2024塑料制品的标志
- 麻风病防治知识课件
- 干部职级晋升积分制管理办法
- TSG ZF003-2011《爆破片装置安全技术监察规程》
- 2024年代理记账工作总结6篇
- 电气工程预算实例:清单与计价样本
- VOC废气治理工程中电化学氧化技术的研究与应用
- 煤矿机电设备培训课件
- 高考写作指导议论文标准语段写作课件32张
评论
0/150
提交评论