第3章8086微处理器_第1页
第3章8086微处理器_第2页
第3章8086微处理器_第3页
第3章8086微处理器_第4页
第3章8086微处理器_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章8086/8088微处理器通过本章的学习,应该掌握以下内容:8086/8088微处理器的结构8086/8088在最大和最小模式下引脚功能8086/8088系统存储器的组织和堆栈8086/8088的操作时序8086:Intel系列的16位微处理器,16条数据线、20条地址线,可寻址地址范围220=1MB,8086工作时,只要一个5V电源和一个时钟,时钟频率为5MHz。8088:内部与8086兼容,也是一个16位微处理器,只是外部数据总线为8位,所以称为准16位微处理器。8088有20根地址线,所以可寻址的地址空间达220即1M字节。3.18086/8088微处理器的结构AHALBHBLCHCLDHDLSPBPDISI通用寄存器运算寄存器ALU标志执行部分控制电路123456CSDSSSESIP内部寄存器I/O控制电路地址加法器20位地址16位8位指令队列缓冲器外总线执行部件总线接口部件8086CPU结构图从功能上,8086内部分为两个部分:总线接口单元和执行单元一、总线接口部件功能:负责CPU与存储器、I/O接口之间的数据传送。具体功能有:(1)从取指令送到指令队列。(2)CPU执行指令时,到指定的位置取操作数,并将其送至要求的存储单元中。总线接口部件的组成:(1)四个段地址寄存器CS,16位代码段寄存器;DS,16位数据段寄存器;ES,16位附加段寄存器;SS,16位堆栈段寄存器。3.18086/8088微处理器的结构(2)16位指令指针寄存器IP。(3)20位的地址加法器。(4)6字节的指令队列缓冲区。(8088有4字节的指令队列)说明:指令队列缓冲区:在执行指令的同时,将取下一条指令,并放入指令队列缓冲区中。CPU执行完一条指令后,可以执行下一条指令(流水线技术),提高CPU效率。地址加法器:产生20位地址。CPU内无论是段地址寄存器还是偏移量都是16位的,通过地址加法器产生20位地址。3.18086/8088微处理器的结构二、执行部件作用:主要作用就是负责解释并执行指令。具体操作如下:(1)从指令队列中取出指令。(2)对指令进行译码,发出相应相应的控制信号。(3)接收由总线接口送来的数据或发送数据至接口。(4)进行算术/逻辑运算。执行部件的组成:(1)四个通用寄存器AX、BX、CX、DX。4个通用寄存器都是16位,每个通用寄存器又可作为两个8位寄存器来使用。3.18086/8088微处理器的结构(2)专用寄存器SP-----堆栈指针寄存器;BP----基址指针寄存器DI-----目的变址寄存器;SI----源变址寄存器(3)算术逻辑单元ALU完成8位或者16位二进制算术和逻辑运算,计算偏移量。(4)数据暂存寄存器协助ALU完成运算,暂存参加运算的数据。(5)执行部件的控制电路从总线接口的指令队列取出指令操作码,通过译码电路分析,发出相应的控制命令,控制ALU数据流向。3.18086/8088微处理器的结构(6)标志寄存器16位寄存器,其中有7位未用。D15D0OFDFIFTFSFZFAFPFCF进借位标志奇偶标志半进借位标志零标志符号标志单步中断中断允许方向标志溢出标志1-有进、借位0-无进、借位1-低8位有偶数个10-低8位有奇数个11-低4位向高4位有进、借位0-低4位向高4位无进、借位1-结果为00-结果不为0三、8086/8088CPU执行程序的操作过程(1)20位地址的形成,并将此地址送至存储器指定单元,从该单元取出指令字节,依次放入指令队列中。(2)每当8086的指令队列中有2个空字节,8088指令队列中有1个空字节时,总线接口部件就会自动取指令至队列中。(3)执行部件从总线接口的指令队列首取出指令代码,执行该指令。(4)当队列已满,执行部件又不使用总线时,总线接口部件进入空闲状态。(5)执行转移指令、调用指令、返回指令时,先清空队列内容,再将要执行的指令放入队列中。3.18086/8088微处理器的结构一、8086/8088微处理器的引脚功能根据所连的存储器和外设规模不同,CPU可以在两种模式下工作:系统的最小模式:系统中只有一8086/8088CPU。控制信号由微处理器直接产生。系统的最大模式:有两个或两个以上的CPU,8086/8088为主CPU,其它为协处理器8087/8089。控制信号由总线控制器产生。指令周期:执行一条指令所需要的时间。总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。T状态(时钟周期):CPU处理动作的最小单位。T1T2T3TWT4总线周期3.28086/8088微处理器的引脚

