《微机原理课件 第二章 8086系统结构》由会员分享,可在线阅读,更多相关《微机原理课件 第二章 8086系统结构(52页珍藏版)》请在金锄头文库上搜索。
1、第二章 8086系统结构,由于制造工艺的原因,微处理器的结构受到几个方 面的限制: 1. 引脚数限制 2. 芯片面积限制 3. 器件速率限制由于上述限制,使16位微处理器基本结构具有如下 特点:,2. 单总线、累加器结构 3. 可控三态电路 4. 总线分时复用,1. 引脚功能复用,Intel 8086 CPU是16位微处理器,外型为双列直 插式,有40个引脚。8086型微处理器的时钟频率为5 MHz;它有16根数据线和20根地址线,直接寻址空间 为220Byte,即为1MB。,8088 CPU内部结构与8086基本相同,但对外数 据总线只有8根,称为准16位微处理器。,2-1 8086 CPU
2、结构,微型计算机工作时,总是先存储器中取指令,需要的话再取操作数,然后执行指令,送结果。8086CPU由总线接口部件BIU和指令执行部件EU组成,BIU和EU是并行工作的。总线接口部件BIU完成取指令,读操作数、送结果,所有与外部的操作由其完成。而指令执行部件EU从BIU的指令队列中取出指令,并且读出指令,不必直接访问存储器或I/O端口。,一、8086 CPU的内部结构,1. 总线接口部件BIU(Bus Interface Unit)总线接口部件BIU是8086 CPU与外部(存储器 和I/O端口)的接口,它提供了16位双向数据总线和 20位地址总线,完成所有外部总线操作。BIU具有下列功能:
3、地址形成、取指令、指令 排队、读/写操作数和总线控制。它由下列各部分组 成:,(1)4个16位段地址寄存器,(2)16位指令指针寄存器IP:存放下一条要执行指令的偏移地址。,(3)20位物理地址加法器:将16位逻辑地址变换成20位物理地址,实际上完成加法操作。,(4)6字节指令队列:预放6个字节的指令代码。,(5)总线控制逻辑:发出总线控制信号。,2. 指令执行部件EU(Execution Unit)指令执行部件EU完成指令译码和执行指令。它由下列各部分组成:,(1)算术逻辑运算单元ALU:完成8位或16位的二进制运算,16位暂存器可暂存参加运算的操作数。,(2)标志寄存器PSW:存放ALU运
4、算结果特征。,(3)寄存器组 。,(4)EU控制器:取指令控制和时序控制部件。,3. 8086 CPU的工作过程,二、寄存器结构,寄存器结构在计算机中起了重要的作用,它的 存取速度比存储器快得多,这样可以相当于存储单 元,用来存放运算过程中所需要的操作数地址、操 作数及中间结果。8086微处理器内部包含有4组16位 寄存器,它们分别是通用寄存器组,指针和变址寄 存器,段寄存器,指令指针及标志位寄存器。,1. 通用寄存器组(特殊用途见书表2-1)8086/8088 CPU在指令执行部件EU中有4个16 位通用寄存器,它们是AX,BX,CX,和DX,用 以存放16位数据或地址。也可分为8个8位寄存
5、器来 使用,低8位是AL、BL、CL和DL,高8位为AH、 BH、CH和DH,只能存放8位数据,不能存放地址。,2. 指针和变址寄存器8086/8088 CPU中,有一组4个16位寄存器,它们 是基址指针寄存器BP,堆栈指针寄存器SP,源变址寄 存器SI,目的变址寄存器DI。这组寄存器存放的内容 是某一段内地址偏移量,用来形成操作数地址,主要 在堆栈操作和变址运算中使用。,3. 段寄存器,8086/8088 CPU可直接寻址1MB的存储器空间, 直接寻址需要20根地址线,而所有的内部寄存器都是 16位的,只能直接寻址64KB,因此采用分段技术来解 决。将1MB的存储器空间分成若干个逻辑段,每段
6、最 长64KB,这些逻辑段在整个存储空间中可浮动。4个 段寄存器给出相应逻辑段的首地址,称为“段基址”。,例2-1 若当前SS=3500H,SP=4000H,说明堆栈段在 存储器中的20位物理地址。,解:物理地址SS*16+SP=39000H,4. 指令指针寄存器IP8086/8088 CPU中设置了一个16位指令指针寄存 器IP,用来存放将要执行的下一条指令现行代码段中 的偏移地址。程序运行中,它由BIU自动将其修改, 使IP始终指向下一条将要执行的指令的地址,因此它 是用来控制指令序列的执行流程的,是一个重要的寄 存器。8086程序不能直接访问IP,但可以通过某些指 令修改IP的内容。,5
7、. 标志寄存器PSW16位标志寄存器PSW用来存放运算结果的特征, 常用作后续条件转移指令的转移控制条件。其中7位没 有用,9个标志位分成两类:一类是状态标志,表示运 算后结果的状态特征,它影响后面的操作。状态标志 有6个:CF、PF、AF、ZF、SF和OF。另一类是控制 标志,用来控制CPU操作,控制标志有3个:TF、IF 和DF。,2-2 8086 CPU的引脚及其功能,8086/8088 CPU根据它的基本性能,应包括20条 地址线,16根数据线,加上控制信号,电源和地线, 芯片的引脚比较多。但由于制造工艺的限制,8086/ 8088 CPU芯片采用40条引脚的双列直插式封装,因 此部分
8、引脚采用了分时复用的方式。另外8086/8088 CPU可以工作在两种工作模式:最小模式和最大模式。最小模式用于单机系统,系统中所需要的控制信号全部由8086直接提供。最大模式用于多处理机系统,系统中所需要的控制信号由总线控制器8288提供。这样,24脚31脚的8条引脚在两种工作模式中具有不同的功能。,一、8086/8088 CPU在最小模式中引脚定义,2-3 8086 存储器组织,一、存储器地址的分段1. 存储器地址的分段在存储器中是以字节为单位存储信息的,每个存 储单元有唯一的地址来确定。8086/8088系统有20根地 址线可寻址1MB字节的存储空间,即对存储器寻址要 20位物理地址,而
9、8086为16位机,CPU内部寄存器只 有16位,可寻址64KB。因此8086系统把整个存储空间 分成许多逻辑段,每段容量不超过64KB。8086系统对 存储器的分段采用灵活的方法,允许各个逻辑段在整 个存储空间中浮动,这样在程序设计时可使程序保持 相对的完整性。段和段之间可以是连续的,也可以是 分开的或重叠的。,2. 物理地址的形成8086系统将段地址放在段寄存器中,称为“段基 址”。有4个段寄存器,分别位代码段寄存器CS,数据 段寄存器DS,附加段寄存器ES和堆栈段寄存器SS。段内“偏移地址”指出了从段地址开始的相对偏移 位置。它可以放在指令指针寄存器IP中,或16位通用 寄存器中,如何从
10、16位段地址和16位偏移地址得到20 位地址呢?首先说明两个概念。逻辑地址:存储器的任一个逻辑地址由段基址和 偏移地址组成,都是无符号的16位二进制数,程序设 计时采用逻辑地址。物理地址:存储器的绝对地址,从00000H FFFFFH,是CPU访问存储器的实际寻址地址。物理 地址段基址16偏移地址。,3. 逻辑地址来源由于访问存储器的操作类型不同,BIU所使用的 逻辑地址来源也不同,取指令时,自动选择CS寄存器 值作段基址,偏移地址由IP来制定,计算出取指令的 物理地址。当堆栈操作时,段基址自动选择SS寄存器 值,偏移地址由SP来制定。当进行读/写存储器操作数 或访问变量时,则自动选择DS或E
11、S寄存器值作为段基 址,此时,偏移地址要由指令所给定的寻址方式来决 定,可以是指令中包含的直接地址,可以是地址寄存 器中的值,也可以是地址寄存器的值加上指令中的偏 移量。注意的是当用BP作为基地址寻址时,段基址由 堆栈寄存器SS提供,偏移地址从BP中取得。,二、8086存储器的分体结构,8086系统中,1MB的存储空间分成两个存储体: 偶地址存储体和奇地址存储体,各为512KB,示意图 如图2-10所示:,当A0=0时,选择访问偶地址存储体,偶地址存储体与 数据总线低8位相连,从低8位数据总线读/写一个字节。 当 0时,选择访问奇地址存储体,奇地址存储体 与数据总线高8位相连,由高8位数据总线
12、读/写一个字 节。当A0=0、 0时,访问两个存储体,读/写一 个字。A0和功能组合如表28。,存储器中存放的信息称为存储单元的内容,例如 存储单元10002H中的内容为22H,表示(10002H)= 22H。一个字在存储器中按相邻两个字节存放,存入 时以低位字节在低地址,高位字节在高地址的次序存 放,字单元的地址以低位地址表示。例(10002H)= 3322H,(10001H)2211H在内存中放的位置如下 图所示。,从中看出,一个字可以从偶地址开始存放,也可 以从奇地址开始存放,但8086 CPU访问存储器时,都 是以字为单位进行的,并从偶地址开始。若读/写一个 字节,只启动某个存储体,只
13、有相应的8位数据在数据 总线上有效,即启动偶地址存储体,低8位数据线有效, 或启动奇地址存储体,高8位数据线有效,另外8位数 据被忽略了,图211(a)、(b)给出了示意图。,CPU读/写一个字时,若字单元地址从偶地址 开始,只需访问一次存储器,低位字节在偶地址单 元,高位字节在奇地址单元。若字单元地址从奇地 址开始,CPU要两次访问存储器,第一次取奇地址 上数据(偶地址8位数据被忽略),第二次取偶地址 上数据(奇地址8位数据被忽略),图211(c)、 (d)给出了示意图。因此为了加快程序运行速度, 编程时注意从存储器偶地址开始存放字数据,这种 存放方式也称“对准存放”。,三、堆栈的概念所谓堆
14、栈是在存储器中开辟一个区域,用来存放 需要暂时保存的数据。堆栈段是由段定义语句在存储 器中定义的一个段,它可以在存储器1MB空间内浮动, 堆栈容量小于等于64KB。段基址由堆栈寄存器SS指定, 栈顶由堆栈指针SP指定,根据堆栈构成方式不同,堆 栈指针SP指向的可以是当前栈顶单元,也可以是栈顶 上的一个“空”单元,一般采用SP指向当前栈顶单元。 堆栈的地址增长方式一般是向上增长,栈底设在存储 器的高地址区,堆栈地址由高向低增长。,例2-3 若当前SS=C000H,SP=1000H,指出当前栈顶 在存储器中的位置。,堆栈的工作方式是“先进后出”,用入栈指令 PUSH和出栈指令POP可将数据压入堆栈
15、或从堆栈中弹 出数据,栈顶指针SP的变化由CPU自动管理。堆栈以 字为单位进行操作,堆栈中的数据项以低字节在偶地 址,高字节在奇地址的次序存放。当执行PUSH指令时, CPU自动修改指针SP-2SP。使SP指向新栈顶,然后 将低位数据压入(SP)单元,高位数据压入(SP+1) 单元。当执行POP指令时,CPU先将当前栈顶SP(低 位数据)和SP+1(高位数据)中的内容弹出,然后再 修改指针,使SP+2SP,SP指向新栈顶。,例2-4 上例中若AX3322H,BX=1100H,CX=6655H, 执行指令PUSH AX,PUSH BX,再执行指令POP CX, 此时堆栈中内容发生什么变化,AX,
16、BX,CX中的内 容是什么?,两点注意: (1)先进入的内容要后弹出,保证返回寄存器内容不发生错误。 (2)PUSH和POP的指令要成对,若不匹配的话,会造成返回主程序的地址出错。,根据使用目的不同,8086/8088系统可以有最小 模式和最大模式两种系统配置方式,两种方式的选 择不是由程序进行控制的,而是由硬件设定的。,2-4 8086 系统配置,最小模式:即单处理器系统,所有控制信号由CPU提供。 最大模式:即多处理器系统,控制信号由总线控制器提供 。,一、最小模式系统8086 CPU构成的最小模式系统的典型配置如图 2-14所示:,图2-14 8086最小模式系统配置,最小模式操作过程:,1. 读存储器操作过程,2. 读I/O端口操作过程,3. 写存储器操作过程 4. 写I/O端口操作过程,指令周期:执行一条指令所需的时间称为指令周期。不同指令的指令周期的长短是不同的,一个指令周期由几个总线周期组成。,2-5 8086 CPU时序,