《《微处理器 》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《微处理器 》PPT课件.ppt(52页珍藏版)》请在三一办公上搜索。
1、第二章 8086/8088微处理器 本章学习目标8086/8088微处理器的功能结构及指令执行的操作过程8086/8088系统存储器组织和堆栈8086/8088在最大和最小模式下引脚功能8086/8088在最大和最小模式下的系统组织8086/8088CPU的操作时序,2.1 8086/8088微处理器的功能结构8086:Intel系列的16位微处理器,16条数据线、20条地址线,可寻址地址范围220=1MB,时钟频率为5MHz。8088:内部与8086兼容,也是一个16位微处理器,只是外部数据总线为8位,所以称为准16位微处理器。,8086/8088的内部结构从功能上分成两个单元:总线接口单元
2、BIU管理CPU与系统总线的接 口,负责CPU对存储器和I/O接口进行访问执行单元EU负责指令的译码、执行两个单元相互独立,分别完成各自操作;它们可以并行执行,实现指令取指和执行的流水线操作,AH AL,BH BL,CH CL,DH DL,SP,BP,DI,SI,通用寄存器,运算寄存器,ALU,标志寄存器,执行部分控制电路,1 2 3 4 5 6,CS,DS,SS,ES,IP,内部寄存器,I/O控制电路,地址加法器,20位,16位,指令队列缓冲器,外部总线,执行部件EU,总线接口部件BIU,8086CPU结构图,1、总线接口部件BIU1)功能:(1)从存储器取指令送到指令队列。(2)CPU执行
3、指令时,到指定的位置取操作数,或者将其送至要求的位置单元中。2)组成:(1)四个16位段地址寄存器:存放段地址 CS:代码段寄存器;DS:数据段寄存器;ES:附加段寄存器;SS:堆栈段寄存器。(2)16位指令指针寄存器IP(PC):用来控制CPU的指令执行顺序,它和代码段寄存器CS一起可以确定当前所要取的指令的内存地址。顺序执行程序时,,CPU每取一个指令字节,IP自动加1,指向下一个要读取的指令字节。(3)20位的地址加法器:产生20位地址。CPU内无论是段地址寄存器还是偏移地址量都是16位的,通过地址加法器产生20位地址。(4)指令队列缓冲器:8086:六字节、8088:四字节,在执行指令
4、的同时,将取下一条指令,并放入指令队列缓冲器中。CPU执行完一条指令后,可以执行下一条指令(流水线技术),提高CPU效率。2、执行部件EU1)功能:(1)从指令队列中取出指令,(2)对指令进行译码,发出相应的控制信号(3)接收由总线接口送来的数据或发送数据至接口(4)进行算术逻辑运算2)组成:(1)四个16位通用数据寄存器:AX、BX、CX、DX,可以存放16位的操作数,也可分别分为两个8位的寄存器(AL、AH;BL、BH;CL、CH;DL、DH)来使用。其中AX称为累加器,BX称为基址寄存器,CX称为计数寄存器,DX称为数据寄存器。(2)指针和变址寄存器:存放地址指针。SP堆栈指针寄存器:指
5、示当前堆栈段顶部的偏移地址BP基址指针寄存器:指示堆栈段中一些特殊数据的起始地址,DI目的变址寄存器:存放待传送的字符串的目的首地址SI 源变址寄存器:存放待传送的字符串的源首偏移地址当SI、DI和BP不作指示器和变址寄存器使用时,也可将它们当作一般数据寄存器使用,用来存放操作数或运算结果。而SP只能作堆栈指示器,不能作数据寄存器使用。(3)算术逻辑单元ALU 完成8位或者16位二进制算术和逻辑运算。(4)数据暂存寄存器 协助ALU完成运算,暂存参加运算的数据。(5)执行部件的控制电路从总线接口的指令队列取出指令操作码,通过译码电路分析,发出相应的控制命令,控制ALU数据流向。,(6)标志寄存
6、器FR:用来存放8086/8088CPU在工作过程中的状态。16位寄存器,其中有7位未用。,D15,D0,OF DF IF TF SF ZF AF PF CF,进借位标志,奇偶标志,半进借位标志,零标志,符号标志,单步中断,中断允许,方向标志,溢出标志,1-有进、借位0-无进、借位,1-低8位有偶数个10-低8位有奇数个1,1-低4位向高4位有进、借位0-低4位向高4位无进、借位,1-结果为00-结果不为0,PF:,例 5439H+456AH=?求运算后的各个状态标志。,3、8086/8088的指令流水线操作,指令的一般执行过程:取指令指令译码读取操作数执行指令存放结果8086以前的CPU采用
7、串行工作方式,1)CPU执行指令时总线处于空闲状态2)CPU访问存储器(存取数据或指令)时要等待总线操作的完成,8086CPU采用并行工作方式 8086/8088内部有BIU、EU两个独立单元,可以并行工作,即流水线操作:,2.2 8086/8088CPU执行程序的操作过程(1)20位地址的形成,并将此地址送至程序存储器指定单元,从该单元取出指令字节,依次放入指令队列中。(2)每当8086的指令队列中有2个空字节(8088指令队列中有1个空字节)时,总线接口部件就会自动取指令至队列中。(3)执行部件从指令队列首取出指令代码,执行该指令。(4)当队列已满,执行部件又不使用总线时,总线接口部件进入
8、空闲状态。(5)执行转移指令、调用指令、返回指令时,先清空队列内容,再将要执行的指令放入队列中。,2.3 8086/8088系统存储器的组织和堆栈1、8086/8088系统存储器的组织 8086/8088 CPU有20条地址线,可以寻址多达220(1M)个存储单元,即可以配置1MB的存储器,地址编号为00000H0FFFFFH存储空间按8位二进制位进行组织,即每个存储单元可以存储一个字节的数据,若存放“字”数据(16bits),则存放在两个相邻的存储单元中,高字节数据存放在高地址存储单元中,低字节存放在低地址单元中 指令代码、字节数据、字数据可以自由的存放在任何地址的存储单元中,(1)8086
9、/8088系统存储器的分段结构 8086/8088是16位的微处理器,即CPU内部寄存器皆为16位,ALU也只能进行16位运算,所以8086/8088 CPU对地址只能进行16位运算,寻址空间最多为216(64K)字节,所以引入“分段”概念,以获得20位地址 8086/8088 CPU把1MB的存储器空间划分为任意的一些存储段,一个存储段是存储器中可独立寻址的一个逻辑单位,也称逻辑段,每个段都由连续的存储单元组成,其长度可达64K字节 每段第一个字节的地址就是“段起始地址”,由软件设定。8086/8088 CPU中有四个段寄存器:CS,DS,SS和ES,这四个段寄存器存放了CPU当前可以寻址的
10、四个段的基址,几个段可以相互重叠,也可以指向同一个空间(2)段基址和段内偏移量8086/8088与存储器之间的信息交换都是使用20位的物理地址,而程序中所涉及的地址都是16位的逻辑地址,对所给定的任一存储单元而言有两部分逻辑地址:段基址:决定了该段第一个字节的位置,存放在段寄存器:CS、SS、DS、ES中段内偏移量:该存储单元相对于该段起点字节的距离,也称为偏移地址,存放在IP、SP、BP、BX、SI、DI以及它们的组合之中,(3)逻辑地址和物理地址存储器中的每个存储单元都可以用两个形式的地址来表示:实际地址(或称物理地址)和逻辑地址。实际地址:也称物理地址,是用唯一的20位二进制数所表示的地
11、址,规定了1M字节存储体中某个具体单元的地址。逻辑地址在程序中使用,即段地址:偏移地址。(4)物理地址的形成物理地址有两部分组成:段基址和偏移地址。,8086/8088CPU中有一个地址加法器,它将段寄存器提供的段地址自动乘以10H即左移4位,然后与16位的偏移地址相加,并锁存在物理地址锁存器中。如图所示。物理地址=段基址*16+偏移地址。段基址:CS、DS、ES、SS。偏移地址:IP、DI、SI、BP、SP等。,段寄存器值,偏移量,+,物理地址,16位,4位,16位,20位,存储器物理地址的计算方法,CS 0000,IP,代码段,DS或ES 0000,SI、DI或BX,SS 0000,SP或
12、BP,数据段,堆栈段,存储器,段寄存器和偏移地址寄存器组合关系,例 某程序的数据段中存有两个数据字1234H和5A6BH,若已知DS=5AA0H,它们的偏移地址分别是245AH和3245H,试画出它们在存储器中的存放情况,2、堆栈堆栈主要用于暂存数据和在过程调用或处理中断时暂存断点信息和现场数据保护。(1)堆栈的概念 堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。采用“先进后出”的规则。(2)堆栈的组织堆栈指示器SP,它总是指向堆栈的栈顶。堆栈的伸展方向既可以从大地址向小地址,也可以从小地址向大地址。8086/8088的堆栈的伸展方向是从大地
13、址向小地址。,例 已知堆栈段寄存器SS=A000H,堆栈指示器SP=0100H,试将数据1234H推入堆栈,画出进栈示意图。最后栈顶SP=?,2.4 8086/8088微处理器的引脚功能在学习引脚功能时请特别关注以下几个方面:引脚的功能:通常从其英文名称去记忆 信号的流向:信号从芯片向外输出,还是从外部输 入到芯片,还是双向的 有效电平:起作用的逻辑电平是高电平、低电平、还是上升沿、下降沿 三态能力:输出正常的低电平、高电平外,是否还 可以输出高阻的第三态(引脚悬空状态),根据应用系统规模的不同,使8086/8088 CPU可以在两种模式下工作:(1)系统的最小模式:只有一个8086/8088
14、 CPU8086/8088本身提供所有的系统总线信号构成小规模的应用系统(2)系统的最大模式:有两个或两个以上的CPU,一个为主CPU8086/8088,另一个为协CPU8087/80898086/8088和总线控制器8288共同形成系统总线信号构成较大规模的应用系统以8086为例,具体介绍一下最小模式下和最大模式下各位引脚功能,如出现功能不同的引脚再具体讲解,GND,AD14/A14,AD13/A13,AD12/A12,AD11/A11,AD10/A10,AD9/A9,AD8/A8,AD7,AD6,AD5,AD4,AD3,AD2,AD1,AD0,NMI,INTR,CLK,GND,VCC(5V
15、),AD15/A15,A16/S3,A17/S4,A18/S5,A19/S6,/BHE/S7/SS0(HIGH),MN/MX,/RD,HOLD(/RQ/GT0),HLDA(/RQ/GT1),/WR(/LOCK),M/IO/IO/M(/S2),DT/R(/S1),/DEN(/S0),ALE(QS0),/INTA(QS1),/TEST,READY,RESET,8086/8088,1、地址/数据总线AD15-AD0:地址/数据复用引脚,双向,三态。(8086/8088)AD15-AD0:16位地址总线A15-A0,输出访问存储器或I/O的地址信息。(8086)AD15-AD0:16位数据总线D15-
16、D0,与存储器和I/O设备交换数据信息。(8088)AD7-AD0:8位数据总线D7-D0,与存储器和I/O设备交换数据信息。地址/数据总线复用,分时工作。,2、地址/状态总线A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态,A19/S6-A16/S3:输出访问存储器的20位地址的高4位地址A19-A16。A19/S6-A16/S3:输出CPU的工作状态。A19/S6-A16/S3:分时工作,T1状态:输出地址的高4位信息;T2、T3、T4状态:输出状态信息。S6:总是低电平,表示8086/8088当前与总线相连。S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的
17、,禁止一切可屏蔽中断源的中断请求;S5=1,表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。S4、S3:指出当前使用段寄存器的情况。,S4、S3组合所对应的段寄存器情况 S4 S3 段寄存器 0 0 当前正在使用ES 0 1 当前正在使用SS 1 0 当前正在使用CS 1 1 当前正在使用DS,3、控制总线(1)/BHE/S7:高8位数据总线允许/状态复用引脚。在总线周期的T1状态,此引脚输出/BHE信号,表示高8位数据线D15-D8上的数据有效。,在T2、T3、TW和T4状态时,此引脚输出S7状态信号。/BHE、A0组合:/BHE A0 总线使用情况 0 0 从偶地址单元开始,在16
18、位数据总线上进行字传送 0 1 从奇地址单元开始,在高8位数据总线上进行字节传送 1 0 从偶地址单元开始,在低8位数据总线上进行字节传送 1 1 无效,S7:8086中无定义。8088中,在最大模式中,为高电平;在最小模式中,输出/SS0信号,此信号与其它信号合作将决定总线周期的读/写动作。,(2)/RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。(3)/WR:写信号,三态输出,低电平有效。/WR=0,表示当前CPU正在对存储器或I/O端口进行写操作。(4)M/IO:存储器或IO端口访问信号,三态输出。M/IO=1,表示CPU正在访问存储器;
19、M/IO=0,表示CPU正在访问IO端口。(5)READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。,(6)INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。(7)/INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。(8)NMI:不
20、可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。(9)/TEST:测试信号,输入,低电平有效。当CPU执行WAIT指令时,每隔个时钟周期对/TEST进行一次测试,若/TEST=1,继续等待,直到/TEST=0。,(10)RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始 执行。(11)ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址
21、/数据总线。(12)DT/R:数据发送/接收控制信号,三态输出。此信号控制数据总线上的驱动器8286的数据传送方向,DT/R=1,发送数据-写操作;DT/R=0,接收数据-读操作。(13)/DEN:数据允许信号,三态输出,低电平有效。作为数据总线上驱动器8286的选通信号。,(14)HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(15)HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。(16
22、)MN/MX:工作模式选择信号,输入。MN/MX=1,表示CPU工作在最小模式系统;MN/MX=0,表示CPU工作在最大模式系统。(17)CLK:主时钟信号,输入。8086/8088的时钟频率为5MHZ。,4、电源线和地线8086/8088采用单+5V,1、20引脚为地线。5、最大模式下的有关引脚(1)QS1、QS2:指令队列状态信号,输出。QS1 QS2 含义 0 0 无操作 0 1 将指令首字节送入指令队列 1 0 队列为空 1 1 将指令其余字节送指令队列,(2)S2、S1、S0:总线周期状态信号,三态输出。S2、S1、S0状态信号的编码 S2 S1 S0 操作过程 产生信号 0 0 0
23、 发中断响应信号/INTA 0 0 1 读I/O端口 IORC 0 1 0 写I/O端口 IOWC 0 1 1 暂停 无 1 0 0 取指令/MRDC 1 0 1 读存储器/MRDC 1 1 0 写存储器/AMWC 1 1 1 无作用 无,(3)/RQ/GT1、/RQ/GT2:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。(4)/LOCK:总线封锁信号,三态输出,低电平有效。/LOCK=0,CPU不允许其它控制器占用总线。,什么是分时复用?,分时复用就是一个引脚在不同的时刻具有两个甚至多个作用总线复用的目的是为了减少对外引脚个数8088/8086CPU的数据地址线采用了总线
24、复用方法,数据和地址引脚复用 在访问存储器或外设的总线操作周期中,这些引脚在第一个时钟周期输出存储器或I/O端口的地址,其他时间用于传送数据,2.5 8086/8088在最大和最小模式下的系统组织8086/8088 CPU 必须加上必要的支持芯片,比如时钟电路、地址锁存器、总线驱动器、存储器和I/O接口电路及外设,就可以构成一个最基本的应用系统。,最小组态总线形成,2.6 8086总线的操作时序在微机系统中,CPU是在时钟信号CLK控制下,按节拍有序地执行指令序列。从取指令开始,经过分析指令、对操作数寻址,然后执行指令、保存操作结果,这个过程称为指令执行周期。指令周期:执行一条指令所需要的时间
25、。总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。T状态(时钟周期):CPU处理动作的最小单位。,T1,T2,T3,TW,T4,总线周期,8086的总线时序包括以下几个部分:(1)存储器读操作;(2)存储器写操作;(3)输入输出周期;(4)中断响应操作;(5)总线空闲周期。,总线操作总线读操作:CPU从存储器或外设读取数据。总线写操作:CPU将数据写入存储器或外设。1、存储器读周期总线周期包括:T1、T2、T3、(TW)、T4时钟周期。(1)T1周期M/IO信号:从存储器读还是从I/O设备中读数据;AD15-AD0、A19/S7-A16/S3:确定20位地址
26、;/BHE:选择奇地址存储体选通。ALE:地址锁存信号,以使地址/数据线分开。,(2)T2状态A19/S6-A16/S3:出现S6-S3状态信号。决定段寄存器、IF状态、8086CPU是否连在总线上。AD15-AD0:高阻状态。/RD:由高电平变为低电平,开始进行读操作。/DEN:变低电平,启动数据收发器8286,做好接收数据的准备。(3)T3状态若存储器或I/O端口已做好发送数据准备,则在T3状态期间将数据放到数据总线上,在T3结束时,CPU从AD15-AD0上读取数据。,(4)TW状态在T3状态,存储器或外设没有准备好数据,不能在T3状态将数据放到总线上,使READY=0,则CPU在T3和
27、T4之间插入一个或几个TW状态,直到数据准备好READY=1为止。TW状态时总线的动作与T3时相同。(5)T4状态CPU对数据总线进行采样,读出数据。CPU往存储器或I/O设备写数据的时序如下页所示:,CLK,T1,T2,T3、TW,T4,M/IO,A19/S6-A16/S3,A19-A16,/BHE/S7,/BHE,S7-S3,ALE,READY,AD15-AD0,地址输出,数据输入,/RD,DT/R,/DEN,CPU从存储器或I/O端口读取数据的时序,2、存储器写周期(1)T1状态M/IO信号:对存储器写还是对I/O设备中写数据;AD15-AD0、A19/S7-A16/S3:确定20位地址
28、;/BHE:选择奇地址存储体选通。ALE:地址锁存信号,以使地址/数据线分开。DT/R:为高电平,指示数据收发器8286发送数据,写操作。(2)T2状态A19/S6-A16/S3:出现S6-S3状态信号。决定段寄存器、IF状态、8086CPU连在总线上。,AD15-AD0:发出16位数据。/WR:由高电平变为低电平,开始进行写操作。/DEN:变低电平,启动数据收发器8268,做好发送数据的准备。(3)T3状态若存储器或I/O端口已做好接收数据准备,则在T3状态期间将数据放到数据总线上,在T3结束时,CPU将AD15-AD0上数据写入到存储器或I/O设备中。(4)TW状态在T3状态,存储器或外设
29、没有准备好接收数据,使READY=0,则CPU在T3和T4之间插入一个或几个TW状态,直到设备准备好READY=1为止。,(5)T4状态在T4状态,数据从数据总线上被撤除,各种控制信号和状态信号进入无效状态,CPU完成了对存储器或I/O设备的写操作。3、输入/输出周期8086与外设通讯,也即从外设输入数据,或把数据输出给外设的时序,与CPU同存储器之间的通讯时序,几乎完全相同,只是M/IO信号应为低。4、总线空闲周期8086只有在CPU与存储器或外设要传送指令或操作时,才能执行如上所述的总线周期,若CPU不执行总线周期,则总线接口执行空操作。,CLK,T1,T2,T3、TW,T4,M/IO,A
30、19/S6-A16/S3,A19-A16,/BHE/S7,/BHE,S7-S3,ALE,READY,AD15-AD0,地址输出,数据输出,/WR,DT/R,/DEN,CPU往存储器或I/O端口写数据的时序,5、中断响应周期中断响应周期:从CPU中止现行程序转中断服务程序这一过程。中断响应周期要用两个总线周期。第一个响应周期:使AD15-AD0、/BHE/S7、A19/S6-A16/S3悬空。第二个响应周期:外设向数据总线上输送一个字节的中断类型号。,CLK,T1,T2,T3,T4,T1,T2,T3,T4,第一中断响应周期,第二中断响应周期,ALE,/INTA,AD7-AD0,8086中断响应周期的时序图,中断类型号,第二章作业课本:P90 2-3、2-9、2-19 2-20、2-21、2-24,