而当系统规模较大时,要求有较强的驱动能力,这样就需要两个获两个以上的微处理器。其中有一个是主处理器8086或8088,其它的处理器称为协处理器,它们协助主处理器工作。例如8088便通过总线控制器8288来形成各种控制信号。如图所示,为8086CPU和8088CPU的引脚信号图。共有40条引脚线,这些引脚线用来输出或接收各种信号:地址线,数据线,控制线和状态线,电源线和定时线。由于8088微处理器是一种准16位机。其内部结构基本上与8086相同,其信号也与8086基本相同,只是有一些引脚的功能有所不同,在这里,我们将以8086为例,具体介绍一下最小模式下和最大模式下各位引脚功能,如出现功能不同的引脚再具体讲解。3.28086/8088微处理器的引脚3.28086/8088微处理器的引脚01020304050607080910111213141516171819204039383736353433323130292827262524232221GNDAD14/A14AD13/A13AD12/A12AD11/A11AD10/A10AD9/A9AD8/A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(5V)AD15/A15A16/S3A17/S4A18/S5A19/S6/BHE/S7HIGH(SS0)MN//MX/RDHOLD(/RQ//GT0)HLDA(/RQ//GT1)/WR(/LOCK)M//IO(/S2)DT//R(/S1)/DEN(/S0)ALE(QS0)/INTA(QS1)/TESTREADYRESET8086/80881、地址/数据总线AD15-AD0:地址/数据复用引脚,双向,三态。(8086)AD15-AD0:16位数据总线D15-D0,与存储器和I/O设备交换数据信息。(8088)AD7-AD0:8位数据总线D7-D0,与存储器和I/O设备交换数据信息。地址/数据总线复用,分时工作。2、地址/状态总线A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态。3.28086/8088微处理器的引脚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当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S5=1,表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。S4、S3:指出当前使用段寄存器的情况。3.28086/8088微处理器的引脚S4、S3组合所对应的段寄存器情况S4S3段寄存器00当前正在使用ES01当前正在使用SS10当前正在使用CS11当前正在使用DS3、控制总线(1)/BHE/S7:高8位数据总线允许/状态复用引脚。在总线周期的T1状态,此引脚输出/BHE信号,表示高8位数据线D15-D8上的数据有效。3.28086/8088微处理器的引脚在T2、T3、TW和T4状态时,此引脚输出S7状态信号。/BHE、A0组合:/BHEA0总线使用情况00从偶地址单元开始,在16位数据总线上进行字传送01从奇地址单元开始,在高8位数据总线上进行字节传送10从偶地址单元开始,在低8位数据总线上进行字节传送11无效S7:8086中无定义。8088中,在最大模式中,为高电平;在最小模式中,输出SS0信号,此信号与其它信号合作将总线周期的读/写动作。3.28086/8088微处理器的引脚(2)/RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。(3)/WR:写信号,三态输出,低电平有效。/WR=0,表示当前CPU正在对存储器或I/O端口进行读操作。(4)M//IO:存储器或IO端口访问信号,三态输出。M//IO=1,表示CPU正在访问存储器;M//IO=0,表示CPU正在访问IO端口。(5)READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。3.28086/8088微处理器的引脚(6)INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。(7)/INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。(8)NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。(9)/TEST:测试信号,输入,低电平有效。当CPU执行WAIT指令时,每隔个时钟周期对/TEST进行一次测试,若/TEST=1,继续等待,直到/TEST=0。3.28086/8088微处理器的引脚(10)RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始执行。(11)ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址/数据总线。(12)DT//R:数据发送/接收控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送方向,DT//R=1,发送数据----写操作;DT//R=0,接收数据--读操作。(13)/DEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。3.28086/8088微处理器的引脚(14)HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(15)HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。(16)MN//MX:工作模式选择信号,输入。MN//MX=1,表示CPU工作在最小模式系统;MN//MX=0,表示CPU工作在最大模式系统。(17)CLK:主时钟信号,输入。8086/8088的时钟频率为5MHz。3.28086/8088微处理器的引脚4、电源线和地线8086/8088采用单+5V,1、20引脚为地线。5、最大模式下的有关引脚(1)QS1、QS2:指令队列状态信号,输出。QS1QS2含义00无操作01将指令首字节送入指令队列10队列为空11将指令其余字节送指令队列3.28086/8088微处理器的引脚(2)S2、S1、S0:总线周期状态信号,三态输出。S2、S1、S0状态信号的编码如下:S2S1S0操作过程产生信号000发中断响应信号/INTA001读I/O端口IORC010写I/O端口IOWC011暂停无100取指令/MRDC101读存储器/MRDC110写存储器/AMWC111无作用无3.28086/8088微处理器的引脚3.28086/8088微处理器的引脚(3)/RQ//GT1、/RQ//GT2:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。(4)/LOCK:总线封锁信号,三态输出,低电平有效。/LOCK=0,CPU不允许其它控制器占用总线。

