1、2018年10月14日星期日,杭州电子科技大学 生仪学院,微机原理与接口技术,01:50,2,内容提要,8086CPU内部结构 8086CPU引脚及功能 8086CPU存储器组织 8086CPU系统配置 8086CPU时序,第二章 8086系统结构,01:50,3,复习,01:50,4,第二章 8086系统结构,概 述,第二章 8086系统结构 概述,16位微处理器,外型为双列直插式,有40个引脚; 时钟频率有3种:8086型微处理器为5MHz;80862型为8MHz;8086I型为10MHz; 8086CPU有16根数据线和20根地址线,直接寻址空间为220,即为1M字节。 8088CPU内
2、部结构与8086基本相同(但对外数据总线只有8条,称为准16位微处理器)。,InteL 8086CPU,01:50,5,2-1 8086CPU结构,一、8086CPU内部结构,回顾:一般CPU结构,2-1 8086CPU结构 8086CPU内部结构,01:50,6,一、8086CPU内部结构:BIU和EU并行工作,2-1 8086CPU结构 8086CPU内部结构,01:50,7,总线接口部件BIU(Bus Interface Unit),功能,物理地址形成、取指令、指令排队、读写操作数、总线控制。,组成,16位段地址寄存器 16位指令指针寄存器 20位物理地址加法器 总线控制逻辑 6字节指令
3、队列,工作过程,形成物理地址,发读信号(/RD),取指令送入指令队列。,2-1 8086CPU结构 8086CPU内部结构,01:50,8,指令执行部件EU(Execution Unit),功能,指令译码、执行指令。,组成,算术逻辑运算单元ALU 标志寄存器PSW 寄存器组 EU控制器,工作过程,从BIU的指令队列取得指令、进行译码、执行指令 。,2-1 8086CPU结构 8086CPU内部结构,01:50,9,寄存器的作用:存放运算过程中所需要的操作数地址、操作数及中间结果。,寄存器的特点:存取速度比存储器快得多。,寄存器的分类:,通用寄存器组 指针和变址寄存器 段寄存器 指令指针及标志位
4、寄存器,2-1 8086CPU结构 寄存器结构,二、寄存器结构,01:50,10,2-1 8086CPU结构 寄存器结构,01:50,11,通用寄存器,2-1 8086CPU结构 寄存器结构,有4个l6位通用寄存器:AX、BX、CX、DX,即累加器、基址寄存器、计数寄存器、数据寄存器,存放16位数据或地址。也可分为8个8位寄存器:低8位是AL、BL、CL、DL;高8位为AH、BH、CH、DH,只能存放8位数据不能存放地址。但某些通用寄存器用作专门用途。,MUL DL ;AXAL*DL,XLAT ;BX:表首地址;AL:偏移量,01:50,12,2.段寄存器,2-1 8086CPU结构 寄存器结
5、构,4个16位段寄存器:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES。作用:给出相应逻辑段的首地址,即“段基址”。CS:存放可执行的指令代码; DS:存放操作的数据;ES:存放操作的数据; SS:开辟为程序执行中所要用的堆栈区;物理地址的形成:16段基址+段内偏移地址例1已知:代码段寄存器CS存放当前代码段基地址,且CS2000H,指令指针寄存器IP存放了下一条要执行指令的段内偏移地址,且IP1000H。求该指令存放的物理地址。解:,指令存放的物理地址 = 16CS+IP=21000H,01:50,13,3.指针和变址寄存器,2-1 8086CPU结构 寄存器结构,4
6、个16位寄存器:用于堆栈操作和变址运算,存放段内地址偏移量。BP、SP称为指针寄存器,与SS联用。 例1:MOV AX,BP ;寄存器间接寻址,物理地址=16SS+BP 例2:PUSH/POP AX ;在堆栈段内(SS),SPSP-2,指向栈顶SI、DI称为变址寄存器,与DS联用。 例3:MOV AX,SI(或DI) ;物理地址=16DS+SI(或DI)在串指令中,SI、DI均为隐含寻址。 例4:MOVS 目的串(DI/ES),源串(SI/DS) SI与DS联用,DI与ES联用。,01:50,14,指令指针寄存器IP,2-1 8086CPU结构 寄存器结构,16位寄存器:存放将要执行的下一条指
7、令在现行代码段中的偏移地址。注意:8086程序不能直接访问IP,但可以由某些指令修改:中断指令、调用指令、跳转指令。,01:50,15,标志寄存器PSW,状态标志(6个):CF、PF、AF、ZF、SF、OF ,表示运算后结果的状态特征,影响后面的操作。 控制标志(3个):TF、IF、DF ,控制CPU操作。,2-1 8086CPU结构 寄存器结构,01:50,16,CF (Carrv Flag):进位标志位最高位有进位或借位时,CF1。,PF (Parity Flag):奇偶校验标志位本次运算结果中有偶数个“1”时,PF1;有奇数个“1”时,PF 0。,AF(Auxiliary Flag):辅
8、助进位标志位低4位向高4位进化或借位时,AF1。 AF一般用在BCD码运算中。,ZF(Zero Flag):全零标志位本次运算结果为0时,ZF1;否则ZF 0。,SF(Sign Flag):符号标志位本次运算结果的最高位为1时,SF1,结果为负;否则SF0,结果为非负。,2-1 8086CPU结构 寄存器结构,OF(Overflow Flag):溢出标志位本次运算过程中产生溢出时,OF 1 。符号数范围为-128+127,字运算结果的范围为-32768+32767,超过此范围为溢出。,01:50,17,TF (Trap Flag):单步标志位设置单步工作方式。TF1时,每执行一条指令,就自动产
9、生一次内部中断,使用户能逐条跟踪程序进行调试。,IF (Interrupt Flag):中断标志位IF1时,允许CPU响应可屏蔽中断;IF0时, CPU不响应外设有中断申请。,DF(Direction Flag):方向标志位控制串操作指令中地址指针变化方向。DF0,地址指针自动增量;DF1,地址指针自动减量。STD指令使DF置“1”,CLD指令使DF置“0”。,2-1 8086CPU结构 寄存器结构,例 将5394H与-777FH两数相加,运算结果为:一23EBH。 解:结果的标志位为:,CF0、PF1、AF0、ZF0、SF1、OF0。,01:50,18,2-2 8086CPU的引脚及其功能,
10、概 述 80868088 CPU芯片:16条数据线、20条地址线(低16位和数据线复用)、17根控制线、电源和地线。封装:双列直插式。80868088的工作模式:最小模式(单机系统):系统中所需要的控制信号全部由8086直接提供;最大模式(多处理机系统):系统中所需要的控制信号由总线控制器8288提供。2431脚在两种工作模式中具有不同的功能。,2-2 8086CPU的引脚及其功能 概述,01:50,19,本节主要内容: 8086CPU在最小模式中的引脚定义 8086CPU在最大模式中的引脚定义 8088和8086CPU的不同之处,2-2 8086CPU的引脚及其功能 概述,01:50,20,
11、AD15 AD0 (Address Data Bus),16条地址数据总线 分时复用 三态 双向,分时复用:在总线周期T1状态,A15A0;在总线周期T2T4状态,D15D0; 三态双向:传送地址时三态输出,传送数据时三态双向输入输出,在中断响应及系统总线保持响应周期,高阻状态。,一、最小模式中的引脚定义,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,21,A19S6 A16S3 (Address/Status),分时复用: T1状态:A19A16 +A15A0地址; T2T4状态:S6S3输出状态信息。,地址状态线 分时复用 三态 输出,当系统总线处于“保持响应”状态,这些
12、引脚被置成高阻状态。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,22,T2T4状态: S6=0:表明8086当前连在总线上; S5=0:禁止一切可屏蔽中断; S5=1:允许可屏蔽中断; S4S3:指明当前正在使用的段寄存器,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,23,BHES7(Bus High EnableStatus),高8位数据总线允许状态信号 三态 输出 低电平有效,用作高8位数据D15D8选通信号。 16位数据传送时: 在T1状态,BHE0时,高8位数据有效;AD0 0时,低8位数据有效。 在T2T4状态,S7输出状态信息,在“保持响应
13、”周期被置成高阻状态。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,24,MNMX ( MinimumMaximum ),最小/最大工作模式选择信号 输入,接+5V时 CPU工作在最小模式,单处理器系统,CPU提供所有总线控制信号; 接地时 CPU工作在最大模式,CPU的S2S0提供给总线控制器8288,由8288产生总线控制信号。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,25,允许CPU读存储器或I/O端口,由M/IO信号(28脚)区分读存储器或I/O端口。 在读总线周期的T2、T3、TW状态,RD为低电平。 在“保持响应”周期,被置成高阻状态。,
14、RD (Read) 读选通信号,三态 输出 低电平有效,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,26,WR (Write) 写选通信号,三态 输出 低电平有效,允许CPU写存储器或I/O端口,由M/IO信号区分读存储器或I/O端口。在写总线周期的T2、T3、TW状态,WR为低电平。在DMA方式,被置成高阻状态。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,27,存储器或I/O端口控制信号 三态 输出,M/IO信号为高电平,CPU正在访问存储器;M/IO信号为低电平,CPU正在访问I/O端口。前一个总线周期的T4本周期的T4状态,M/IO有效;在DMA
15、方式时,M/IO为高阻状态。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,28,ALE ( Address Latch Enable ),地址锁存允许信号 输出 高电平有效,地址锁存器82828283的片选信号,在T1状态,ALE=1,表示锁存到8282/8283中。注意:ALE信号不能浮空。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,29,三态 输出 低电平有效,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,30,数据发送接收控制信号 三态 输出,用来控制数据收发器8286/8287的数据传送方向。 DT/R1时,CPU发送数据,完
16、成写操作; DT/R0时,CPU从外部接收数据,完成读操作。 在DMA方式时,被置成高阻状态。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,31,READY ( Ready ) 准备就绪信号,输入 高电平有效,由存储器或I/O端口发来的响应信号,表示外部设备已准备好可进行数据传送。CPU在每个总线周期的T3状态检测READY信号线,如果是低电平,在T3状结束后,CPU插入一个或几个TW等待状态,直到READY信号有效后,才进入T4状态,完成数据传送过程。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,32,RESET (Reset) 复位信号,输入 高电平
17、有效,CPU接收到复位信号后,停止现行操作,并初始化。RESET信号至少保持4个时钟周期以上的高电平。复位过程:CPU重启,8086/8088将从地址FFFF0H开始执行指令。通常在FFFF0H单元开始存放一条无条件转移指令,将入口转到引导和装配程序中,实现对系统的初始化,引导监控程序或操作系统程序。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,33,INTR(Interrup Request),可屏蔽中断请求信号 输入 电平触发(或边沿触发) 高电平有效,当外设接口向CPU发出中断申请时,INTR信号变成高电平。CPU一旦检测到此信号有效,并且中断允许标志位IFl,CPU
18、在当前指令执行完后,转入执行中断服务程序。用STI指令,可使IF置“l”,用CLI指令可使IF置“0”。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,34,INTA(Interrupt AcknowIedge),中断响应信号 输出 低电平有效,CPU对外部发来的中断请求信号INTR的响应信号。 在中断响应总线周期T2、T3、TW状态,CPU发出两个INTA负脉冲,第一个负脉冲通知外设接口已响应它的中断请求,外设接口收到第二个负脉冲信号后,向数据总线上放中断类型号。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,35,NMI (Non-Maskable In
19、terrupt Request),不可屏蔽中断请求信号 输入 边沿触发,正跳变有效,不受中断允许标志位IF的影响,不能用软件进行屏蔽。 NMI引脚一旦收到一个正沿触发信号,在当前指令执行完后,自动引起类型2中断,转入执行类型2中断处理程序。 经常处理电源掉电等紧急情况。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,36,TEST (Test) 测试信号,输入 低电平有效,在CPU执行WAIT指令期间,每隔5个时钟周期对TEST引脚进行一次测试,若测试到TEST为高电平,CPU处于空转等待状态;当测试到TEST有效(低电平),空转等待状态结束,CPU继续执行被暂停的指令。,2
20、-2 8086CPU的引脚及其功能最小模式中定义,01:50,37,HOLD (Hold Request) 总线保持请求信号,输入 高电平有效,在最小模式系统中,共享总线的部件向CPU请求使用总线,要求直接与存储器传送数据。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,38,HLDA(Hold Acknowledge),总线保持响应信号 输出 高电平有效,CPU一旦测试到HOLD有效,如果CPU允许让出总线,在当前总线周期结束时,在T4状态发出HLDA信号,表示响应这一总线请求,并立即让出总线使用权,将三条总线置成高阻状态。 部件获得总线控制权后,可进行DMA数据传送,总线
21、使用完毕HOLD无效(低)。CPU才将HLDA置低。CPU再次获得三条总线的使用权。,2-2 8086CPU的引脚及其功能最小模式中定义,01:50,39,CLK ( Clock ) 时钟信号,输入,由8284时钟发生器产生。 芯片型号不同,时钟频率不同:8086为5MHz,8086-l为10MHz,8086-2为8MHz。,CPU所需电源:Vcc+5V。 GND为地线。,Vcc ( +5V ),GND ( 地 ),2-2 8086CPU的引脚及其功能最小模式中定义,01:50,40,二、在最大模式中的引脚定义,在最大模式中,2431脚功能重新定义。,不要求。,2-2 8086CPU的引脚及其
22、功能最大模式中定义,01:50,41,三、8088和8086CPU的不同之处,8088CPU的内部数据总线宽度是16位,外部数据总线宽度是8位,8088CPU为准16位微处理器。,2-2 8086CPU的引脚及其功能8086和8088不同之处,01:50,42,8088和8086CPU的不同之处:,指令队列:8088的指令队列长度是4个字节,指令队列中只要出现一个空闲字节时,CPU就会自动访问存储器,取指令来补充指今队列。 8088CPU中,BIU的总线控制电路与外部交换数据的总线宽度是8位,而EU的内部总线是16位,这样,对16位数的存储器读/写操作要两个读/写周期才可以完成。 8088CPU外部数据总线只有8条,分时复用的地址/数据总线AD7AD0;而AD15AD8成为仅传递地址信息的A15A8。 8088用IO/M信号代替M/IO信号,IO/M低电平时选通存储器,高电平时选通I/O接口。 8088中,只能进行8位数据传输,BHE信号不需要了,改为SS0,与DT/R、IO/M起决定最小模式中的总线周期操作。,2-2 8086CPU的引脚及其功能8086和8088不同之处,01:50,43,课堂小结,重点:,掌握8086CPU的内部结构 理解8086CPU引脚及功能 掌握8088CPU与8086CPU区别,P55:1、2、5,作业:,