《微机原理与接口技术微处理器.pptx》由会员分享,可在线阅读,更多相关《微机原理与接口技术微处理器.pptx(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、8086 CPU按功能可分为两大部分:一部分为BIU(BUS Interface Unit)专门负责取指令和存取操作数。它与BUS打交道。一部分为EU(Execution Unit)专门负责分析指令与执行指令。它不与系统BUS打交道。第1页/共79页第2页/共79页1.EUEU单元负责指令的执行,由算术逻辑单元ALU、标志寄存器F、通用寄存器及EU控制器等组成,主要进行16位的各种运算及有效地址的计算。EU不与计算机系统总线(外部总线)相关,而从BIU中的指令队列取得指令。这个指令队列中,存放着BIU预先由存储器中取出的若干个字节的指令(8088为4个字节,8086为6个字节长队列)。第3页/
2、共79页1)执行单元EU数据寄存器 AX、BX、CX、DX专用寄存器 SP、BP、SI、DI标志寄存FLAG算数逻辑部件 ALUEU控制逻辑单元执行部分执行部分控制电路控制电路ALU标志寄存器标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用通用寄存寄存器器执行部件执行部件(EU)16位位8位位第4页/共79页8088CPU的内部寄存器 8088CPU内部共有14个16位的寄存器,其中包括4个16位的数据寄存器AX、BX、CX、DX;2个16位的指针寄存器SP、BP;2个16位的变址寄存器SI、DI;2个16位的控制寄存器IP、F及4个16位的段寄存器CS、DS、ES、SS,如图2
3、.1所示。第5页/共79页第6页/共79页 1.通用寄存器组 通用寄存器组包括4个数据寄存器AX、BX、CX、DX;2个指针寄存器SP、BP及2个变址寄存器SI、DI。4个数据寄存器用来存放16位数据,也可以将每个数据寄存器分为2个8位的寄存器,用于存放8位数据。此时,AX可分为AH及AL;BX可分为BH及BL;CX分为CH及CL;DX分为DH及DL,它们可作为8位寄存器单独使用。这样既可以进行16位的算术运算和逻辑运算,也可以进行8位的算术运算和逻辑运算,这是8088指令系统的一个特点。第7页/共79页两个指针寄存器中的SP是堆栈指针寄存器,它和堆栈段寄存器一起就可以确定堆栈在内存中的位置。
4、BP是基数指针寄存器,通常用来存放基地址,使得8088的寻址更加灵活。两个变址寄存器:SI是源变址寄存器,DI是目的变址寄存器,均用于指令的变址寻址。SI通常指向源操作数,而DI通常指向目的操作数。第8页/共79页不仅4个数据寄存器可以任意参加算术运算和逻辑运算,而且BP,SP,SI,DI也可以任意参加算术运算和逻辑运算,因而称以上寄存器为通用寄存器。第9页/共79页 为了充分地利用这些通用寄存器,在某些指令中又对其中的寄存器作了特殊的约定,使这些寄存器在通用的基础上附加了一点特殊性。这些特殊的约定虽然增加了掌握指令的难度,但是当学完指令系统后会发现,这点难度是不大的,是容易克服的。第10页/
5、共79页 例如,虽然通用寄存器都可作为累加器使用,但在某些算术运算中(如乘法运算、除法运算、十进制调整等),还是指定了以AX作为累加器,这就使AX与其它的通用寄存器有所区别,因而在8088中,把AX称为累加器。由于在变址寻址中,指定BX为基址寄存器,因此,BX便被称为基址寄存器。第11页/共79页 在循环控制或重复操作的指令中,常把循环或重复的次数放在CX或CL中,因而称CX为计数寄存器。在乘法、除法中,乘积或被除数超过16位时,总是用DX与AX存放,故DX便被称为数据寄存器。第12页/共79页 对于SI和DI寄存器也有类似的情况,即在专用的串操作指令中,指定SI作为源串的地址指针,DI作为目
6、标串的地址指针,并在串指令执行时,自动地改变SI或DI的值,因而称SI、DI为变址寄存器。第13页/共79页 SP作为堆栈栈顶元素的指针,不能指向栈顶以外的元素,为此,增加了一个基址指针寄存器BP,使它可以指向由SS作为堆栈段基址的栈中的任意位置。BP与SP具有不同的概念和用途,我们要注意将它们区别开来。第14页/共79页2.专用寄存器组 专用寄存器组包括作为控制寄存器使用的指令指针寄存器IP和状态标志寄存器F,此外还有4个用于实现1MB存储器寻址的段寄存器CS、DS、SS、ES。以上寄存器都是16位的寄存器。8088指令中给出的地址最多只有16位,而与寻址有关的寄存器也是16位的,由于16位
7、地址最多只能寻址64KB。第15页/共79页 4个段基地址CS、DS、ES、SS仅仅指出了段从哪个地址开始,但还不能决定正在使用的具体的存储单元的地址,因此我们把正在使用的存储单元的地址与所在段的基地址的偏移量称为段内偏移量或者称为有效地址EA,真正的物理地址是由段寄存器值左移4位与段内偏移量相加后的结果,如图2.2所示。第16页/共79页第17页/共79页例如取指令时,CS值为2000H,而IP值为3500H,则被取指令的物理地址为:20000H CS左移4位 )3500H 段偏移 23500H 物理地址 又如SS值为7900H,已知栈顶元素的物理地址为7B450H,则堆栈指针SP的值为:7
8、B450H )79000H 2450H 即SP值为2450H.第18页/共79页 1MB是16个64KB存储器的总和,但这并不意味着1MB只能包括16个逻辑段。因为这些段既可以首尾相连,可以相互间隔开。也可以相互重叠或者部分重叠,只要不影响程序的正常执行(例如不会取错指令或数据等)即行,所以,逻辑段个数可能多于16个也可能少于16个。第19页/共79页 此外,段寄存器如何与偏移量形成相应的物理地址,这在8088中有个基本约定。正常情况下一般按这个基本约定形成所需的物理地址,但也允许有特例情况,被称为段超越,即不用约定的段基址,而是用可修改的段基址与某偏移量来形成所需的物理地址,见表2.1。第2
9、0页/共79页表2.1段寄存器使用约定第21页/共79页 专用寄存器组中的指令寄存器IP只能与CS寄存器相互结合,才能形成指令的真正的物理地址。第22页/共79页执行单元EU的组成1:标志寄存FlagODITSZAPC第23页/共79页标志寄存器F则用来反映系统的状态及指令执行的结果,8088的F使用了9个标志位,各位有不同的意义,如图2.3所示。第24页/共79页(1)进位标志CF 当指令执行的结果在最高位出现进位或借位时,CF1;否则CF0。8088中,字节操作的最高位为D7;字操作的最高位为D15。在执行加、减、比较、移位等指令时,将根据结果改变CF标志位的状态。(2)奇偶标志PF 当指
10、令执行的结果中1的个数为偶数时,PF1;否则PF0。在执行逻辑运算的指令时,将根据结果改变PF标志位的状态。第25页/共79页(3)辅助进位标志AF 当指令执行的结果,若低半字节(低4位)向高半字节进位或借位时,AF1;否则AF0。该标志常用于十进制数运算结果的调整,以得到十进制的结果。(4)零标志位ZF 当指令执行的结果为0时,ZF1;否则ZF0。第26页/共79页(5)符号标志位SF 当运算结果的最高位(字节操作时为D7位,字操作时为D15位)为1时,SF1;否则SF0。因SF与结果的最高位一致,故可用SF值反映结果是正或负。OF溢出标志:当补码运算有溢出时,OF为1;否则为0。第27页/
11、共79页1)所有的逻辑/算术运算2)计算16位的偏移地址送到BIU,以形成 20 位的物理地址,以便对 1 兆空间的存储器寻址。3)影响标志位Flag执行单元EU的组成2:算数逻辑部件ALU第28页/共79页EU控制逻辑单元8086CPU的中心控制单元,是控制定时与状态逻辑电路。接受指令队列缓冲器送来的指令代码,用于控制执单元中各部件按制定的要求协调工作。第29页/共79页总线接口BIU段寄存器段寄存器CS、DS、ES、SS地址加法器地址加法器指令指针寄存器指令指针寄存器IP指令队列指令队列总线控制逻辑总线控制逻辑内部暂存器内部暂存器IPESSSDSCS输入输入/输出输出控制电路控制电路外外部
12、部总总线线123456地址地址加法加法器器指令队列缓冲器指令队列缓冲器总线接口部件总线接口部件(BIU)20位位16位位8位位第30页/共79页2.BIU BIU单元用来实现EU的所有总线操作。它由地址加法器,段寄存器CS、DS、SS、ES,指令指针IP,指令队列缓冲器和总线控制逻辑组成。BIU负责CPU与存储器或外部设备之间的信息交换。第31页/共79页 将取指令部分和执行指令部分分开的好处是,在EU执行指令的过程中,BIU可以取出多条指令放入指令流队列中。当EU执行完一条指令后,就可以立即执行下一条指令,从而减少了CPU为取指令而等待的时间,提高了运算的速度。这是8088CPU的一大优点。
13、第32页/共79页段寄存器CS、DS、ES、SSBIU的组成1:1:段寄存器第33页/共79页BIU的组成2:2:地址加法器第34页/共79页BIU的组成3:指令指针寄存器 IPIP(Instruction Pointer):为16位,终始保持着EU要执行的下一条指令的偏移地址(其值自动增加),不能用指令直接修改,但可以用间接方法修改(例如:中断,返回,转移,调用等等)。第35页/共79页BIU的组成4:指令队列(缓冲器)指令队列缓冲器由6个8位(80866个,80884个)的FIFO寄存器构成,其工作流程如下:(1)BIU中的指令队列有2个或2个以上字节为空时,BIU自动启动总线周期,取指填
14、充指令队列。直至队列满,进入空闲状态。(2)EU每执行完一条指令,从指令队列队首取指。系统初始化后,指令队列为空,EU等待BIU从内存取指,填充指令队列。第36页/共79页(3)EU取得指令,译码并执行指令。若指令需要取操作数或存操作结果,需访问存储器或I/O,EU向BIU发出访问总线请求。(4)当BIU接到EU的总线请求,若正忙(正在执行取指总线周期),则必须等待BIU执行完当前的总线周期,方能响应EU请求;若BIU空闲,则立即执行EU申请总线的请求。(5)EU执行转移、调用和返回指令时,若下一条指令不在指令队列中,则队列被自动清除,BIU根据本条指令执行情况重新取指和填充指令队列。第37页
15、/共79页BIU的组成5 5:总线控制逻辑 提供系统总线的控制信号,实现数据、地址和状态信息的分时传送。由于8086/8088仅有40pin,而16位的DB 及20位的AB若分离设置的话将占用36pin,故8086采取了AB/DB分时复用的方法,但这样增加了总线控制的复杂程度.第38页/共79页第39页/共79页BIU:BIU:负责与存储器接口,即80888088与存储器之间的信息传送 EU:EU:负责指令的执行。将CPUCPU分为两个单元,可以使取指令和执行指令同时进行,减少了CPUCPU为取指令而等待的时间,从而提高了CPUCPU的利用率,提高了系统的运行速度。第40页/共79页8088与
16、8086微处理器的差别1.结构区别 8086的指令队列长度为6个字节,当队列空闲两个字节时,BIU自动从存储器取出指令字节,存入指令队列中;而8088的指令队列为4个字节长,当队列空闲一个字节时,BIU就自动取指令字节,并存到指令队列中去。第41页/共79页2.端脚上的区别 8088对外数据总线为8位,故仅分时复用地址线的低8位,即AD0AD7这8条为地址/数据线。A8A15专门用于地址线。8086对外数据总线为16位,故与16位的地址线分时复用,即AD0AD15这16条均为地址/数据线。第42页/共79页2.8086引脚功能和工作模式(1)、8086的引脚说明第43页/共79页8086/80
17、88的引脚信号 8086/8088芯片的各类信号线包括20根地址线,8根(8088)或16根(8086)数据线及控制线、状态线、时钟、电源和地线等。总数大大超过了40根线。因此,为满足封装的要求,必须采用一线多用的办法。8086/8088引脚定义的方法大致可以分为五类。第44页/共79页 第一类的每个引脚只传送一种信息。例如,第32脚只传送CPU发出的读信号 第二类的每个引脚电平的高低代表不同的信号,例如 第45页/共79页 第三类引脚在8086/8088的两种不同工作方式最小模式和最大模式下有不同的名称和定义。例如:第29脚为 。当8086/8088工作在最小模式时,该引脚传送CPU发出的写
18、信号 ,而当8086/8088工作在最大模式时,该引脚传送的是括号内的信号 即总线锁定信号。第46页/共79页 第四类的每个引脚可以传送两种信息。这两种信息在时间上是可以分开的。因此可以用一个引脚在不同时刻传送不同的信息,一般称这类引脚为分时复用线。例如,AD7_AD0是地址和数据的分时 复用线。当CPU访问内存或I/O设备时,在AD7_AD0上首先出现的是被访问的内存单元或I/O设备某端口的地址信息的低8位。然后,在这些线上就出现CPU进行读写的8位数据。第47页/共79页 第五类引脚在输入和输出时分别传送不同的信息,如 。输入时传送总线请求信号 ,输出时传送总线请求允许信号 。第48页/共
19、79页3.8086的两种工作方式1)两种工作方式:最大方式和最小方式2)如何设定工作方式:MN/MX 接到+5V即为最小方式3)两种工作方式的主要特点:最小方式:当所连的存储器容量不大,I/O端口不多时。系统的地址总线CPU的AD0AD7,A8A15,A15A19通过地址锁存器8282构成。系统的数据总线直接由AD0AD7提供,或通过数据收发器8286供给。系统的控制总线直接由CPU的控制线供给。第49页/共79页最大方式当要构成的系统较大,要求较强的驱动能力时。系统的地址总线CPU的AD0AD7,A8A15,A15A19通过地址锁存器8282构成。系统的数据总线或通过数据收发器8286供给。
20、系统的控制总线通过总线控制器8288供给。两种组态通过两种组态通过80888088引脚信号引脚信号决定。决定。第50页/共79页最小方式下的引脚说明地址/数据(或状态)信号 l AD15AD0(AddressDataBus):地地址址/数数据据复复用用信信号号,双双向向,三三态态。在在T1状状态态(地地址址周周期期)AD15AD0上上为为地地址址信信号号的的低低16位位A15A0;在在T2T3状状态态(数数据据周周期期)AD15AD0上是数据信号上是数据信号D15D0。l lA19/S6A16/S3(Address/Status):地地址址/状状态态复复用用信信号号,输输出出。在在总总周周期期
21、的的T1状状态态A19/S6A16/S3上上是是地地址址的的高高4位位。在在T2T4状态,状态,A19/S6A16/S3上输出状态信息。上输出状态信息。l l(BusHighEnable/Status):数数据据总总线线高高8位位使使能能和和状状态态复复用用信信号号,输输出出。在在总总线线周周期期T1状状态态有有效效,表表示示数数据据线线上上高高8位位数数据据有有效效。在在T2T4状状态态输输出出状状态态信息信息S7。S7在在8086中未定义。中未定义。第51页/共79页第52页/共79页S4S3当前正在使用的段寄存器00ES01SS10CS或未使用任何段寄存器11DSS5-表示中断允许标志表
22、示中断允许标志IF的状态的状态S6-始终保持低电平始终保持低电平 l l第53页/共79页 lALE(AddressLatchEnable):地地址址锁锁存存使使能能信信号号,输输出出,高有效。用来作为地址锁存器的锁存控制信号。高有效。用来作为地址锁存器的锁存控制信号。l l(DataEnable):数数据据使使能能信信号号,输输出出,三三态态,低低电电平有效。用于数据总线驱动器的控制信号。平有效。用于数据总线驱动器的控制信号。l l(DataTransmit/Receive):数数据据驱驱动动器器数数据据流流向向控控制制信信号号,输输出出,三三态态。在在8086系系统统中中,通通常常采采用用
23、8286或或8287作作为为数数据据总总线线的的驱驱动动器器,用用信信号号来来控控制制数数据据驱驱动动器器的的数数据据传传送送方方向向。当当1时时,进进行行数数据据发发送送;0时时,进进行行数数据接收。据接收。控制与系统信号第54页/共79页第55页/共79页第56页/共79页第57页/共79页第58页/共79页第59页/共79页(DataEnable):数据使能信号,输出,三态,低电平有效。用于数据总线驱动器的控制信号。(DataTransmit/Receive):数据驱动器数据流向控制信号,输出,三态。在8086系统中,通常采用8286或8287作为数据总线的驱动器,用信号来控制数据驱动器
24、的数据传送方向。当1时,进行数据发送;0时,进行数据接收。第60页/共79页第61页/共79页第62页/共79页 l(Memory/InputandOutput):存存储储器器或或I/O控控制制信信号号(标标号号28),输输出出,三三态态。输输出出为为高高电电平平时时表表示示和和存存储储器器之之间间数数据据交交互互;如如果果为为低低电电平平,表表示示CPU和和I/O接口之间数据传输。接口之间数据传输。l l(Read):读读信信号号,输输出出,三三态态。信信号号有有效效,表表示示CPU执执行行一一个个对对存存储储器器或或I/O端端口口的的读读操操作作,在在一一个个读读操操作作的的总总线线周周期
25、期中中,在在T2T3状状态态中中有有效效,为为低电平。低电平。l l(Write):写写信信号号,输输出出,三三态态。信信号号有有效效,表表示示CPU执执行行一一个个对对存存储储器器或或I/O端端口口写写操操作作,在在写写操操作总线周期中,作总线周期中,在在T2T3状态中有效,为低电平。状态中有效,为低电平。第63页/共79页第64页/共79页lNMI(Non-MaskableInterrupt):非非屏屏蔽蔽中中断断请请求求(中中断断类类型型号号为为2),输输入入,上上升升沿沿有有效效。NMI不受中断允许标志的影响。不受中断允许标志的影响。l lINTR(Interrupt Request)
26、:可可屏屏蔽蔽中中断断请请求求,输输入入,高高电电平平有有效效。如如果果INTR信信号号有有效效,CPU是是否否响响应应中中断断请请求求,受受控控于于中中断断允允许标志许标志IF。第65页/共79页l lHOLD(HoldRequest):总总线线保保持持请请求求,输输入入,高高电电平平有有效效。当当系系统统中中总总线线主主模模块块(如如DMA)要要求求使使用用总总线线时时,由由该该模模块块向向CPU发送发送HOLD信号。信号。l lHLDA:总总线线保保持持响响应应信信号号,输输出出,高高电电平平有有效效。HLDA有有效效时时表表示示CPU响响应应了了其其他他总总线线主主的的总总线线请请求求
27、。CPU的的数数据据/地地址址控控制制信信号号呈呈高高阻阻态态,而而请请求求总总线线的的总总线线主主(DMA)获获得得了总线权。了总线权。第66页/共79页 lCLK(Clock):时钟信号,输入。为CPU和总线控制逻辑提供定时。要求时钟信号的占空比为33。lRESET(Reset):复位信号,输入,高电平有效。复位信号有效时,CPU结束当前操作并对标志寄存器FLAG、IP、DS、SS、ES及指令队列清零,并将CS设置为FFFFH。当复位信号撤除时,(即电平由高变低时)CPU从FFFF0H开始执行程序。lREADY(Ready):准备好信号,输入,高电平有效。当READY信号有效时表示存储器或
28、I/O准备好发送或接收数据。第67页/共79页系统的复位和启动操作 RESET:4个时钟周期的高电平,初次加电复位,不小于50s的高电平。标志寄存器清零CS寄存器FFFFHDS寄存器0000HSS寄存器0000HES寄存器0000H指令指针(IP)0000H指令队列空其他0000H第68页/共79页l(Minimum/MaximumModeControl):最大最小模式控制信号,输入。决定8086工作在哪种工作模式。如果1(5V),CPU工作在最小模式。0(接地),CPU则工作在最大模式。l(Test):测试信号,输入,低电平有效。和WAIT指令结合起来使用,在CPU执行WAIT指令时,CPU
29、处于空转状态,进行等待。当8086检测到信号有效时,等待状态结束,继续执行WAIT之后的指令。lGND为地。lVCC为电源,接5V。第69页/共79页 最小方式的系统组成最小模式的典型配置第70页/共79页 最大方式与最小方式的引脚差异 lQS1、QS0(Instruction Queue Status,最最小小模模式式为为ALE、INTA#):指指令令队队列列状状态态信信号号,输输出出。QS1,QS0组组合合起起来来表表示示前前一一个个时时钟钟周周期期中中指指令令队队列列的的状状态态,以以便便从从外外部部对芯片的测试。对芯片的测试。l lS2#、S1#、S0#(BusCycleStatus,
30、最最小小模模式式为为M/IO#、D/TR#、DEN#):总总线线周周期期状状态态信信号号,输输出出。这这三三个个信信号号的的组组合合表表示示当当前前总总线线周周期期的的类类型型。在在最最大大模模式式下下,由由这这三三个个信信号号输输入入给给总总线线控控制制器器8288,用用来来产产生生存存储储器器、I/O的的读读写等相关控制信号。写等相关控制信号。第71页/共79页 第72页/共79页 第73页/共79页第74页/共79页lLOCK#(Lock,最最小小模模式式为为WR#):总总线线封封锁锁信信号号,输输出出。当当LOCK#为为低低电电平平时时,系系统统中中其其他他总总线线主主就就不不能能占占
31、用用总总线线。LOCK#信信号号是是由由指指令令前前缀缀LOCK产产生生的的。在在LOCK前前缀缀后后的的指指令执行完之后,硬件上便撤销了令执行完之后,硬件上便撤销了LOCK#信号。信号。l lRQ#/GT1#、RQ#/GT0#(Request/Grant,最最 小小 模模 式式 为为HOLD、HLDA):总总线线请请求求信信号号,输输入入/总总线线请请求求允允许许信信号号,输输出出,此此信信号号为为双双向向信信号号。CPU以以外外的的处处理理器器可可以以用用其其中中之之一一来来请请求求总总线线并并接接受受CPU对对总总线线请请求求的的回回答答。RQ#/GT0#优优先先级级高于高于RQ#/GT1#。第75页/共79页 最大方式的系统组成最大模式的典型配置第76页/共79页8288总线控制器结构框图最大方式的系统组成:总线控制器 8288第77页/共79页小结1.重点掌握8086/8088地址和数据线的特点。2.重要的控制线:NMI,INTR,MEMR,MEMW,IOR,IOW线的含义。第78页/共79页感谢您的观看!第79页/共79页
限制150内