MN/MXCLKRDREADYWRRESETM/IO8086ALEA19-A16BHEAD15-AD0DENDT/R82828286TOE8284memoryI/O5V20位地址总线(AB)16位数据总线DBREADYRESET控制总线(CB)8086/8088工作在最小模式下的系统配置图

MN/MXA19-A16CLKAD15-AD0READYRESET8086

/S0/S1/S2

82828286TOE8284READYRESET8288825920位地址总线AB控制总线CB8086/8088工作在最大模式下的系统配置图16位数据总线DB3.28086/8088微处理器的引脚8284:时钟发生器。用来给CPU提供工作时钟以及使READY、RESET信号与时钟同步。8282:地址锁存器。用来锁存CPU输出的20位的地址信号。使地址总线与数据总线分开。8286:数据收发器。用来提高数据总线的驱动能力。8288:总线控制器。在最大模式下,产生控制信号。8259:中断控制器。用来扩展中断请求信号数,管理多级中断。一、8086/8088系统存储器的组织8086/8088是16位的微处理器,在组成存储系统时,总是使偶地址单元的数据通过AD0--AD7传送,而奇地址单元的数据通过AD8--AD15传送,所有的操作可以是按字节为单位也可以是按字为单位来处理的,但8086/8088系统中的存储器是以8位(一个字节)为单位对数据进行处理的。因此每个字节用一个唯一的地址码表示,这称为存储器的标准结构。需要说明的是,在存储器中,任何连续存放的两个字节都可以称为一个字。存放时,其低位字节可从奇数地址开始,这种方式称为非规则方式,奇数地址的字称为非规则字。其低位字节可从偶数地址开始,这种方式称为规则方式。将偶数地址的字称为规则字。3.38086/8088系统存储器的组织和堆栈(1)8086存储器的分段结构由于8086/8088有20条地址线,可以寻址多达220(1M)字节,所以把1M字节的存储器分为任意数量的段,其中每一段最多可达寻址216(64K)字节。8086CPU把1M字节的存储器空间划分为任意的一些存储段,一个存储段是存储器中可独立寻址的一个逻辑单位,也称逻辑段,每个段的长度为64K字节。8086CPU中有四段寄存器:CS,DS,SS和ES,这四个段寄存器存放了CPU当前可以寻址的四个段的基址,也即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。一旦这四个段寄存器的内容被设定,就规定了CPU当前可寻址的段。3.38086/8088系统存储器的组织和堆栈(2)8086存储器的逻辑地址和物理地址存储器中的每个存储单元都可以用两个形式的地址来表示:实际地址(或称物理地址)和逻辑地址。实际地址:也称物理地址,是用唯一的20位二进制数所表示的地址,规定了1M字节存储体中某个具体单元的地址。逻辑地址在程序中使用,即段地址:偏移地址。段地址:每个逻辑段起始地址的高16位。偏移地址:某个存储单元相对于该段首地址的差值。偏移地址要根据不同寻址方式计算得到(第4章中将介绍寻址方式)。3.38086/8088系统存储器的组织和堆栈(3)物理地址的形成物理地址有两部分形成:段基址和偏移地址。8086/8088CPU中有一个地址加法器,它将段寄存器提供的段地址自动乘以10H即左移4位,然后与16位的偏移地址相加,并锁存在物理地址锁存器中。如图所示。物理地址=段基址×16(即10H)+偏移地址。段基址:CS、DS、ES、SS。偏移地址:IP、DI、SI、BX、BP、SP等。段寄存器值偏移量+物理地址16位4位16位20位存储器物理地址的计算方法3.38086/8088系统存储器的组织和堆栈3.38086/8088系统存储器的组织和堆栈【例3-1】设某存储单元的段基址为2000H,偏移地址是5678H。写出该单元的逻辑地址、物理地址,以及该单元所在段的首末单元物理地址。

