第2章80868088微处理器及其体系



《第2章80868088微处理器及其体系》由会员分享,可在线阅读,更多相关《第2章80868088微处理器及其体系(113页珍藏版)》请在文档大全上搜索。
1、微机原理及应用第2章 8086 8088微处理器及其体系结构F本章先介绍IBM PC/XT的Intel 8086/8088 CPU的编程结构再介绍Intel 8086/8088的信号引脚功能和体系结构最后介绍CPU的几种工作状态和典型的总线操作时序。2-1微机原理及应用2.1 8086/8088 的编程结构F2.1.1 8086/8088 的内部结构8086、8088的内部结构基本相同,均由两个独立的工作部件组成,一个称为执行部件EU(Execution Unit),一个称为总路线接口部件BIU(Bus Interface Unit)。8086和8088的执行部件完全相同,但总路线接口部件有些
2、差别。8086的外部数据总路线为16位,指令队列6字节;而8088的外部数据总路线为8位,指令队列4个字节。2-2 8086CPU的内部结构框图2-3微机原理及应用执行部分执行部分控制电路控制电路ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用通用寄存器寄存器16位位1 2 3 4 内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路外部总线外部总线地址地址加法加法器器指令队列指令队列总线接口部件总线接口部件 (BIU)20位位8位位8位位执行部件执行部件 (EU)8088CPU的内部结构框图2-4微机原理及应
3、用F1、执行部件EU包括:ALU、暂存寄存器、标志寄存器、通用寄存器组和EU控制器。任务:执行指令,与外界的联系通过总路线接口部件。具体是:具体是:从BIU的指令队列中取指令对指令译码根据指令要求向EU内部各部件发出控制命令以完成各条指令的功能。2-5微机原理及应用F2、总路线接口部件BIU包括:4个段寄存器、指令指针IP寄存器、指令队列缓冲器、完成与EU通信的内部寄存器、20位的地址加法器以及总路线控制电路等。任务:根据EU请求完成CPU与存储器、CPU与I/O设备之间的信息传送。具体的:从存储器指定地址取指令送入指令队列排队;执行指令时,根据EU命令对指定存储单元或I/O端口存取数据。2-
4、6微机原理及应用CPU内部工作过程FEU部件从BIU部件的指令队列前部取出指令的代码和数据对指令代码进行译码并执行指令规定的操作。在执行指令的过程中:如果必须访问存储器或者I/O设备,那么,执行部件就会请求总路线接口部件,进入总路线周期,完成要求的操作。2-7微机原理及应用FEU完成两类操作:一是:算术和逻辑运算一是:按指令的寻址方式计算16位的偏移地址并将它送到BIU中形成20位的实际地址。FEU的指令来源:EU执行完一条指令后就再到BIU指令队列前部取出BIU预先读入的指令代码,若此时指令队列是空的,EU就处于等待状态。一旦指令队列中有一条指令,EU立即取出执行。2-8微机原理及应用FBI
5、U的指令队列中指令的来源:当BIU的指令队列中出现两个空字节(对于8088是一个),且EU没有命令BIU对存储器或I/O访问,则BIU将自动执行总路线操作,读出指令并填入指令队列中,直到满为止。当EU执行完转移,调用和返回指令时,BIU将清除原队列中的内容并从新的地址重新开始取指令,新取的第一条指令将直接送到EU去执行,随后取来的指令填入指令队列。当BIU中指令队列满,且EU未访问存储器或I/O端口,BIU进入空闲状态。2-9微机原理及应用F8086/8088的EU和BIU是分开的,它们可以按并行方式重叠操作,即EU取指令、执行指令和BIU补充指令队列的工作是同时进行的。这提高了CPU的利用率
6、,也降低了CPU对存储器速度的要求。2-10微机原理及应用2-11微机原理及应用2.1.28086/8088寄存器结构F8086/8088内部有14个16位寄存器(标志寄存器只用了9位)。这些寄存器都可供编程使用。SPBPSIDIIPFLAGSCSDSSSESAHALBHBLCHCLDHDL15 8 7 0AXBXCXDX累加器基址寄存器计数寄存器数据寄存器堆栈指针基址指针源变址寄存器目的变址寄存器指令指针标志寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器数据寄存器地址指针和变址寄存器通用寄存器组控制寄存器组段寄存器组8086CPU寄存器结构2-12微机原理及应用1、通用寄存器F(1)
7、数据寄存器包括AX、BX、CX、DX.通常用来存放16位的数据和地址。每一个又可分为高字节H和低字节L,用来存放8位数据,它们均可独立寻址,独立使用。F(2)指针寄存器和变址寄存器包括SP、BP、SI和DI。都是16位寄存器,可以存放数据,但通常用来存放逻辑地址的偏移量,是形成20位物理地的其中一部分,在任何情况下,它们都不能独立地形成访问内存的地址码。2-13微机原理及应用FSP(Stack Pointer)堆栈指针用于存放操作(压入或弹出)时,存储单元地址的段内偏移地址。其段基址由段寄存器SS提供。FBP(Base Pointer)基址指针存放仅次于堆栈段中的一个数据区基址的偏移地址。与S
8、P的区别在于SP是存放堆栈栈顶的偏移量。凡是含有BP的寻址方式中,都是堆栈区的存储单元寻址的,因此其段地址由段寄存器SS提供。2-14微机原理及应用FSI(Source Index)和DI(Destination Index)称为变址寄存器用来存放当前数据段的偏移地址源操作数的偏移量存放于SI中,所以又称SI为源变址寄存器目的操作数的偏移量存放于DI中,所以又称DI为目的变址寄存器。2-15微机原理及应用2、段寄存器组F8086/8088CPU可寻址1MB存储空间,但指令中给出的地址码仅有16位,指针寄存器也只有16位长,不不不能直接寻址能直接寻址能直接寻址1 1 1MBMBMB空间空间空间。
9、F8086/8088采用段地址、段内偏移地址两级存储器寻址方式,段地址和段内偏移地址均为16位。F采用段地址寻址优点:解决了16位寄存器访问大于64K内存空间的问题;可以实现程序重定位,即一个小于64KB的程序可通过改变段寄存器的内容放到1MB空间中任意段位置,从而为同时运行多道程序提供了方便。2-16微机原理及应用4个段寄存器F代码段寄存器CS(Code Segment )存放当前执行程序所在段的段基址;F数据段寄存器DS(Data Segment)存放当前使用的数据段的段基址,通常数据段用来存放数据和变量;2-17微机原理及应用F堆栈段寄存器SS(Stack Segment)存放当前堆栈段
10、的段基址;堆栈段是内存中一个特别的存储区,主要用于在调用子程序或中断时,保留返回主程序地地址和保存进入子程序将要改变其值的寄存器的内容。F附加段寄存器ES(Extra Segment)存放附加数据段的段基址;附加段是在进行字符操作时作为目的地址使用的。FDS和ES的初值都要由用户用程序设置,若二者相同,则数据段和附加段重合2-18微机原理及应用3、控制寄存器组F(1)指令指针IP(Instruction Pointer)存放下一次要取出指令的偏移地址。通常由BIU自动修改,某些指令如转移指令,过程调用指令和返回指令等将改变其内容。F(2)标志寄存器(Flags),又名PSW(Program S
11、tatus Word)程序状态字寄存器16位只用了9位。其中,6位用来反应前一次涉及ALU操作结果的状态标志,其余3个是控制CPU操作特征标志2-19微机原理及应用标志寄存器(Flags)D15D0 OF DF IF TF SF ZF AF PF CF符符号号标标志志单单步步中中断断中中断断允允许许方方向向标标志志溢溢出出标标志志进进借借位位标标志志1-有进、借位有进、借位0-无进、借位无进、借位半半进进借借位位标标志志1-低低4位向高位向高4位有进、借位位有进、借位0-低低4位向高位向高4位无进、借位位无进、借位奇奇偶偶标标志志1-低低8位有偶数个位有偶数个10-低低8位有奇数个位有奇数个1