资源描述
【本章重点】本章主要讲述8086的硬件结构、外部引脚、 内部寄存器的组织、和总线时序。 【本章难点】引脚功能和总线时序。,第2章 8086微处理器,2.2.1 8086的结构特点 微处理器执行一段程序通常是通过重复执行如下步骤来完成。即: (1) 从内存储器中取出一条指令,分析指令操作码; (2) 读出一个操作数(如果指令需要操作数); (3) 执行指令; (4) 将结果写入内存储器(如果指令需要)。,2.1 8086 CPU的结构,图2-1 8086的结构框图,1总线接口部件,(1)4个段地址寄存器 CS-16位的代码段寄存器 DS-16位的数据段寄存器 ES-16位的扩展段寄存器 SS-16位的堆栈段寄存器 (2)16位的指令指针寄存器IP (3)20位的地址加法器 (4)6字节的指令队列。,2执行部件 (1)4个通用寄存器,即AX、BX、CX,DX; (2)4个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI; (3)标志寄存器Flag; (4)算术逻辑单元ALU; 8086的执行部件(EU)有如下特点: (1)4个通用寄存器既可以作为16位寄存器使用,也可以作为8位寄存器使用。 (2)AX寄存器也常称为累加器,8086指令系统中有许多指令都是通过累加器的动作来执行的。,表2-1 寄存器的主要用途,(3)加法器是算术逻辑部件主要部件,绝大部分指令的执行都是由加法器完成的。 (4)标志寄存器共有16位,其中,7位未用,所用的各位含义如下:,0,15,状态标志有6个,即SF、ZF,PF、CF,AF和OF。,符号标志SF(Sign Flag):它和运算结果的最高位相同。若运算结果最高位为1,则SF=1,否则SF=0。,零标志ZF(Zero Flag):如果当前的运算结果为零,则ZF=1,否则ZF=0。 奇偶标志PF(Parity Flag):如果运算结果的低8位中所含的1的个数为偶数,则PF=1,否则PF=0。 进位标志CF(Carry Flag):当执行一个加法运算使最高位产生进位时,或者执行一个减法运算引起最高位产生借位时,则CF=1,否则CF=0。 辅助进位标志AF(Auxiliary Carry Flag):当加法运算时,如果第三位往第四位有进位,或者当减法运算时,如果第三位从第四位有借位,则AF=1,否则AF=0。 溢出标志OF(Overflow Flag):当运算过程中产生溢出时,会使OF=1,否则OF=0。,控制标志有3个,即DF、IF、TF。 方向标志DF(Direction Flag):这是控制串操作指令的标志。如果DF=0,则串操作过程中地址会不断增值,反之,如果DF=1,则串操作过程中地址会不断减值。 中断标志IF(1uterrupt Enable Flay):这是控制可屏蔽中断的标志。如IF=0,则CPU不能对可屏蔽中断请求作出响应,如果IF=1,则CPU可以接受可屏蔽中断请求。 跟踪标志TF(Trap Flay):如果TF=1,则CPU按跟踪方式执行指令。,2.2.2 8086的总线工作周期,在8086中,一个最基本的总线周期由4个时钟周期组成,在T1状态,CPU往多路复用总线上发出地址信息,以指出要寻址的存储单元及外设端口的地址。 在T2状态,CPU从总线上撤消地址,而使总线的低16位浮置成高阻状态,为传输数据作准备。总线的最高4位(A19A16)用来输出本总线周期状态信息。这些状态信息用来表示中断允许状态、当前正在使用的段寄存器名等。,在T3状态,多路总线的高4位继续提供状态信息,而多路总线的低16位上出现由CPU写出的数据或者CPU从存储器或端口读入的数据。 在有些情况下,被写入数据或者被读取数据的外设或存储器不能及时地配合CPU传送数据。这时,外设或存储器会通过“READY”信号线在T3状态启动之前向CPU发一个“数据未准备好”信号,于是CPU会在T3之后插入1个或多个附加的时钟周期TW。TW也叫等待状态。在Tw状态,总线上的信息情况和T3状态的信息情况一样。当指定的存储器或外设完成数据传送时,便在“READY”线上发出“准备好”信号,CPU接收到这一信号后,会自动脱离TW状态面进入T4状态., 在T4状态,总线周期结束。需要指出的是,只有在CPU和内存或IO接口之间传输数据,以及填充指令队列时,CPU才执行总线周期。可见,如果在1个总线周期之后,不立即执行下1个总线周期。那么,系统总线就处在空闲状态,此时,执行空闲周期。,2.3 8086/8088的引脚信号和工作模式,2.3.1 最小模式和最大模式的概念 所谓最小模式,就是在系统中只有8086一个微处理器。在这种系统中,所有的总线控制信号都直接由8086产生,因此,系统中的总线控制逻辑电路被减到最少。 最大模式是相对最小模式而言,在此系统中,包含两个或两个以上的微处理器,其中一个主处理器就是8086,其他的处理器称为协处理器,它们是协助主处理器工作的。和8086配合的协处理器有两个。一个是数值运算协处理器8087,一个是输入输出协处理器8089。,2.3.2 8086的引脚信号和功能,1AD15AD0地址数据复用引脚(双向工作) 2A19S6A16S3地址状态复用引脚(输出) 3 BHE/S7高8位数据总线允许状态复用引脚(输出),4NMI 非屏蔽中断信号 5INTR可屏蔽中断请求信号 6RD读选通信号 7CLK时钟信号 8RESET复位信号 9READY准备就绪输入信号 10TEST测试信号 11 MN/MX最小最大模式控制信号 12GND地和VCC电源,2.3.3 8086最小工作方式,当8086第33脚MNMX固定接到+5V时,就处于最小工作模式下第24脚第3l脚的信号含义如下:,1INTA中断响应信号(输出) ALE地址锁存允许信号 DT/R数据收发信号 5M/IO存贮器输入输出控制信号 6WR写信号,表2-3 最小模式数据传输方式,7HOLD总线保持请求信号 8HLDA总线保持响应信号 9SS0 状态输出线,M/IO,DT/R,SS0,图2-7是8088在最小模式下的典型配置,2.3.4 8086最大工作方式,当MN/MX加上低电平时,8086CPU工作在最大模式下。此时8086CPU工作于多处理器系统。,1QSl和QS0指令队列状态信号 2S2,S1,S0总线周期状态信号 3LOCK总线封锁信号 4RQ/GT1,RQ/GT0 总线请求信号输入总线请求允许信号输出,图2-8 8086最大工作模式的典型配置,1总线控制器8288,2总线仲裁控制器8289,2.3.5 8086系统复为和启动操作,表2-9复位时8086/8088个内部寄存器的值,由表2-9中看到,在复位的时候,代码段寄存器CS和指令指针寄存器IP分别初始化为FFFFH和0000H。所以,80868088在复位之后再重新启动时,便从内存的FFFF0H处开始执行指令,使系统在启动时,能自动进入系统程序。在复位时,由于标志寄存器被清零,即所有标志位都被清除了,因而,系统程序在启动时,总是要通过指令来设置各有关标志。复位信号 RESET从高电平到低电平的跳变会触发CPU内部的一个复位逻辑电路,经过7个时钟周期之后,CPU就被启动而恢复正常工作,即从FFFF0H处开始执行程序。,2.4 存贮器组织,2.4.1由段寄存器、段偏移地址确定物理地址 20位物理地址=段寄存器的内容16+偏移地址 段寄存器的内容16(相当于左移4位)变为20位,再在低端16位加上16位的偏移地址,便可得到20位的物理地址。 这里仅以8086CPU复位后如何形成启动地址为例,说明物理地址的计算方法。复位时CS的内容为FFFFH,IP的内容为0000H。复位后的启动地址由CS段寄存器和IP的内容共同决定,即:启动地址=CS16+IP =FFFF0H+0000H =FFFF0H,2.4.2段寄存器的使用,表2-10 段寄存器使用时的一些基本约定,
展开阅读全文