解:该单元的逻辑地址表示为2000H:5678H;

该单元的物理地址是PA=段基址×10H+偏移地址(EA)

=2000H×10H+5678H=25678H;

该单元所在段的首单元地址是:段基址×10H=20000H;

该单元所在段的末单元地址是:段起始地址+FFFFH=2FFFFH。CS0000IP代码段DS或ES0000SI、DI或BXSS0000SP或BP数据段堆栈段存储器段寄存器和偏移地址寄存器组合关系二、堆栈堆栈主要用于暂存数据和在过程调用或处理中断时暂存断点信息。(1)堆栈的概念堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。采用“先进后出”的规则。(2)堆栈的组织堆栈指示器SP,它总是指向堆栈的栈顶存储单元,堆栈的伸展方向既可以从大地址向小地址,也可以从小地址向大地址。8086/8088的堆栈的伸展方向是从大地址向小地址。3.38086/8088系统存储器的组织和堆栈【例3-2】设SS=3000H,SP=2000H,DX=5678H。将DX内容压入堆栈,及将堆栈内容弹出到SI和DI。堆栈操作前的栈顶地址进栈操作示意图出栈操作示意图在微机系统中,CPU是在时钟信号CLK控制下,按节拍有序地执行指令序列。从取指令开始,经过分析指令、对操作数寻址,然后执行指令、保存操作结果,这个过程称为指令执行周期。指令周期:执行一条指令所需要的时间。总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。T状态(时钟周期):CPU处理动作的最小单位。T1T2T3TWT4总线周期3.48086总线的操作时序一、8086的时序8086的总线时序包括以下一个部分:(1)系统复位。(2)存储器或I/O读操作。(3)存储器或I/O写操作。(4)中断响应操作。(5)总线保持请求/响应操作。(6)空闲周期。3.48086总线的操作时序总线操作总线读操作:CPU从存储器或外设读取数据。总线写操作:CPU将数据写入存储器或外设。1、存储器读周期总线周期包括:T1、T2、T3、(TW)、T4时钟周期。(1)T1周期

