




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章8086/8088微处理器
2.18086微处理器2.28086系统时序和微机总线概述(5.1)2.38086的两种工作模式(5.2)2.4最小模式下的8086时序分析(5.3)2.5最大模式下的8086时序分析(5.4)
2.18086微处理器的结构2.1.18086/8088的功能结构
8086/8088CPU的内部结构框图如图2.1所示。从功能上讲,8086/8088CPU分为两部分,即:总线接口部件BIU(BusInterfaceUnit)
执行部件EU(ExecutionUnit)内部暂存器
IPESSSDSCS输入/输出控制电路外部总线执行部分控制电路123456∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列缓冲器执行部件(EU)总线接口部件(BIU)16位20位16位8位8086
内部结构一.总线接口单元(BIU)1.具体功能负责从内存取指令送到CPU内部的指令队列CPU执行指令时,配合EU从指定存储单元或I/O口取数据,或把运算结果传送到指定存储单元或I/O口2.组成1)4个16位段地址寄存器CS(CodeSegment)—代码段寄存器,代码段存放代码DS(DataSegment)—数据段寄存器,数据段存放数据SS(StackSegment)—堆栈段寄存器,堆栈段用作堆栈操作ES(ExtraSegment)—扩展段寄存器,扩展段存放数据注:8086对存储器采用分段管理,4个段寄存器分别存放4个当前段的起始地址,又称作段基址寄存器。2)指令指针寄存器IP
(InstructionPointer)16位IP存放当前代码段(CS)所要取出的下一条指令的偏移地址3)地址加法器∑
8086用20位地址线寻址1MB内存空间,但其内部寄存器是16位的,因此需要用地址加法器∑根据16位寄存器的值计算出20位物理地址4)指令缓冲队列8086执行指令的同时,会从内存取1条或几条指令,取来的指令就存放在指令队列中,8086执行完一条指令就可立即执行下一条指令,无需轮番的取指令和执行指令,提高了CPU效率;8086指令队列为6个字节,8088指令队列为4个字节;5)其他暂存器:用于与EU通信的内部寄存器总线控制电路:负责总线操作控制二、执行单元(EU)1)16位算术逻辑单元ALU主要是加法器,绝大部分指令执行都由加法器完成2)4个16位数据寄存器(AX、BX、CX、DX)可分为8个8位寄存器使用AH、AL、BH、BL、CH、CL、DH、DL数据寄存器用于存放操作数及中间结果,AX和AL可用作累加操作,因此又称作累加器3)4个16位地址指针寄存器:通常用于存放操作数偏移地址SP(StackPointer)—堆栈指针寄存器,指示堆栈段栈顶位置BP(BasePointer)—基址指针寄存器,指示堆栈段数据区基址SI(SourceIndex)—源变址寄存器,指示数据段源串地址DI(DestinationIndex)—目的变址寄存器,指示扩展段目的串地址4)标志寄存器FLAG:存放CPU当前运算结果的状态特征或者控制标志三、总线接口部件(BIU)和执行部件(EU)的配合1.指令队列中出现两个字节为空时,BIU自动按CS和IP值组成20位物理地址,到存储器中取指令,一次取两个字节指令存放到指令队列中2.EU从BIU指令队列中读取指令3.由EU控制电路对指令进行译码分析,指出操作性质及操作对象4.EU执行指令,如需访问存储器或I/O端口中的数据,则由EU给出数据的16位偏移地址送给BIU5.BIU由地址加法器∑形成20位绝对物理地址,并传递给存储器6.存储器给出数据,BIU通过总线控制电路将其传送到CPU内部总线7.EU将从内部总线获得数据,并送入ALU进行运算8.EU运算出的结果,经内部总线送到指定的寄存器或暂存器,若需要将结果送给存储器,则由EU给出偏移地址,请求BIU产生20位实际物理地址,将结果写入存储器传统微处理器的指令执行过程8086CPU的指令执行过程
取指令1执行1存结果1取指令2取操作数执行2CPUBUS忙碌忙碌忙碌忙碌取指令2取操作数BIU存结果取指令3取操作数取指令4执行1执行2执行3
EUBUS忙碌忙碌忙碌忙碌忙碌忙碌四、寄存器组1、通用寄存器组数据寄存器:AX、BX、CX、DX
用来保存算术、逻辑运算的操作数、中间结果。可拆分成两个8位的寄存器高8位(High)AH、BH、CH、DH
低8位(Low)AL、BL、CL、DL,为了与上一代8位的处理器相兼容。地址与变址寄存器:SP、BP、SI、DI
用来存放16位操作数或者操作数的偏移地址。堆栈指针SP:存放当前堆栈段的栈顶指针。堆栈操作指令PUSH和POP就是从SP中得到操作数的段内偏移地址的。基址指针BP:访问堆栈时的基址寄存器。BP中存放的是堆栈中某一存储单元的偏移地址,SP、BP通常和SS联合使用来访问堆栈。源变址指针SI:源变址寄存器目的变址指针DI:目的变址寄存器。
SI、DI通常在串操作数访问时,提供源操作数和目的操作数的有效地址。它们还可以用来存放16位的操作数或操作数的地址。2、段寄存器
内存中通常存放三种信息:
代码(指令):计算机执行何种操作数据(字符、数值):程序处理的对象堆栈信息:保存返回地址和中间结果这三类信息通常分别存放在各自的存贮区域内(存贮系统中的不同存贮段)。8086/8088系统中把可直接寻址的1兆字节内存空间分为称作“段”的逻辑区域,每个段的起始地址的有关值存放在称为段寄存器的4个16位寄存器中。代码段寄存器CS,指向当前的代码段,指令由此段取出。堆栈段寄存器SS,指向当前的堆栈段,堆栈操作所需的就是该段存贮单元的内容。数据段寄存器DS,指向当前数据段,通常用来存放程序变量。附加段寄存器ES,指向当前附加段,通常也用来存贮数据。3、控制寄存器(1)指令指针IP(InstructionPointer)。在总线接口部件BIU中设置了一个16位的指令指针寄存器IP,其作用是用来存放将要执行的下一条指令在现行代码段中的偏移地址,它与CS相结合生成指向指令的物理地址。在程序的运行过程中,IP的内容由BIU部件自动修改。程序中不能直接访问IP,但可以间接通过转移指令或调用指令来改变其内容。(2)标志寄存器FR(FlagsRegister)。标志寄存器FR在程序转移中也称程序状态字寄存器(ProgramStatusWord),用来存放指令执行结果特征位和对CPU运行特点的控制位。8086CPU中设置了一个16位标志寄存器,只用了9位,其余的位为以后的CPU扩展使用。9位标志分为两类,标志寄存器的具体格式如图2.4所示。图2.4标志寄存器状态标志由CPU在运行过程中自动置位或复位,用来表示当前执行指令的运算结果的特征。①CF(CarryFlag):进位标志。当前运算结果的最高位(对字节操作是D7位,对字操作是D15位)产生进位或借位时,则CF=1;否则CF=0。
②PF(ParityFlag):奇偶标志。表示本次运算结果中含有1的个数是奇数还是偶数,若含有偶数个1,则PF=1;否则PF=0。
③AF(AuxiliaryCarryFlag):辅助进位标志。本次加法或减法运算过程中若D3位有进位或借位时,AF=1;否则AF=0。该标志适用于BCD运算中的十进制调整。④ZF(ZeroFlag):零标志。若本次运算结果为0,则ZF=1;否则ZF=0。⑤SF(SignFlag):符号标志。它与当前运算结果的最高位(即符号位)相同,用来表示带符号数本次运算结果是正还是负,如果运算结果为负数,则SF=1,否则SF=0。⑥OF(OverflowFlag):溢出标志。当前运算结果超出了机器所能表示的数据范围时,就会产生溢出。当产生溢出时,标志位OF=1;否则OF=0。控制标志是用来控制CPU的工作方式或工作状态的标志。用户可以使用专用指令或程序段对其设置或清除。①IF(InterruptFlag):中断允许标志。它是控制可屏蔽中断的标志,如IF=1时,允许CPU响应可屏蔽中断请求INTR;当IF=0时,即使有中断请求INTR,CPU也不响应,即禁止中断。
②DF(DirectionFlag):方向标志。该标志用来控制串操作指令中地址指针的变化方向。在串操作指令中,若DF=0,地址指针为自动增量,即由低地址向高地址进行串操作;若DF=1,地址指针自动减量,即由高地址向低地址进行串操作。
③TF(TrapFlag):跟踪标志,也称为单步标志。TF=1时,CPU为单步方式,即每执行完一条指令就自动产生一个内部中断,使用户可逐条跟踪程序进行调试。当TF=0时,CPU正常执行程序。D15D0
OFDFIFTFSFZFAFPFCF进借位标志奇偶标志半进借位标志零标志符号标志单步中断中断允许方向标志溢出标志1-有进、借位0-无进、借位1-低8位有偶数个10-低8位有奇数个11-低4位向高4位有进、借位0-低4位向高4位无进、借位1-结果为00-结果不为0一、存储器的分段
8086CPU有20根地址线,寻址1MB的存储单元;
每一存储单元有唯一的地址码,范围00000H~FFFFFH。2.1.28086的存储器组织问题:
8086/8088有20根地址线,但每个寄存器只有16位,如何能正确地给出指令或数据的唯一的地址?采用存储器分段技术,对存储器的寻址操作不是直接用20位的物理地址,而是采用段地址加段内偏移地址的二级寻址方式。8086CPU将1MB空间分成许多逻辑段(Segment)每个段最大限制为64KB段地址的低4位为0000B二、物理地址和逻辑地址12/19/2023对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000H~FFFFFH。分段后在用户编程时,采用逻辑地址,形式为:
段基地址
:段内偏移地址分隔符逻辑地址12/19/2023段地址说明逻辑段在主存中的起始位置8086规定段地址必须是模16地址:xxxx0H省略低4位0000B,段地址就可以用16位数据表示,就能用16位段寄存器表达段地址偏移地址说明主存单元距离段起始位置的偏移量每段不超过64KB,偏移地址也可用16位数据表示物理地址和逻辑地址的转换12/19/2023将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址一个物理地址可以有多个逻辑地址逻辑地址 1460:100、1380:F00物理地址 14700H14700H14600H+100H14700H13800H+F00H14700H段地址左移4位加上偏移地址得到物理地址
在计算20位物理地址时,段寄存器中的16位数会自动左移4位,然后与16位有效地址EA相加。如图2.3所示。
物理地址的构成:物理地址=段地址×10H+有效地址。CPU执行不同操作需要访问不同的段:1.取指令操作,访问的是代码段,20位物理地址的构成是将CS的内容左移4位加上IP的内容;2.存取数据操作,通常访问的是数据段,20位的物理地址是将DS的内容左移4位与16位偏移地址EA相加,关于EA的构成将在操作数的寻址方式中详细介绍;3.堆栈操作,是将SS的内容左移4位与SP相加形成20位的物理地址;在对目的串操作时,是将ES的内容左移4位与DI相加以形成20位的物理地址。表2-18086的基本段约定和允许的超越段CPU执行的操作基本段约定超越段有效地址取指令CS-IP压栈、弹栈SS-SP源串DSCS,ES,SSSI目的串ES-DI通用数据读写DSCS,ES,SS有效地址EABP作间址寄存器SSCS,DS,ES有效地址EA存储器管理的几点说明:一个段总是从16字节边界开始,20位段起始地址的低4位总为0同一个物理地址可以采取不同的逻辑地址形式表示例:物理地址12345H可表示为1200:0345H或1230:0045H尽管代码段、数据段、堆栈段、扩展段均为64KB,但实际应用时,不同段可以相互重叠或重合,但段内地址连续20000H21000H2FFFFH30FFFH代码段数据段在8086系统中,存储器有几个部分的用处是固定的:⑴00000~003FFH共1KB区域用来存放中断向量,这一区域称为中断向量表。中断向量实际上就是中断处理子程序的入口地址,每个中断向量占4个字节,低地址的2个字节为中断处理子程序入口地址的偏移量,高地址的2个字节为中断处理子程序的段地址。当然,对一个具体系统来说,一般并不需要多达256个中断处理程序,因此,实际系统中的中断向量表的大部分区域是空白的。⑵B0000H~B0F9FH约4KB是单色显示器的显示缓冲区,存放单色显示器当前屏幕字符所对应的ASCII码和属性。⑶B8000H~BBF3FH约16KB是彩色显示器的显示缓冲区,存放彩色显示器当前屏幕像素点所对应的代码。⑷从FFFF0H开始到存储器底部FFFFFH共16个单元,一般只用来存放一条无条件转移指令,转到系统的初始化程序。这样在系统加电或者复位时,就会自动转到FFFF0H执行。2.2.1时钟周期、总线周期和指令周期CPU在时钟信号的控制下工作。时钟信号是按一定电压幅度、一定时间间隔发出的脉冲信号.CPU所有的操作都以时钟信号为基准:CPU按严格的时间标准发出地址、控制信号,内存、接口也按严格的时间标准送出或接受数据.这个时间标准就是由时钟信号确定。CLK2.28086系统时序及总线概述(5.1)时钟周期:相邻两个脉冲之间的时间间隔,是CPU的基本时间单位,它由计算机主频决定。
用T表示。
T:又称为状态(State)总线周期:CPU通过总线进行某种操作所花费的时间。总线操作:存储器读或写、I/O读或写、中断响应,总线请求及响应等。
一个总线周期至少包括4个时钟周期。当需要延长总线周期时需要插入等待状态Tw时序:CPU各引脚信号在时间上的关系。总线时序:描述CPU引脚如何按时间实现总线操作。指令周期:是指执行一条指令所需要的时间。包括取指令、译码、执行。一个指令周期包括若干总线周期。8086引脚信号及工作模式一、
8086引脚信号和功能1.8086引脚图和引脚分类图
8086CPU为双列直插封装,为解决功能多与引脚少的矛盾,采用了引脚复用技术,分时复用地址/数据总线。2.2.28086/8088引脚
1、外部引脚的区别
8086有16根数据线,与地址线A15~A0分时复用,而8088只有8根数据线与地址线AD7~AD0分时复用。8086有总线高位有效信号,一次可读写8位或16位数据;8088没有,读写16位的数据需要两次访问存储器或端口。二、8088CPU和8086CPU区别
2、内部结构的区别
8088CPU和8086CPU的内部结构基本相同,都是16位的内部结构。外部数据总线的宽度不同。8086的外部数据总线为16位,而8088的BIU对外部只提供8位的数据线,所以称8088为准16位CPU。内部结构不同的另一地方是:8086CPU内的BIU中有一个6字节的指令队列,而8088CPU内的BIU中只有一个4字节的指令队列。当8088指令队列有1个字节的空余(8086队列为2个字节空余)时,BIU在执行单元不需要数据访问时将自动取指令到指令队列。2.3.1最小模式与最大模式两种工作模式,由引脚决定最小模式:系统中只有一个处理器;为高电平最大模式:系统中包括两个或多个处理器;为低电平。一、最小模式系统结构
微型计算机系统中只有8086/8088一个微处理器。系统中所有总线控制信号直接由CPU提供。8086工作在最小模式下,将引脚接+5V即可。2.38086的两种工作模式MN/MXMN/MXMN/MX最大模式,就是微型计算机系统中包含有两个或多个微处理器,其中一个是主处理器8086或8088,其它的是协处理器。要使8086CPU按最大模式工作,只需将引脚接地即可。二、最大模式系统组成8086在最大模式下的典型配置
8288引脚信号8288内部结构最小模式引脚信号一、与工作模式无关的引脚(1)AD0~AD15:
地址/数据复用引脚,双向工作,分时传送16位数据和地址的低16位,由ALE锁存地址信息。(2)A16~A19(S3~S6):
地址/状态复用引脚,输出,分时输出地址的高4位和CPU当前状态,地址信息由ALE锁存(3)BHE/S7:
高8位数据总线允许/状态复用引脚,输出,低电平有效,表示高8位数据线D15~D8上数据有效(4)RD:
读信号输出,低电平有效,表示CPU从存储器或I/O口读入信息2.3.28086CPU引脚功能(5)READY:“准备好”信号,输入,高电平有效,表示存储器或I/O口已准备就绪,可进行一次数据传输(6)TEST:
测试信号,输入,低电平有效,有效时CPU退出WAIT指令(7)INTR:
可屏蔽中断请求信号,输入,高电平有效,表示外部向CPU提出中断申请(8)NMI:
非屏蔽中断请求信号,输入,上升沿有效。表示外部有非屏蔽中断申请。非屏蔽中断不受软件控制,CPU必须响应(9)RESET:
复位信号,输入,高电平有效,至少保持4个时钟周期的高电平。复位时CPU停止现行操作,开始复位,并进行初始化:标志寄存器FLAG、IP、DS、SS、ES及指令队列均清零,CS为FFFFH,复位结束时CPU从FFFF0H开始执行程序(10)CLK:
时钟信号,它为CPU和总线控制电路提供基准时钟。(11)VCC,GND:
电源,接地,+5V电源(12)MN/MX:最小模式/最大模式选择信号,输入二、与模式有关的引脚(24~31)1、最小模式下的引脚功能INTA:
中断响应信号,输出,低电平有效,表示CPU响应外设中断请求。ALE:
地址锁存允许信号,输出,高电平有效,表示总线上的信息是地址信息。DEN:
数据允许信号,输出,低电平有效,表示
CPU当前准备发送或接收一个数据DT/R:
数据发送/接收信号,输出,高电平表示CPU正在发送数据,低电平表示CPU接收数据M/IO:
存储器/输入输出选择信号,输出,高电平表示CPU访问存储器,低电平表示CPU访问I/O端口。WR:
写信号,输出,低电平有效,表示CPU向存储器或I/O口输出数据。HOLD:
总线保持请求信号,输入,高电平有效,表示其他模块(如DMA)申请占用总线。HLDA:
总线保持响应信号,输出,高电平有效,表示
CPU已让出总线。最大模式引脚信号最大模式下8086有8个控制信号被重新定义,对应关系如下:
最小模式 最大模式HOLD RQ0/GT0HLDA RQ1/GT1WR LOCKM/IO S2DT/R S1DEN S0ALE QS0INTA QS1S2、S1、S0:总线周期状态信号输出,三个信号组合,由总线控制器8288译码后产生系统控制信号LOCK:总线封锁信号输出有效时禁止其他部件占用总线。RQ0/GT0,RQ1/GT1:总线请求/允许信号双向,低电平有效。有两个总线请求与总线响应信号,支持多处理器工作QS1,QS0:指令队列状态信号,输出两个信号组合指示指令队列状态2、最大模式引脚功能最大模式系统中的总线控制器8282就是利用这些状态信号产生访问存储器和I/O端口的控制信号。最大模式引脚信号
(1)S2,S1,S0:总线周期状态信号(输出、三态)。
(2)RQ/GT0
,RQ/GT1:总线请求信号/总线请求允许信号(输入/输出)。这两引脚是双向的低电平有效信号,是最大模式系统中8086/8088CPU和其它协处理器(如8087,8089)之间交换总线使用权的联络控制信号。请求和允许是出于同一个引脚。是两个同类型的信号,表示可同时连接两个协处理器,其中RQ/GT0的优先级高于RQ/GT1。最大模式引脚信号
(3)LOCK:总线封锁信号(输出、三态)
当此引脚低电平时,表明此时CPU不允许其它总线主模块占用总线。信号由指令前缀LOCK产生。当含有LOCK指令前缀的指令执行完后,引脚变为高电平,从而撤消了总线封锁。此外,在8086CPU处于2个中断响应周期期间,信号会自动变为有效的低电平,以防止其它总线主模块在中断响应过程中占有总线而使一个完整的中断响应过程被间断。最大模式引脚信号
(4)QS1,QS0:指令队列状态信号。用来指示CPU内的指令队列的当前状态,以使外部(主要是协处理器)对CPU内指令队列的动作进行跟踪。QS1,QS0的组合与指令队列的状态对应关系如表所示。QS1,QS0的组合和对应的含义QSlQS0队列操作00无操作01从队列中的第一个字节取走代码10队列空11除第一个字节外,还取走了后续字节代码最大模式引脚信号一、最小模式下的读周期时序
当8086CPU进行存储器或I/O端口读操作时,总线进入读周期,8086的读周期时序如图所示。2.4最小模式下的8086时序分析二、总线写操作总线写操作是指CPU把数据输出到存储器或I/O端口的操作,8086最小模式下的总线写操作时序如图所示。
总线写操作时序与总线读操作时序基本相似,不同点有:(1)CPU不是输出RD信号,而是输出WR信号,表示是写操作;(2)DT/R在整个总线周期为高电平,表示本总线周期为写周期,在接有数据总线收发器的系统中,用来控制数据传输方向。(3)AD15~AD0在T2到T4状态输出数据,因输出地址与输出数据为同一方向,勿需像读周期那样要高阻态作缓冲,故T2状态无高阻态。三、中断响应操作
当8086CPU的INTR引脚上有一有效电平,且标志寄存器中IF=1,则8086CPU在执行完当前的指令后,响应中断。在响应中断时CPU执行两个中断响应周期,如图所示。
四、总线保持与响应
当系统中有其它的总线主设备请求总线时,向CPU发出请求信号HOLD,CPU接收到HOLD且为有效的信息后,在当前总线周期的T4或空闲周期Ti的下降沿,输出保持响应信号HLDA,紧接着从下一个时钟开始,8086CPU就让出总线控制权。当外设的DMA传送结束时,使HOLD信号变低,则在下一个时钟的下降沿使HLDA信号变为无效(低电平)。
2.5最大模式时序分析
一、区别
最大方式下的总线时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 居间服务合同居间服务合同
- 三农公共服务体系搭建作业指导书
- 工作流程优化实施情况表
- 公建房屋租赁合同
- 人合作协议书合同
- 产品认证合同协议书
- 三农领域创业指导与支持方案集锦
- 房地产销售联合代理合同
- 2025年兰州货运上岗证考试
- 2025年珠海b2货运资格证模拟考试
- 家校共育之道
- DeepSeek入门宝典培训课件
- 西安2025年陕西西安音乐学院专职辅导员招聘2人笔试历年参考题库附带答案详解
- 《作文中间技巧》课件
- 广东省2025年中考物理仿真模拟卷(深圳)附答案
- 2025届八省联考 新高考适应性联考英语试题(原卷版)
- 新苏教版一年级下册数学第1单元第3课时《8、7加几》作业
- 2024年山东电力高等专科学校高职单招职业技能测验历年参考题库(频考版)含答案解析
- 《平面广告赏析》课件
- 人教鄂教版六年级下册科学全册知识点
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
评论
0/150
提交评论