2020年1月19日星期日微机原理与接口技术21:452内容提要8086CPU内部结构8086CPU引脚及功能8086CPU存储器组织8086CPU系统配置8086CPU时序第二章8086系统结构21:453本章主要学习微处理器部分的原理存储器输入/输出接口运算器控制器寄存器组微处理器外围设备显示器键盘鼠标硬盘软驱光驱扫描仪微型计算机系统软件应用软件微型计算机系统CPU是微型计算机的核心,学习微机原理的重点就是掌握CPU的工作原理21:4541.由于制造工艺的原因,集成电路密度和引脚有所限制,所以16位微处理器具有如下特点:①引脚功能复用提高引脚利用率。如:数据双向传输可由“读/写”信号来控制,决定数据处于输入还是输出状态。②单总线、累加器结构由于芯片面积限制,使微处理器内部寄存器的数目,数据通路位数受到限制。因此绝大多数微处理器内部采用单总线、累加器为基础的结构。③可控三态电路采用可控三态电路与总线相连,当微处理器外部总线同时连接多个部件,可避免总线冲突和信号串扰,不工作器件所连的三态电路处于高阻状态。④总线分时复用地址总线和数据总线使用了相同的引脚,节省了引脚,但操作时间增加了。第二章8086系统结构——概述21:4552.InteL8086CPU的特征:16位微处理器,外型为双列直插式,有40个引脚。8086型微处理器,时钟频率为5MHz。8086CPU有16根数据线和20根地址线,直接寻址空间为220,即为1M字节。8088CPU内部结构与8086基本相同(但对外数据总线只有8条,称为准16位微处理器)。第二章8086系统结构——概述21:456§2-18086CPU结构§2-18086CPU结构——8086CPU内部结构微型计算机的工作过程:取指令、取操作数、执行,送结果。通常8位机是串行执行的,即执行的顺序为取第一条指令,执行第一条指令;取第二条指令,执行第二条指令;……直至取最后一条指令,执行最后一条指令。这样,在每一条指令执行完以后,CPU必须等待到下一条指令取出来以后才能执行。所以,它的工作顺序如图所示。21:45:2678086CPU从功能上来说分成两大部分:总线接口单元BIU(BusInterfaceUnit)和执行单元EU(ExecutionUnit)。BIU负责8086CPU与存储器之间的信息传送。具体地说,即BIU负责从内存的指定单元取出指令,送至指令流队列中排队(8086的指令流队列是6个字节);在执行指令时所需的操作数,也由BIU从内存的指定区域取出,传送给EU部分去执行。EU部分负责指令的执行。这样,取指部分与执行指令部分是分开的,于是在一条指令的执行过程中,就可以取出下一条(或多条)指令,在指令流队列中排队。在一条指令执行完以后就可以立即执行下一条指令,减少了CPU为取指令而等待的时间,提高了CPU的利用率,提高了整个运行速度。21:45:268它的执行顺序如图所示。21:45:269AHALBHBLCHCLDHDLSIDISPBPAXBXCXDX运算暂存器ALU标志寄存器执行单元(EU)16位内部总线EU控制电路123456指令队列缓冲器内部暂存器ESSSDSCSIP∑16位总线20位地址总线总线控制逻辑电路8位8086总线总线接口单元(BIU)通用寄存器组2.1.18086CPU的内部结构8086CPU内部结构框图:总线接口单元BIU+指令执行单元EU21:45101.总线接口部件BIU(BusInterfaceUnit)⑴概念物理地址形成、取指令、指令排队、读/写操作数、总线控制。(3)组成16位段地址寄存器16位指令指针寄存器20位物理地址加法器6字节指令队列总线控制逻辑(4)总线接口部件的工作过程由CS和IP形成物理地址,发读信号(/RD),取指令送入指令队列。§2-18086CPU结构——8086CPU内部结构(2)功能是CPU与外部的接口,提供芯片外部数据总线和地址总线。21:45112.指令执行部件BU(ExecutionUnit)⑴功能完成指令译码、执行指令的工作。⑵组成算术逻辑运算单元ALU标志寄存器PSW寄存器组(4个16位通用寄存器和4个专用16位寄存器)EU控制器⑶指令执行部件工作过程从BIU的指令队列取得指令、进行译码、执行指令。§2-18086CPU结构——8086CPU内部结构21:4512寄存器的作用:存放运算过程中所需要的操作数地址、操作数及中间结果。寄存器的特点:CPU芯片内部的寄存器的存取速度比存储器快得多。寄存器的分类:通用寄存器组指针和变址寄存器段寄存器指令指针及标志位寄存器CSDSSSESAXBXCXDXSPBPSIDIAHBHCHDHALBLCLDL累加器基址寄存器计数寄存器数据寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器IPPSW指令指针寄存器标志寄存器指令指针和标志寄存器指针和变址寄存器段寄存器通用寄存器15870150150150§2-18086CPU结构——寄存器结构2.1.2寄存器结构21:4513目的变址寄存器DestinationIndexSIDIBPSPAX累加器AccumulatorBX基址寄存器BaseCX计数寄存器CountDX数据寄存器DataAHBHCHDHALBLCLDLIPPSWDSESSSCS数据段寄存器DataSegment附加段寄存器ExtraSegment堆栈段寄存器StackSegment代码段寄存器CodeSegment状态标志寄存器ProcessorStatusWord指令指针寄存器InstructionPointer变址寄存器段寄存器控制寄存器广义通用寄存器源变址寄存器SourceIndex基址指针寄存器BasePoint堆栈指针寄存器StackPoint指针寄存器通用寄存器组§2-18086CPU结构——寄存器结构寄存器的英文含义:21:4514AXBXCXDXAHBHCHDHALBLCLDL通用寄存器15870累加器基址寄存器计数寄存器数据寄存器1.通用数据寄存器组§2-18086CPU结构——寄存器结构有4个l6位通用寄存器:AX、BX、CX、DX,即累加器、基址寄存器、计数寄存器、数据寄存器。用以存放16位数据。也可分为8个8位寄存器:低8位是AL、BL、CL、DL;高8位为AH、BH、CH、DH,只能存放8位数据。为了缩短指令代码的长度,某些通用寄存器用作专门用途。例如,串指令中必须用CX寄存器作为计数寄存器,存放串的长度,这种寻址方式也称为“隐含寻址”。如表2-1所示。21:45:2615§2-18086CPU结构——寄存器结构21:45162.指针和变址寄存器SPBPSIDI堆栈指针寄存器基址指针寄存器源编址寄存器目的编址寄存器指针和变址寄存器150§2-18086CPU结构——寄存器结构4个16位寄存器:用于堆栈操作和变址运算,存放段内地址偏移量。▲BP、SP称为指针寄存器,与SS联用。例1:MOVAX,[BP];寄存器间接寻址,物理地址=16×SS+BP例2:PUSH/POPAX;在堆栈段内(SS),SPSP-2,指向站顶▲SI、DI称为变址寄存器,通常与DS联用。例3:MOVAX,[SI](或[DI]);物理地址=16×DS+SI(或DI)▲在串指令中,SI、DI均为隐含寻址,SI与DS联用,DI与ES联用。例4:MOVS目的串(DI/ES),源串(SI/DS)21:4517CSDSSSES代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器段寄存器1503.段寄存器§2-18086CPU结构——寄存器结构▲为什么要分段?地址20位,寄存器都是16位,只能直接寻址64KB。▲4个16位段寄存器:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES。▲作用:给出相应逻辑段的首地址的高16位(地址低4位为0),即“段基址”。CS:存放可执行的指令代码;DS:存放操作的数据;ES:存放操作的数据;SS:开辟为程序执行中所要用的堆栈区;▲物理地址的形成:16×段基址+段内偏移地址[例2.1]已知:代码段寄存器CS存放当前代码段基地址,且CS=2000H,指令指针寄存器IP存放了下一条要执行指令的段内偏移地址,且IP=1000H。求该指令存放的物理地址。解:指令存放的物理地址=16×CS+IP=21000H21:4518IP指令指针寄存器1504.指令指针寄存器IP§2-18086CPU结构——寄存器结构▲16位寄存器:存放将要执行的下一条指令在现行代码段中的偏移地址。注意:8086程序不能直接访问IP,但可以由某些指令修改。例如,中断指令、调用指令、跳转指令。21:4519PSW标志寄存器1505.标志寄存器PSW(不能直接访问该寄存器,但有专门的标志操作指令)1511109876543210OFDFIFTFSFZFAFPFCF16位标志寄存器存放运算结果的特征,这些特征(标志位)常用作后续的条件转移指令的转移控制条件,分成两类:状态标志(6个):CF、PF、AF、ZF、SF、OF,表示运算后结果的状态特征,影响后面的操作。控制标志(3个):TF、IF、DF,控制CPU操作。§2-18086CPU结构——寄存器结构21:45201511109876543210OFDFIFTFSFZFAFPFCF①CF(CarryFlag):进位标志位最高位有进位或借位时,CF=1。②PF(ParityFlag):奇偶校验标志位本次运算结果低8位中有偶数个“1”时,PF=1;有奇数个“1”时,PF=0。③AF(AuxiliaryFlag):辅助进位标志位低4位向高4位进化或借位时,AF=1。AF一般用在BCD码运算中。④ZF(ZeroFlag):全零标志位本次运算结果为0时,ZF=1;否则ZF=0。⑤SF(SignFlag):符号标志位本次运算结果的最高位为1时,SF=1,结果为负;否则SF=0,结果为正。§2-18086CPU结构——寄存器结构⑥OF(OverflowFlag):溢出标志位(=最高位进位XOR次高位进位)本次运算过程中产生溢出时,OF=1。对带符号数,字节运算的范围为-128~+127,字运算结果的范围为-32768~+32767,超过此范围为溢出。21:4521§2-18086CPU结构——寄存器结构例2.2将5394H与-777FH两数相加,运算结果为:一23EBH。解:结果的标志位为:CF=0、PF=1、AF=0、ZF=0、SF=1、OF=0。⑦TF(TrapFlag):单步标志位设置单步工作方式。TF=1时,每执行一条指令,就自动产生一次内部中断,使用户能逐条跟踪程序进行调试。⑧IF(InterruptFlag):中断标志位IF=1时,允许CPU响应可屏蔽中断;IP=0时,CPU不响应外设有中断申请。⑨DF(DirectionFlag):方向标志位控制串操作指令中地址指针变化方向。DF=0,地址指针自动增量;DF=1,地址指针自动减量。STD指令使DF置“1”,CLD指令使DF置“0”。21:4522§2-28086CPU的引脚及其功能1.8086CPU基本性能:16条数据线、20条地址线(低16位和数据线复用)、控制线、电源和地线。封装:双列直插式40引脚,部分引脚采用了分时复用。2.8086CPU的工作模式:最小模式(单机系统):系统中所需要的控制信号全部由8086直接提供;最大模式(多处理机系统):系统中所需要的控制信号由总线控制器8288提供。24~31脚在两种工作模式中具有不同的功能。§2-28086CPU的引脚及其功能——概述21:4523本节主要内容:8086CPU在最小模式中的引脚定义8086CPU在最大模式中的引脚定义(不要求)8088和8086CPU的不同之处(不要求)§2-28086CPU的引脚及其功能——概述21:45248086CPU403938373635343332313029282726252423