《微机原理8086微处理器ppt课件.ppt》由会员分享,可在线阅读,更多相关《微机原理8086微处理器ppt课件.ppt(93页珍藏版)》请在三一办公上搜索。
1、第二章 8086微处理器,前面我们介绍了几家公司不同种类微处理器,不同的微处理器具有不同的结构、功能、指令系统,有的差别还比较大。但它们的工作原理有许多相似的地方,尤其是外围接口电路基本相同。8086是一种典型的微处理器,掌握了这种微处理器后,再去理解其他的微处理器就会容易得多。而且不同的微处理器的外围接口电路基本相同、系统扩展方法也基本相同。,Intel公司从8086开始,开发了一系列的个人电脑用微处理器。比较典型的有:8086/8088:16bit、1Mbytes80286: 16bit、16Mbytes80386DX: 32bit、4Gbytes 80486DX4: 32bit、4G+1
2、6K cachePentium: 64bit、4G+16K cachePentium II: 64bit、64G+32K L1cache+512K L2 cache,微处理器在系统中的地位:,8086/8088:,1. 电源:+5V、GND 2. 主频:5M, 8086-1(10M), 8086-2(8M) 3. 数据总线(字长):8086(D0-D15) 8088 (D0-D7) 4. 地址总线:A0-A19 5. 工作温度:8086 (0-70, 360mA), 80C86(-40105,10mA),2.1 8086的编程结构,所谓编程结构,就是指从程序设计员和使用者的角度看到的结构,并非
3、芯片内部的物理结构或实际布局。8086编程结构从功能上分为彼此独立又相互关联的两个部分:BIU(Bus Interface Unit): 总线接口部件EU(Execution Unit): 执行部件,2.1.1 总线接口部件,总线接口部件负责与存储器(ROM、RAM)、I/O端口之间传送数据:从内存取指令送到指令队列;配合执行部件从指定的内存单元或外设接口中取数据,再传送到EU;或将EU的操作结果传送到指定的内存单元或外设接口。,总线接口部件的组成:段寄存器(4)CS(Code Segment)-代码段寄存器DS(Data Segment)-数据段寄存器ES(Extra Segment)-附加
4、段寄存器SS(Stack Segment)-堆栈段寄存器16位的指令指针寄存器:IP(Instruction Pointer)20位的地址加法器6(4)字节的指令队列缓冲器,8086、8088CPU中6(4)字节指令队列缓冲器EU执行指令和BIU取指令同时进行当遇到转移指令之类的指令时, 降低效率,16位的指令指针寄存器:IP(Instruction Pointer)和代码段寄存器(CS)一起指向当前正在执行的指令的下一条指令的入口地址,例: MOVAX,1200H;3字节 MOVBX,2000H;4字节 ADDAX,BX ;2字节20位地址加法器,BIU的具体工作:从内存中取指令到指令队列,
5、MOV AX,1200H形成指令中源操作数和目标操作数的地址从相应的地址单元取得参与操作的数据将数据送往EU将EU产生的结果送往相应的地址单元,2.1.2 执行部件,功能:负责指令的执行,如算术运算、逻辑运算;组成:4个通用寄存器:AX、BX、CX、DX高低八位(AH,AL; BH,BL; CH,CL; DH,DL)累加器AX4个专用寄存器:基数指针寄存器BP(base pointer)堆栈指针寄存器SP(stack pointer)源变址寄存器 SI(source index)目的变址寄存器DI(destination index),算术逻辑单元(arithmetic logic unit)
6、 ,主要是加法器,绝大部分指令的执行都是由加法器完成标志寄存器:标志寄存器共有16位,其中7位未用,所用的各位含义如下:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,根据功能,8086的标志可以分为两类: 1. 状态标志:SF、ZF、PF、CF、AF和OF 表明前面运算后,算术逻辑部件所处的状态为后续操作提供影响或依据,不同的指令影响不同的标志,有些指令不影响任何标志。 符号标志SF(sign flag ) 零标志ZF(zero flag) 奇偶标志PF(parity flag) :低8位含1 进位标志CF(carry flag) 辅助进位标志AF(auxilia
7、ry carry flag) 溢出标志OF(overflow flag),举例: 0010 0011 0100 0101 + 0011 0010 0001 1001 0101 0100 0011 1001 + 0100 0101 0110 1010,2. 控制标志有3个,即 方向标志DF(direction flag) 中断允许标志IF(interrupt enable flag) 跟踪标志TF(trap flag)又称为单步标志,2.1.3 总线接口部件和执行部件的动作管理,每当8086指令队列中有二(1)个字节空,BIU就会自动取指令,使得指令队列总有指令储备而不必等待EU从指令队列前部取
8、出指令,用几个时钟周期去执行。在执行过程中,如果必须访问存储器或I/O设备, 则EU请求BIU进入总线周期去访问存储器或I/O设备。BIU空闲,立即进入总线周期BIU忙,取指令总线周期结束在响应,当指令队列满,而EU又未要求BIU访问总线,则BIU空闲;当执行转移指令、调用指令、返回指令等指令时,指令队列被清除,重新填充指令队列;,2.1.4 8086的总线周期,从前面所讲内容可知,所有和存储器、I/O设备之间联系的工作均由BIU完成,而EU只负责执行。而BIU和存储器、I/O设备之间联系都是通过总线进行的。这个过程就是总线周期,总线周期可取指令、也可传送数据。8086/8088中,一个基本的
9、总线周期由4个时钟周期组成。习惯上称为4个状态,即T1、T2、T3、T4状态。主频决定时钟周期,典型的8086总线周期,2.2 8086的引脚信号和工作模式,2.2.1最小模式和最大模式的概念 (1)最小模式: 在系统中只有一个微处理器,所有总线控制信号都直接由8086产生,系统中的总线控制电路可见到最少,所以叫最小模式; (2)最大模式: 两个或多个微处理器(主处理器、协处理器,如:8087、8089),2.2.2 8086/8088的引脚信号和功能,引脚功能,GND、VccAD15AD0(Address Data Bus):地址数据复用线,双向工作。A19/S6A16/S3:地址状态复用线
10、BHE/S7(Bus High Enable/Status):高八位数据允许/状态复用线NMI(Non Maskable Interrupt):非屏蔽中断输入线INTR(Interrupt Request):可屏蔽中断输入线,RD(Read): 读信号输出CLK(Clock): 时钟输入RESET(Reset): 复位信号输入READY(Ready): “准备好”信号输入TEST(Test): 测试信号输入MN/MX(Minimum/Maxmum Mode Control): 最小/最大模式控制信号输入,1. GND、Vcc,地、电源,GNG: P1-P20Vcc:P40-+5V芯片电压等级:
11、+5v、3.3v、1.8v、1.0v集成电路制造工艺:0 . 50m 工艺0 . 35 m 工艺0 . 25 m 工艺0 . 18 m 工艺0 . 13 m 工艺0 . 09 m 工艺(当前Intel Pentium 4工艺)0 . 065 m 工艺,8086/8088 引脚的扇出能力,Table lists some of the more common logic families and the recommended fan-out from the 8086/8088. The best choice of component types for the connection to
12、an 8086/8088 output pin is a LS,74ALS,or 74HC logic component. Note that some of the fan-out currents calculate to more than 10 unit loads. It is therefore recommended that if a fan-out of more than 10 unit loads is required, the system should be buffered.,2.AD15AD0: 地址数据复用线,地址数据复用: T1: 输出要访问的存储器或I/
13、O端口地址T2、T3: 读周期浮空,写周期传数据8086中常将AD0作低8位数据选通信号:CPU和偶地址交换数据时,T1状态,AD0=0CPU的传输特性决定只要和偶地址交换数据,必定通过AD7-AD0传送数据。因此,T1状态AD0=0表明CPU将用低八位和偶地址交换数据,所以,AD0可用作数据总线低八位上的外围接口芯片的选通信号。,3. BHE/S7: 高八位数据总线允许/状态复用,T1状态:8086输出BHE信号,表示D15-D8数据有效。用作数据总线高八位上的外围接口芯片的选通信号。T2、T3、T4、Tw状态:输出S7状态, 但8086、8086-1、8086-2中未定义。,8088、80
14、86的存储器结构,BHE和A0的组合和对应操作,4. A19/S6-A16/S3: 地址/状态复用,T1: 输出地址最高4位;T2、T3、Tw、T4: 输出状态信息S6:0表示8086/8088当前与总线相连(=0)S5:表明中断允许标志的当前设置,1(IF=1,允许),0(IF=0,不允许)S4、S3:指明当前正在使用的段寄存器,5. NMI: 非屏蔽中断,非屏蔽中断是一个由低到高的上升沿不受IF影响,不能用软件屏蔽每当NMI有正沿触发,CPU就在结束当前指令后,执行INT 2 中断服务程序,6. INTR: 可屏蔽中断请求,可屏蔽中断请求信号高电平有效每个总线周期的T4采样INTR引脚若I
15、F=1、INTR=1, 则CPU就在结束当前指令后,执行相应中断服务程序,7. RD: 读信号输出,T2、T3、Tw:低电平指出将要执行一个对内存或I/O端口的读操作RD连接存储器或I/O端口的RD到底是读内存还是I/O端口,取决于M/IO信号,8. CLK时钟输入,8086、8088要求时钟信号占空比33%,即1/3高电平,2/3低电平8088/8086:5MHz8086-1:10MHz8086-2:8MHzCLK为CPU和总线控制逻辑电路提供定时节拍,9. RESET:复位信号输入,高电平复位要求至少4个时钟周期的高电平复位结束后,IP、DS、SS、ES及指令队列清零,CS=FFFFH,1
16、0. READY: 准备好信号输入,由所访问的存储器或I/O设备发给CPU的高电平表明存储器或I/O设备准备好,可以进行一次数据传输T3开始采样,若READY=0则插入Tw, Tw再采样该信号,继续T3或Tw采到READY=1, 则进入T4状态,结束数据传输过程,从而结束该总线周期,11. TEST测试信号输入,TEST信号和WAIT指令结合使用WAIT指令用来使CPU与外部硬件同步,12. MN/MX:最小/最大模式控制信号输入,+5V = MN: 系统中的总线控制电路被减到最少GNG = MX:相对最小模式而言,2.2.3 最小模式,1. INTA(Interrupt Acknowlege
17、)中断响应信号输出,用来对外设的中断请求(INTR)作出响应连续两个周期的负脉冲(T2、T3、Tw)第一个负脉冲通知外设,它发出的中断请求已经得到允许外设接到第二个负脉冲,则往数据线(D7-D0)上放中断类型码,CPU得到中断类型码,2. ALE(Address Latch Enable)地址锁存允许信号输出,地址锁存器8282/373将ALE作为锁存信号,对地址进行锁存,便于地址/数据复用T1状态,ALE输出有效电平,锁存AD15-AD0上的地址信号锁存后,锁存器输出地址信号;AD15-AD0则可输出或输入数据信号,3. DEN(Data Enable)数据允许信号输出,在用8286/245
18、作数据总线收发器(buffer)时,DEN向buffer提供一个控制信号,连接buffer的OE端;每个存储器或I/O访问周期有效;读周期或中断响应周期,T2的中间到T4中间有效;写周期,T2开始到T4中间;DMA方式,DNE高阻态;,4. DT/R(Data Transmit/Receive)数据收发信号输出,在用8286/245作数据总线收发器(buffer)时,DT/R向buffer提供一个控制信号,连接buffer的T端, 用来控制数据的传送方向DMA方式时,DT/R高阻态,5. M/IO:存储器/IO端口控制输出信号,高电平表示和存储器传送数据,低电平表示和IO端口传送数据整个总线周
19、期保持固定状态(高或低)8088和8086电平相反DMA方式时,高阻态,6. WR(Write)写信号输出,输出给存储器或I/O端口T2、T3、Tw有效DMA方式时,高阻态,7. HOLD/HLDA:总线保持请求/响应信号输入/输出,8. 时钟发生器8284A,对READY、RESET信号进行同步F/C:高电平EFI输入脉冲,低电平用晶体振荡器,15MHz,8086最小模式下的典型配置,2.2.4 最大模式,1. QS1、QS0(Instruction Queue Status)指令队列状态信号输出,向外提供前一个状态时指令队列的状态,便于外部对8086/8088内部指令队列的动作跟踪,2.S
20、2、S1、S0(Bus cycle status)总线周期状态,最大系统模式中,总线控制器8288就是利用这些状态信号来产生对存储器和I/O接口的控制信号,表2.5,3. LOCK总线封锁信号输出,由指令前缀LOCK产生,LOCK后指令执行完毕,自动撤销8086/8088的INTA的两个中断响应脉冲之间,LOCK信号有效LOCK信号有效期间,其他总线部件不能占用总线DMA期间,高阻态,4. RQ/GT1、RQ/GT0:总线请求信号输入/总线请求允许信号输出,可提供CPU以外的两个处理器使用双向RQ/GT0比RQ/GT1优先级高,5. 总线控制器8288,总线控制器8288的输出信号,ALE、D
21、EN、DT/R、INTAMRDCMWTCIORCIOWC,8086在最大模式下的典型配置,2. 3 8086的操作和时序,8086的主要操作: 系统的复位和启动操作; 暂停操作; 总线操作; 中断操作; 最小模式下的总线保持;最大模式下的总线请求/允许。,2.3.1 系统的复位和启动操作,关于复位和启动,复位信号:4个时钟周期,初次50s;复位状态下各寄存器状态:表2.6;复位时,IF = 0,适当时要通过指令设置中断允许标志;复位信号从高电平到低电平跳变;复位操作时的总线信号,表2.7;,复位时各寄存器的值:,2.3.2 总线操作,CPU和存储器或I/O设备交换数据时执行一个总线周期,进行总
22、线操作 (1) 最小方式下的总线读操作(2) 最小方式下的总线写操作 (3) 最大模式下的总线读操作(4) 最大模式下的总线写操作,1.最小方式下的总线读操作,2.最小方式下的总线写操作,3.最大模式下的总线读操作,4.最大模式下的总线写操作,2.3.3 中断操作和中断系统,1. 8086的中断分类 硬件中断(NMI和INTR), 软件中断,2,3,4,1,0,2. 中断向量和中断向量表,中断类型号:8086中断系统中的每一个中断都有一个0-255号的中断类型号;中断向量:所谓中断向量就是中断服务程序的入口地址(段地址、偏移量地址);中断向量表:为便于进入中断服务程序,将各个中断向量组成一个表
23、放在固定位置上(0000H-003FFH),由此表得到相应中断的中断向量,将此向量传送给指令指针,进入相应的中断服务程序。,2. 中断向量和中断向量表,例:,中断类型号20H, 其中断程序入口地址为2000H:1000H, 问:中断向量是什么?应存放在什么位置,内容是什么?,3. 硬件中断,NMI:优先级别:级别较高;b. 用于十分紧急的情况处理,如系统掉电将当前现场保存在非易失性存储器中;启动热备份设备;启动一定的线路接通一个可充电的电源系统,以维持系统正常工作。INTR: IF = 1, 当前指令执行完毕,无总线请求,4. 硬件中断的响应和时序,可屏蔽中断的响应过程 :从数据总线上读取中断
24、类型码,存入暂存器将标志寄存器的值推入堆栈把标志寄存器的IF和TF清零将断点保护到堆栈中。寻找中断向量,转入中断处理程序INTR信号:电平触发信号高电平要维持到CPU响应中断才结束NMI信号:上升沿,维持两个时钟周期的高电平NMI的响应过程,几点说明:,1. 非屏蔽中断和可屏蔽中断有两点差别; 2. TF是单步中断标志 ;3. 在中断响应后,又遇NMI或INTR;4. 结束时,返回断点;不能立即响应中断的情况:遇到LOCK命令;执行往段寄存器中传送数据的指令;6. 等待或串操作时,允许过程中进入中断,中断响应总线周期,中断响应过程的总线操作,第1个总线周期,通知外设,CPU准备响应中断;第2个
25、总线周期,外设发送中断类型码;总线写周期,标志寄存器入栈;总线写周期,CS内容入栈;总线写周期,IP内容入栈;总线读周期,偏移量送IP;总线读周期,段地址送CS;,5. 中断处理子程序, 进一步保护中断现场 开放中断 中断处理的具体内容 弹出堆栈指令(恢复保护的现场) 中断返回指令(自动返回F、CS、IP),6. 软件中断, 用一条指令进入中断处理子程序,并且,中断类型码由指令提供。 不执行中断响应总线周期,也不从数据总线读取中断类型码。 不受中断允许标志IF的影响 执行过程中可响应外部硬件中断 软件中断没有随机性,2.3.4 最小模式下的总线保持,利用HOLD和HLDA信号实现总线保持,2.3.5 最大模式下的总线请求/授权,利用RQ#/GT实现总线请求/授权,2.4 8086的存储器组织和I/O组织,CS、DS、SS和其他寄存器组合指向存储单元的示意图 :,存储器采用分段方法进行编址的好处,可以使指令系统中的大部分指令只涉及到16位地址,减少指令长度,提高了执行程序的速度;内存分段也为程序的浮动装配创造了条件,示意图:,8088、8086存储器结构,80386DX、80486SX、80486DX,