第二章 80X86微处理器的结构

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

12第二章80X86微处理器的结构内容提要:1.8086微处理器基本结构2.8086微处理器寄存器结构3.8086微处理器引脚功能4.8086微处理器存储器和I/O组织5.8086最小/最大模式系统总线的形成6.8086CPU时序7.从80286到奔腾微处理器的结构学习目标:1.掌握8086/88微处理器CPU基本结构、寄存器结构及作用、CPU引脚功能、存储器分段与物理地址形成、最小/最大模式的概念和系统组建、系统总线形成;2.理解8086/88微处理器存储器读/写时序;3.了解80X86系列其他微处理器的结构等。重点:1.8086微处理器的组成及其寄存器结构;2.8086微处理器的存储器和I/O组织难点:8086微处理器的存储器和I/O组织学时:102.18086/8088微处理器的基本结构1.基本性能指标16位微处理器;采用高速运算性能的HMOS工艺制造,芯片上集成了2.9万只晶体管;使用单一的+5V电源,40条引脚双列直插式封装;时钟频率为5MHz~10MHz,基本指令执行时间为.3ns~0.6ns8086有16根数据线和20根地址线,可寻址的地址空间达1MB8086可以和浮点运算器、I/O处理器或其他处理器组成多处理器系统,从而极大地提高了系统的数据吞吐能力和数据处理能力。2.8086/8088微处理器的结构8086/8088CPU的内部是由两个独立的工作部件构成,分别是总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。图中虚线右半部分是BIU,左半部分是EU。两者并行操作,提高了CPU的运行效率。13(1)总线接口部件BIU8086/8088总线接口部件BIU由以下六个部分组成:20位地址加法器4个16位段地址寄存器:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES1个16位指令指针寄存器IP内部寄存器(用于通信、暂存)输入输出总线控制电路1个6字节指令队列缓冲器功能及工作过程:总线接口部件的功能是负责与存储器、I/O接口传送信息。主要工作过程如下:当指令队列中出现两个以上的指令字节空隙(8086是1个字节空隙)时,BIU会自动按CS和IP值所形成的20位实际物理地址对应的程序存储器单元中取指令字节一次从程序存储器中取两个指令字节,顺序存放在指令队列寄存器中由EU从队列指令中取走位于前列的指令,若指令需要在内存单元中读取数据,此时根据EU的请求在BIU中形成一个20位的存放数据的实际物理地址CPU从物理地址单元中取得操作数,经BIU送到内部的运算部件(ALU)数据总线,再由EU执行响应操作根据指令的性质,若需要,再由EU提出请求,将运算结果写入由BIU所指出的内存单元或者I/O端口中(2)执行部件EU8086和8088的执行部件EU的具体结构都是相同的,包含以下六个部分:4个16位的通用寄存器组(AX、BX、CX、DX)4个16位的专用寄存器(BP、SP、SI、DI)1个16位的算术逻辑单元(ALU)1个16位的状态标志寄存器1个数据暂存寄存器执行部件的控制电路功能及工作过程:EU从BIU的指令队列中取出指令代码由EU控制电路的译码器对指令进行译码后执行指令所规定的全部功能执行指令所得结果或执行指令所需的数据,都由EU向BIU发出命令,对存储器或I/O接口进行读/写操作反映本次操作结果的状态写入到响应的状态寄存器(3)EU和BIU的关系从上面的操作过程可以看出EU只负责执行指令,BIU则负责取指令,读出操作数和写入结果。对于一般简单的处理器指令周期中,各种操作是顺序进行的。首先取指并译码,如果译码的结果需要从存储器取操作数,则启动一个总线周期去读操作数;其次执行指令;最后存储操作的结果。如下左图所示。在8086/8088中,BIU和EU这两个部件既有独立工作的一面,又有互相配合的一面。大多数情况下,取指和执行指令在时间上是重叠进行的,如上图的右半部分所示。2.2.8086CPU的(基本)寄存器的结构148086CPU中可供编程使用的有14个16位寄存器,用于对指令及操作数的寻址、控制指令的执行和提供操作数。按功能可以分为:通用寄存器组、控制寄存器组和段寄存器组。累加器AHALBHBLCLDHDLCHSPSIDIIPFLAGSCSDSSSESBP基址寄存器计数寄存器数据寄存器堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器指令指针寄存器标志寄存器代码段寄存器段寄存器附加段寄存器堆栈段寄存器数据寄存器地址指针和变址寄存器控制寄存器通用寄存器数据段寄存器8086CPU内部寄存器结构注:在80386以上的微处理器中新增加了两个附加的段存储区FS、GS用来定义附加的存储区的起始地址。1.通用寄存器通用寄存器包括四个数据寄存器,两个地址指针寄存器和两个变址寄存器。(1).数据寄存器AX、BX、CX、DX数据寄存器一般用于存放参与运算的操作数或运算结果。每个数据寄存器都是16位的,但又可将高、低8位分别作为两个独立的8位寄存器来用。高8位分别记作AH、BH、CH、DH,低8位分别记作AL,BL,CL,DL。例如AX可当作两个8位寄存器AH、AL使用。注意:8086/8088CPU的14个寄存器除了这4个16位寄存器能分别当作两个8位寄存器来用之外,其它寄存器都不能如此使用。AX(Accumulator)称为累加器。用该寄存器存放运算结果可使指令简化,提高指令的执行速度。此外,所有的I/O指令都使用该寄存器与外设端口交换信息。BX(Base)称为基址寄存器。8086/8088CPU中有两个基址寄存器BX和BP。BX用来存放操作数在内存中数据段内的偏移地址,BP用来存放操作数在堆栈段内的偏移地址。CX(Counter)称为计数器。在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。DX(Data)称为数据寄存器。在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。(2).地址指针寄存器SP、BPSP(StackPointer)称为堆栈指针寄存器。在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。BP(BasePointer)称为基址寄存器。作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。(3).变址寄存器SI、DISI(SourceIndex)称为源变址寄存器。DI(DestinationIndex)称为目的变址寄存器。这两个寄存器通常用在字符串操作时存放操作数的偏移地址,其中SI存放源串在数据段内的偏移地址,DI存放目的串在附加数据段内的偏移地址。上述寄存器各自都有自己的特定用途:寄存器操作寄存器操作AX字乘,字除,字I/OCL变量移位,循环移位AL字节乘,字节除,字节I/O,查表转换,十进制运算DX字乘,字除,间接I/OAH字节乘,字节除SP堆栈操作BX查表转换SI数据串操作指令CX数据串操作指令,循环指令DI数据串操作指令寄存器操作寄存器操作AX字乘,字除,字I/OCL变量移位,循环移位AL字节乘,字节除,字节I/O,查表转换,十进制运算DX字乘,字除,间接I/OAH字节乘,字节除SP堆栈操作BX查表转换SI数据串操作指令CX数据串操作指令,循环指令DI数据串操作指令寄存器寄存器操作操作寄存器寄存器操作操作AXAX字乘,字除,字I/O字乘,字除,字I/OCLCL变量移位,循环移位变量移位,循环移位ALAL字节乘,字节除,字节I/O,查表转换,十进制运算字节乘,字节除,字节I/O,查表转换,十进制运算DXDX字乘,字除,间接I/O字乘,字除,间接I/OAHAH字节乘,字节除字节乘,字节除SPSP堆栈操作堆栈操作BXBX查表转换查表转换SISI数据串操作指令数据串操作指令CXCX数据串操作指令,循环指令数据串操作指令,循环指令DIDI数据串操作指令数据串操作指令在80386以上的微处理器EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI是32位的寄存器。152.专用寄存器(控制寄存器)(1).指令指针寄存器IP(InstructionPointer):在8086/8088是一个16位的寄存器,存放EU要执行的下一条指令的偏移地址,用以控制程序中指令的执行顺序,实现对代码段指令的跟踪。用户程序不能直接访问IP。80386以上的微处理器EIP是32位的寄存器。(2).标志寄存器FLAGS:在8086/8088中是一个16位的寄存器,共9个标志,其中6个用作状态标志,3个用作控制标志。状态标志:用来反映EU执行算术和逻辑运算以后的结果特征。CF:进位标志;PF:奇偶标志;AF:辅助进位标志ZF:零标志;SF:符号标志;OF:溢出标志控制标志:控制标志是用来控制CPU的工作方式或工作状态。TF:陷阱标志或单步操作标志;IF:中断允许标志;DF:方向标志注:80286以上的微处理器EFLAGS增加了一些其他的标志位(见教材P22-23,学生自己看作了解)。3.段寄存器为了对1M个存储单元进行管理,8086/8088对存储器进行分段管理,即将程序代码或数据分别放在代码段、数据段、堆栈段或附加数据段中,每个段最多可达64K个存储单元。段地址分别放在对应的段寄存器中,代码或数据在段内的偏移地址由有关寄存器或立即数给出。8086CPU共有4个16位的段寄存器,用来存放每一个逻辑段的段起始地址。(1).CS(CodeSegment)称为代码段寄存器,用来存储程序当前使用的代码段的段地址。CS的内容左移四位再加上指令指针寄存器IP的内容就是下一条要读取的指令在存储器中的物理地址。(2).DS(DataSegment)称为数据段寄存器,用来存放程序当前使用的数据段的段地址。DS的内容左移四位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行读写的物理地址。(3).SS(StackSegment)称为堆栈段寄存器,用来存放程序当前所使用的堆栈段的段地址。堆栈是存储器中开辟的按先进后出原则组织的一个特殊存储区,主要用于调用子程序或执行中断服务程序时保护断点和现场。(4).ES(ExtraSegment)称为附加数据段寄存器,用来存放程序当前使用的附加数据段的段地址。附加数据段用来存放字符串操作时的目的字符串。注:80X86系列中其它处理器中的系统级寄存器、调试和测试寄存器、浮点寄存器有兴趣的学生自学了解。2.3.8086CPU的外部引脚特性GNDINTRNMICLKGND19INTA(QS1)TESTREADYRESET23914033843753663573483393210311130122913281427152616251724182319222021AD14AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0RDMN/MXHOLD(RQ/GT0)BHE/S6AA17/S4A18/S5/SA16/S3AD15)VCC(+5VM/IO(S2)WR(LOCK)HLDA(RQ/GT1)DT/R(S1)DEN(S0)ALE(QS0)AD1213AD8086CPU引脚图8086CPU引脚如上图(教材P38图2-16),按功能可分为三大类:电源线和地线,地址/数据引脚以及控制引脚。1.电源线和地线电源线VCC(第40引脚):输入,接入±10%单一+5V电源。地线GND(引脚1和20):输入,两条地线均应接地。162.地址/数据总线引脚地址/数据分时复用引脚AD15~AD0(AddressData):引脚39及引脚2~16,传送地址时单向输出,三态;传送数据时双向输入或输出,三态。采用分时复用,即在T1状态作地址线用,T2~T4状态作数据线用。地址/状态分时复用引脚A19/S6~A16/S3(Address/Status):引

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功