M//IO信号:从存储器读还是从I/O设备中读数据;

AD15-AD0、A19/S7-A16/S3:确定20位地址;

/BHE:选择奇地址存储体选择。

ALE:地址锁存信号,以使地址/数据线分开。3.48086总线的操作时序(2)T2状态

A19/S6-A16/S3:出现S6-S3状态信号。决定段寄存器、IF状态、8086CPU不否连在总线上。

AD15-AD0:高阻状态。

/RD:由高电平变为低电平,开始进行读操作。

/DEN:变低电平,启动收发器8268,做好接收数据的准备。(3)T3状态若存储器或I/O端口已做好发送数据准备,则在T3状态期间将数据放到数据总线上,在T3结束时,CPU从AD15-AD0上读取数据。3.48086总线的操作时序(4)TW状态在T3状态,存储器或外设没有准备好数据,不能在T3状态将数据放到总线上,使READY=0,则CPU在T3和T4之间插入一个或几个TW状态,直到数据准备好READY=1为止。

TW状态时总线的动作与T3时相同。(5)T4状态CPU对数据总线进行采样,读出数据。CPU从存储器或I/O设备读数据的时序如下页所示:3.48086总线的操作时序CLKT1T2T3、TWT4M//IOA19/S6-A16/S3A19-A16/BHE/S7/BHES7-S3ALEREADYAD15-AD0地址输出数据输入/RDDT//R/DENCPU从存储器或I/O端口读取数据的时序2、存储器写周期(1)T1状态

M//IO信号:对存储器写还是对I/O设备中写数据;

AD15-AD0、A19/S7-A16/S3:确定20位地址;

/BHE:选择奇地址存储体。

ALE:地址锁存信号,以使地址/数据线分开。

DT//R:为高电平,指示收发器8286发送数据,写操作。(2)T2状态

A19/S6-A16/S3:出现S6-S3状态信号。决定段寄存器、IF状态、8086CPU不否连在总线上。3.48086总线的操作时序AD15-AD0:发出16位数据。

/WR:由高电平变为低电平,开始进行写操作。

/DEN:变低电平,启动收发器8268,做好发送数据的准备。(3)T3状态若存储器或I/O端口已做好接收数据准备,则在T3状态期间将数据放到数据总线上,在T3结束时,CPU将AD15-AD0上数据写入到存储器或I/O设备中。(4)TW状态在T3状态,存储器或外设没有准备好接收数据,使READY=0,则CPU在T3和T4之间插入一个或几个TW状态,直到设备准备好READY=1为止。3.48086总线的操作时序(5)T4状态在T4状态,数据从数据总线上被撤除,各种控制信号和状态信号进入无效状态,CPU完成了对存储器或I/O设备的写操作。3、输入/输出周期8086与外设通讯,也即从外设输入数据,或把数据输出给外设的时序,与CPU同存储器之间的通讯时序,几乎完全相同,只是M//IO信号应为低电平。4、空转周期8086只有在CPU于存储器或外设要传送指令或操作时,才能执行如上所述的总线周期,若CPU不执行总线周期,则总线接口执行空转操作。3.48086总线的操作时序CLKT1T2T3、TWT4M//IOA19/S6-A16/S3A19-A16/BHE/S7/BHES7-S3ALEREADYAD15-AD0地址输出数据输出/WRDT//R/DENCPU往存储器或I/O端口写数据的时序5、中断响应周期中断响应周期:从CPU中止现行程序转中断服务程序这一过程。中断响应周期要用两个总线周期。第一个响应周期:使AD15-AD0、/BHE/S7、A19/S6-A16/S3悬空。第二个响应周期:外设向数据总线上输送一个字节的中断类型号。每一响应周期的T1状态输出一个高电平脉冲,作为地址锁存信号。3.48086总线的操作时序CLKT1T2T3T4T1T2T3T4第一中断响应周期第二中断响应周

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论