专升本微机原理清华版第四章.ppt

上传人:牧羊曲112 文档编号:5907269 上传时间:2023-09-02 格式:PPT 页数:86 大小:1.01MB
返回 下载 相关 举报
专升本微机原理清华版第四章.ppt_第1页
第1页 / 共86页
专升本微机原理清华版第四章.ppt_第2页
第2页 / 共86页
专升本微机原理清华版第四章.ppt_第3页
第3页 / 共86页
专升本微机原理清华版第四章.ppt_第4页
第4页 / 共86页
专升本微机原理清华版第四章.ppt_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《专升本微机原理清华版第四章.ppt》由会员分享,可在线阅读,更多相关《专升本微机原理清华版第四章.ppt(86页珍藏版)》请在三一办公上搜索。

1、第四章 16位微处理器,4-1 微处理器概述,4-2 8086/8088 CPU 的结构,4-3 8086/8088 CPU 的引脚信号和工作模式,4-4 8086/8088的主要操作功能,系统的复位和启动操作,总线操作,中断操作,最小工作模式下的总线保持,8282锁存器,8286收发器,执行部件EU、总线接口部件BIU、存储器的结构、总线工作周期,微 机 原 理 及 应 用,微处理器概述,微 机 原 理 及 应 用,微处理器(Microprocessor)是微型计算机的运算及控制部件,也称为中央处理单元(CPU)。它本身不构成独立的工作系统,因而它也不能独立地执行程序。通常,CPU从功能上分

2、为执行部件(EU)和总线接口部件(BIU),一 什么是微处理器?,二 微处理器的发展,第一代微处理器,第二代微处理器,第三代微处理器,第四代微处理器,现代微处理器,1.第一代微处理器是1971年Intel公司推出的4040和8008。它们是采用PMOS工艺的4位及8位微处理器2.第二代微处理器是1974年推出的8080,M6800及Z-80等。它们是采用NMOS工艺的8位微处理器.,16位微处理器概述,3.20世纪70年代后期,超大规模集成电路(VLSI)投入使用,出现了第三代微处理器。Intel公司的80868088,Motorola公司的M68000和Zilog公司的Z8000等16位微处

3、理器相继问世,它们的运算速度比8位微处理器快25倍。4.20世纪80年代以来,Intel公司又推出了高性能的16位微处理器80186及80286。它们与80868088向上兼容。80286是为满足多用户和多任务系统的微处理器,速度比8086快56倍。,5.1985年,第四代微处理器80386及M68020推出市场,集成度达45万个晶体管片。它们是32位微处理器,时钟频率达40MHz,速度之快、性能之高,足以同高档小型机相匹敌。6.如1989年推出了80486,1993年推出了Pentium及80586等更高性能的32位及64位微处理器,它也促进了其他技术的进步。,本章以讲解16位8086808

4、8微处理器为中心。8086和8088 CPU的内部基本相同,但它们的外部性能是有区别的。8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据字时,8088需要两步操作而8086只需要一步。,微 机 原 理 及 应 用,一 执行部件,二 总线接口部件,三 存储器的结构,8086/8088 CPU 的结构,四 8086总线的工作周期,ALU,执行部分控制电路,输入/输出控制电路,地址加法器,20位,16位,指令队列缓冲器,8位,执行部件(EU),总线接口部件(BIU),外部总线,16位,运算寄存器,标志寄存器,通用寄存器,8086CPU结构图,段寄存器,DL,CL,BL,AL,

5、SI,DI,BP,SP,DH,CH,BH,AH,内部暂存器,IP,ES,SS,DS,CS,微 机 原 理 及 应 用,专用寄存器,返回BIU,BIU(bus interface unit):负责与存储器、I/O端口,即8086/8088CPU与存储器之间的信息传送。,EU(execution unit):负责指令的执行。,通用寄存器,专用寄存器,标志寄存器(FR),算术逻辑单元(ALU),BIU从内存的指定部分取出指令,送到指令流队列中排队;操作数也由BIU从内存的指定区域取出,传送给EU执行。,寄存器(一),通用寄存器,AX 累加器,BX 基 数,CX 计 数,DX 数 据,微 机 原 理

6、及 应 用,AX:有些指令约定AX(或AL)为累加器,如乘、除、输入/输出等,BX:基址寄存器,可用作间接寻址的地址寄存器和基地址寄存器。,CX:计数寄存器,在循环和串操作中充当计数器。指令执行后CX寄存器中内容自动变化。,DX:数据寄存器,除用作通用寄存器外,在I/O指令中用作口地址寄存器,乘除指令中用作辅助寄存器。,专用寄存器,堆栈指针,Stack Pointer Register,基数指针,Base Pointer Register,目的变址,Destination Index Register,源 变 址,Source Index Register,BP,SP常用来指示相对于段起始地址

7、的偏移量。SI,DI可用作寄存器间接寻址、相对寻址、基址变址寻址、相对基址变址寻址寄存器,访问数据段任意单元。变址寻址通常用于对数组元素进行操作。,标志寄存器(FR),OF(Overflow Flag):溢出DF(Direction Flag):方向IF(Interrupt Flag):中断TF(Trap Flag):跟踪SF(Sign Flag):符号ZF(Zero Flag):零AF(Auxiliary Carry Flag):半进位PF(Parity Flag):奇偶CF(Carry Flag):进位,结构图,标志寄存器(1),状态标志(6个):SF(符号标志):当执行算术或逻辑运算指令

8、时,符号标志位接受运算结果最高位的值。当最高位为1时,SF=1(NG),最高位为0:SF=0(PL),4.CF(进位标志)加法运算时最高位产生进位或减法运算时最高位产生借位时CF=1(CR),反之CF=0(NC);,PF(奇偶标志)运算结果的低8位中含1的个数为偶数时PF=1(PE),反之PF=0(PO);,2.ZF(零标志):运算结果为零时,ZF=1(ZR),反之ZF=0(NZ),6、OF(溢出标志)有符号(signed)数加减时超出数据范围称为溢出,溢出时OF=1(OV,字节运算结果超出-128+127,或者字运算结果超出-32768+32767),反之OF=0(NV),状态标志:5、AF

9、(辅助进位标志)加法运算时第3位往第4位有进位或减法运算时第3位往第4位有借位AF=1(AC),反之AF=0(NA);,标志寄存器(2),3.TF(跟踪标志)TF=1时,CPU按跟踪方式运行。,控制标志(3个):1.DF(方向标志):控制执行串操作指令时被操作数地址的变化方向,DF=0(UP)时地址递增,DF=1(DN)时地址递减;(用于某些串操作指令),IF(可屏蔽中断响应标志):IF=1(EI)允许可屏蔽中断,IF=0(DI)禁止可屏蔽中断。该标志可由中断控制指令设置或清除。,超出数据范围称为溢出(OF=1,OV)。1.两个字节的signed 数相加结果超出了-128+127的范围时,OF

10、=1,也表示运算出错。2.CPU运算时规定两个字节的无符号(unsigned)数相加,结果为9个bits(加上CF位),因而其结果不可能超出范围,所以 不考虑溢出问题,只考虑是否有进位,即CF是0还是1。3.多字节有符号(signed)数运算时(如果以字节进行运算),除最高字节按有符号数处理外,其余按无符号数进行处理。,现以两个unsigned 数相加和两个signed 数相加来对比,有符号数的范围为-128+127,结果超出范围时,OF=1 01111111 127(+127)+00000001+1+(+1)10000000 128(+128)(SF=1、ZF=0、PF=0、CF=0、AF=

11、1、OF=1)(D6进位到D7,D7无进位到CF,所以OF=1)10000001 129(-127)+111111110+254+(-2)01111111 383-129 为signed 数时,结果影响了符号位,出现错误 OF=1(SF=、ZF=、PF=、CF=、AF=、OF=)(D6无进位到D7,D7进位到CF,CF=1,OF=1)CPU用标志位来表明运算的状态结果,当有D6进位到D7,D7又进位到CF时,即双进位时 或者无进位时OF=0,反之OF=1,OF=1表示有溢出发生,例 01111111 127(+127)+110000010+130+(-126)00000001 257(+1)(

12、SF=0、ZF=0、PF=0、CF=1、AF=1、OF=0)11111111 255(-1)+111111111+255+(-1)11111110 510-2 双进位 OF=0,没发生溢出(SF=、ZF=、PF=、CF=、AF=、OF=)CPU用标志位来表明运算的状态结果,寄存器(二),指令指针寄存器,又称指令计数器,16位代码段寄存器,Code Segment register16位数据段寄存器,Data Segment register16位堆栈段寄存器,Stack Segment register16位附加段寄存器,Extra Segment register,微 机 原 理 及 应 用

13、,BIU(Bus Interface Unit),结构图,返回d,6字节的指令队列,8086在执行指令的同时,从内存中取下一条指令或下几条指令放在指令队列中。一条指令执行完后,可立即译码执行下一条指令,从而解决了以往CPU取指令期间,运算器等待的问题。由于取指令和执行指令并行进行,从而提高了CPU的效率。注:当总线访问与取址冲突时,先完成取址的总线周期。,地址加法器 地址加法器用来将逻辑地址变换为20位的物理地址。,存储器的结构,微 机 原 理 及 应 用,一 存储器的分段,二 存储器的地址,存储器的逻辑地址,存储器的物理地址,三 堆栈,存储器的分段,8086内部数据结构是16bits的,即所

14、有寄存器都是16bits的。而8086系统中存储器可寻址的存储空间是1MB。,b.外部寻址空间为1MB时,需要20根地址线。,20根地址线无法直接用16bits的CPU寻址,于是想个办法:段的方式。,1MB的存储空间分为16个逻辑段(015),每个逻辑段容量 64KB 存储器的逻辑分段,每个逻辑段用一个段地址来标识,用于存放段地址的寄存器称为段寄存器。段寄存器 数据段 代码段 堆栈段,存储器的地址,四个段寄存器存每个段的首地址,寄存器是16bits的。段内偏移地址也是16bits的,这两个16bits如何组成20bits的绝对地址?,物理地址=段基址 X 16+偏移地址,例:DS=1000H(

15、段基址),SI=0050H(偏移地址)物理地址:10050H CS=FE00H(段基址),IP=0400H(偏移地址)物理地址:FE400H,存储器的地址,g.CS:IP DS:BX/SI/DI ES:BX/SI/DI SS:BP,h.16位寄存器寻址64KB。每个地址单元对应的是一个字节。8bits,小结:存储器的物理地址和逻辑地址,我们可以把每一个存储单元看成具有两种类型的地址:物理地址和逻辑地址。采用分段结构的存储器中,任何一个逻辑地址由段基址和偏移地址两个部分构成,它们都是无符号的16位二进制数。物理地址,也可称为绝对地址,它是20位的,是唯一标识1M字节空间的某一字节的地址。它是由逻

16、辑地址变换得来的,程序用逻辑地址编址,当CPU需要访问存储器时,必须完成如下的地址运算:物理地址=段基址 X 16+偏移地址,微 机 原 理 及 应 用,存储器的分段,1 段,=64K字节,00000,16个逻辑段,15 段,0FFFF,10000,0 段,1FFFF,F0000,FFFFF,=64K字节,=64K字节,微 机 原 理 及 应 用,返回d,代码段、数据段与堆栈段,64KB,64KB,64KB,64KB,00000,10550,250A0,8FFB0,EFF00,FFFFF,代码段,数据段,附加段,堆栈段,1055,250A,8FFB,EFF0,CS,DS,ES,SS,返回d,8

17、086/8088物理地址的计算,1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1,1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0,0,1,2,3,0,15,地址加法器,19,0,15,0,物理地址,偏移地址,段地址,微 机 原 理 及 应 用,物理地址的形成如下图所示,它是通过CPU的总线接口部件BIU地址加法器来实现:,0 0 0 0,返回e,段寄存器和其他寄存器组合指向存储单元示意图,归纳段寄存器和其他寄存器组合指向存储单元示意图如下:,总结:8086、8088内部有14个16位寄存器,按功能分为三类:,通用寄存器段寄存器控制寄存器,数据寄存器:AX,BX,C

18、X,DX地址指针寄器:SP,BP变址寄存器:SI,DI,FR中:6 位条件标志:OF,SF,ZF,CF、PF,AF3位控制标志:TF,IF,DF,学习寄存器注意事项(问题思考):(1)AX,BX,CX,DX 是数据寄存器 可以作为16位寄存器使用,又可以作为8位寄存器使用。但每个寄存器在使用时各有特殊之处。问题:AX,BX,CX,DX能用来存放偏移地址吗?哪些可以?哪些不可以?(2)16位的寄存器 问题:BX,BP,SP,SI,DI,IP存放的偏移地址在构成物理地址 时,与段地址是如何配合使用?(3)FR中的状态标志 问题:条件码标志、控制标志各位的含义是什么?哪些标志可用程序进行控制?,4.

19、逻辑地址与物理地址是如何定义的?差别在那里?5.存储器是怎样编址的?同一个地址既可以看作字节单元地址,又可看作字单元地址,怎样理解?IBMPC机存储器分段有那些规定?系统加电复位时,会自动转到那个单元执行?重迭操作技术有什么好处?如何理解每个存储单元只有唯一的物理地址。但可由不同的段地址和不同的偏移地址组成?,4.3 CPU 的引脚信号和工作模式,8086/8088 CPU 的工作模式:两种工作模式:最小模式和最大模式最小模式:只有一个CPU,小系统、单处理器;最大模式:可以有多个CPU,中到大系统,多处理器。,微 机 原 理 及 应 用,Pin 33(MN/MX)=1 为最小模式,=0为最大

20、模式,最小模式和最大模式时2431脚的信号含义不同,地,NMI,地,INTR,CLK,Vcc(5V),BHE/S7,HLDA(RQ/GT1),MN/MX,WR(LOCK),ALE(QS0),AD14,AD12,AD9,AD5,AD13,AD11,AD8,AD4,AD0,AD10,AD7,AD3,AD6,AD2,AD1,AD15,AD17/S4,AD16/S3,AD18/S5,AD19/S6,RD,M/IO(S2),INTA(QS0),RESET,HOLD(RQ/GT0),DT/R(S1),TEST,DEN(S0),READY,8086CPU,地,A14,A12,A9,AD5,A13,A11,A

21、8,AD4,AD0,A10,AD7,AD3,NMI,地,AD6,AD2,INTR,AD1,CLK,Vcc(5V),A15,A17/S4,SS0(HIGH),HLDA(RQ/GT1),A16/S3,A18/S5,MN/MX,WR(LOCK),ALE(QS0),A19/S6,RD,M/IO(S2),INTA(QS0),RESET,HOLD(RQ/GT0),DT/R(S1),TEST,DEN(S0),READY,8088CPU,4.3.1 8086/8088 CPU 的引脚信号和功能,引脚信号和功能,20根地址线(输出)、16根数据线(I/O)、控制线有的输入,有的输出,有的低电平有效,有的高电平有

22、效。,三总线:地址总线、数据总线、控制总线,为了减少引脚数,又不影响传送数据速度,采用了分复用线。,1.AD15AD0(address data bus)地址数据复用引脚(双向工作),第一个总线周期输出要访问的存储器或IO端口地址。其它总线周期传输数据。,在8088中,A8A15并不作复用,它们只用来输出地址,称为A8A15。,2.A19S6A16/S3(address/status)地址/状态复用引脚(输出),A19/S6A16/S3在总线周期的T1状态,用来输出地址的最高4位。在总线周期的T2,T3,TW和T4状态时,用来输出状态信息。,S6为0,用来指示80868088当前与总线相连,所

23、以在T2,T3,TW和T4状态时,80868088总是使S6等于0,以表示80868088当前连在总线上。S5表明中断允许标志的当前设置,若为1,表示当前允许可屏蔽中断请求;若为0,则禁止一切可屏蔽中断。S4,S3合起来指出当前正在使用哪段寄存器。(p80),3.BHES7(bus high enable/status)高8位数据总线允许状态复用引脚(输出),BHE A0 操作 所用的数据引脚0 0 从偶地址开始读/写一个字 AD15AD00 1 从奇地址或奇端口读/写一个字 节 AD15-AD8 0 从偶地址或偶端口读/写一个字节 AD7-AD01 1 无效 从奇地址开始读/写一个字(需要两

24、个总线周期)AD15-AD00 1 在第一个总线周期将低8位数字送到AD15-AD81 0 在第二个总线周期将高8位数字送到AD7-AD0 BHE:高8位数据总线允许信号;A0:一般常将A0信号作为低8位数据的选通信号,BHE 和 A0的代码组合和对应操作,注:P211图用低8位数据线 P251图用高8位数据线,其他主要引脚信号,NMI、INTR、RD、CLK、RESET、READY、TEST、MN/MX、GND、VCC.,最小工作模式下的引脚信号:INTA、ALE、DEN、DT/R、M/IO、WR、HOLD、HOLA、,其他主要引脚信号,4.NMI(non-maskable interrup

25、t)非屏蔽中断引脚(输入)非屏蔽中断信号是一个由低到高的上升沿。不受中断标志IF的影响,也不能用软件进行屏蔽。每当NMI端进入一个正沿触发信号时,CPU就会在结束当前指令后,进入对应于中断类型号为2的非屏蔽中断处理程序。,其他主要引脚信号,5.INTR(interrupt request)可屏蔽中断请求信号引脚(输入)可屏蔽中断请求信号为高电平有效。CPU在执行每条指令的最后一个时钟周期会对INTR信号进行采样,如果CPU中的中断允许标志为1,并且又接收到INTR信号,那么,CPU就会在结束当前指令后,响应中断请求,进入一个中断处理子程序。,6.RD(read)读信号引脚(输出)指出将要执行一

26、个对内存或IO端口的读操作。到底是读取内存单元中的数据还是IO端口中的数据,这决定于MIO信号。,7.CLK(clock)时钟引脚(输入)80868088要求时钟信号的占空比为33%,即13周期为高电平,23周期为低电平。80868088的时钟频率要求为5MHz,8086-1的时钟频率为10MHz,8086-2的时钟频率则为8MHz。时钟信号为CPU和总线控制逻辑电路提供定时手段。,8.RESET(reset)复位信号引脚(输入)复位信号为高电平有效。80868088要求复位信号至少维持4个时钟周期的高电平才有效。复位信号来到后,CPU便结束当前操作,并对处理器标志寄存器、IP,DS,SS,E

27、S及指令队列清零,而将CS设置为FFFFH。当复位信号变为低电平时,CPU从FFFF0H开始执行程序。,9.READY(ready)“准备好”信号引脚(输入)由所访问的存储器或IO设备发来的响应信号,高电平有效。“准备好”信号有效时,表示内存或IO设备准备就绪,马上就可进行一次数据传输。CPU在每个总线周期的T3状态开始对READY信号进行采样。如果检测到READY,低电平,则在T3状态之后插入等待状态TW,在TW状态,CPU也对READY进行采样,若READY仍为低电平,则会继续插入TW,所以TW可以插入一个或多个。直到READY变为高电平后,才进入T4状态,完成数据传送过程,从而结束当前总

28、线周期。,10.TEST(test)测试信号引脚(输入)测试信号为低电平有效。TEST信号是和指令WAIT结合起来使用的,在CPU执行WAIT指令时,CPU处于空转状态进行等待;当8086的TEST信号有效时,等待状态结束,CPU继续往下执行被暂停的指令。,11.MNMX(minimummaximum mode control)最小最大模式控制信号引脚(输入)它是最大模式及最小模式的选择控制端。此引脚固定接为+5V时,CPU处于最小模式;如果接地,则CPU处于最大模式。,12.GND地和Vcc电源引脚80868088均用单一+5V电源。,4.3.2 最小工作模式,1.INTA(interrup

29、t acknowledge)中断响应信号(输出)中断响应信号的输出端 用来对外设的中断请求作出响应。对于80868088来讲,INTA信号是位于连续周期中的两个负脉冲,在每个总线周期的T2,T3和TW状态,INTA端为低电平。第1个负脉冲通知外部设备的接口,它发出的中断请求已经得到允许;外设接口收到第2个负脉冲后,往数据总线上放中断类型码,从而CPU便得到了有关此中断请求的详尽信息。,2.ALE(address latch enable)地址锁存允许信号(输出)地址锁存允许信号输出端,高电平有效。在任何一个总线周期的T1状态,ALE输出有效电平,以表示当前在地址数据复用总线上输出的是地址信息,

30、地址锁存器将ALE作为锁存信号,对地址进行锁存。要注意ALE端不能被浮空。,3.DEN(data enable)数据允许信号数据允许信号输出端。表示CPU当前准备发送或接受一个数据。总线收发器将DEN作为输出允许信号。,4.DTR(data transmitreceive)数据收发(输出)DTR信号用来控制数据传送方向。如果DTR为高电平,则进行数据发送;如果DTR为低电平,则进行数据接收。,5.MIO(memory/input and output)存储器输入输出控制信号(输出)此信号若为高电平,表示CPU和存储器之间进行数据传输;若为低电平,表示CPU和输入输出设备之间进行数据传输。,6.

31、WR(write)写信号(输出)此信号为低电平有效。WR有效时,表示CPU当前正在进行存储器或IO写操作。,7.HOLD(hold request)总线保持请求信号(输入)系统中CPU之外的另一个主模块要求占用总线请求信号,在总线占有部件用完总线之后,会把HOLD信号变为低电平,这样,CPU又获得了地址数据总线和控制状态线的占有权。,8.HLDA(hold acknowledge)总线保持响应信号(输出)此信号为高电平有效。当HLDA有效时,表示CPU对其他主部件的总线请求作出响应,与此同时,所有与三态门相接的CPU的引脚呈现高阻抗,从而让出了总线。,最小工作模式的典型配置,8086,STB,

32、地址锁存器,8282,(三片),收发器,8286,OE(二片),T(可选),8284A,BHE,地址总线,数据总线,READY,RESET,5V,控制总线,最小工作模式的数据传输方式,(74LS373),(74LS245),8282锁存器与8086的连接,ALE,AD0AD1AD2AD3AD4AD5AD6AD7AD8AD9AD15A16A17A18A19BHE,DI0DI1DI2DI3DI4DI5DI6DI7OE,DO0DO1DO2DO3DO4DO5DO6DO7STB,DI0DI1DI4,DI0DI1DI4STB,OE,STB,数据,数据,地址,8086,8282,8282,8282,OE,A

33、LE引脚:,地址锁存,8286收发器和8088连接(发送),AD0AD1AD2AD3AD4AD5AD6AD7DENDT/R,A0A1A2A3A4A5A6A7OE,B0B1B2B3B4B5B6B7T,8088,8286,数据总线,T=1,DEN:使能,DT/R:接收/发射选择,8286收发器和8088连接(接收),AD0AD1AD2AD3AD4AD5AD6AD7DENDT/R,A0A1A2A3A4A5A6A7OE,B0B1B2B3B4B5B6B7T,8088,8286,数据总线,T=0,最小工作模式的数据传输方式,对于单一外设来说,控制线并不需要用总线收发器进行驱动.当然,如果系统中存储器和外设

34、接口芯片多,出于需要,也可以使用总线收发器.最小模式系统中,信号M/IO,RD和WR组合起来决定了系统中数据传输的方式.,最小工作模式的典型配置,-,4.4 8086/8088 的主要操作功能,复位与启动总线操作中断操作最小工作模式下的总线保持,4.4.1 系统的复位和启动操作,1.RESET:8086/8088的复位和启动操作是在RESET引脚上加触 发信号。,1).所有时序都发生在CLK节拍下。,2).时序过程:外部RESET信号到来,读入到CPU,半个周期(CLK为低)的无作用状态,下一个CLK上升沿时,进入复位状态,总线浮空,RESET至少保持4个时钟周期高电平,4.4.1 系统的复位

35、和启动操作,P96,从FFFF:0000H处开始执行程序,2.复位状态,2)所有三态输出总线变为高阻状态:数据线,地址线,BHE/S7INTA、ALE、DEN、DT/R、M/IO、WR、,1)寄存器,3)ALE,HLDA降为低电平。,8086总线的工作周期,4.4.2 总线操作,时钟周期:每个CPU都有一个主频(8086主频10M,100ns)CLK,总线周期:对总线的一次操作。比如对存储器、I/O的一次读/写8086/8088中一个最基本的总线周期由4个时钟周期组成,4个时钟周期成为4个状态。,指令周期:完成一条指令。一条指令可能有多个总线周期组成。,8086总线周期,在一个最基本的总线周期

36、中,常将四个时钟周期分别称为四个状态,即T1状态、T2状态、T3状态、T4状态。典型的8086总线周期序列如下图所示:,完成一次访问存储器或外设操作所需的时间称为一个总线周期,一般情况下它由4个时钟周期组成;,4.4.2 总线操作,8086总线周期,T1:CPU往多路复用总线上发出地址信息,指出要寻址的存储单元或外设端口地址;,4.4.2 总线操作,T2:地址从总线上撤销,总线低16位置为高阻,为传输数据做准备;,T3:传输数据,数据送到总线上;,Tw:等待周期,READY信号表示外设未准备好,CPU等待。,Ti:空闲周期,一个总线周期后,不立即执行下一个总线周期,系统总线处在空闲状态,执行空

37、闲周期。,8086读操作时序,CLK,M/IO,A19/S6A16/S3,BHE/S7,AD15AD0,ALE,RD,DT/R,DEN,高为读内存低为读I/O,地址输出,状态输出,BHE输出,地址输出,数据输入,T1,T2,T3,TW(1 n),T4,8086读操作时序,T1,T2,T3,TW,T4,(12),(13),8086总线的工作周期(续1),微 机 原 理 及 应 用,T1状态:CPU送出M/IO信号;往多路复用总线上发地址信息,以指出要寻址的存储单元或外设端口的地址;从ALE引脚上送出一个地址锁存信号;送出BHE信号(是否可使用高8位数据线上的信息);送出DT/R信息。(用以数据总

38、线收发器的数据收发控制),时序图,8086总线的工作周期(续2),微 机 原 理 及 应 用,T2状态:总线的高四位(A16-A19)及BHE/S7用来输出本总线周期状态信息。这些状态信息用来表示中断允许状态,当前正在使用的段寄存器名等。CPU从总线上撤消地址信号,而使总线的低16位浮置成高阻状态,为数据传递做准备送出RD(读)或WR(写)信号。送出DEN信号(用以数据总线收发器的数据允许控制),时序图,8086总线的工作周期(续3),微 机 原 理 及 应 用,T3状态:(11)内存或I/O端口将数据送上数据总线,CPU准备读数。(12)RD(读)或WR(写)信号继续有效。CPU在T3的前沿

39、(下降沿)查询READY,若为低则插入TW一直到READY信号为高。T4状态:(13)T4前沿CPU将数据读入,总线读周期完成。各控制信号线和状态信号线进入无效状态。,时序图,8086总线的工作周期(续4),微 机 原 理 及 应 用,在什么情况下要插入TW等待周期?在有些情况下,被写入的数据或被读入数据的外设或存储器不能及时地配合CPU传送数据。这时,外设或存储器会通过“READY”信号线在T3状态启动之前,向CPU发一个”数据未准备好“信号,于是CPU会在T3之后插入一个或多个附加的时钟周期TW,TW也叫等待状态,在TW状态,总线上的信息情况和T3状态的信息情况一样。当指定的存储器或外设完

40、成数据传输时,便在“READY”线上发出“准备好”信号,CPU接收到这一信号后,会自动脱离TW状态进入T4状态。,时序图,8086写操作时序,CLK,M/IO,A19/S6A16/S3,BHE/S7,AD15AD0,ALE,WD,DT/R,DEN,高为写内存低为写I/O,地址输出,状态输出,BHE输出,T1,T2,T3,TW,T4,地址输出,数据输出,8086写操作时序,(一)同步操作 有了中断功能,就可以使CPU和外设同时工作,(二)实现实时处理 当计算机用于实时控制时,中断是一个十分重要的功能,(三)故障处理 计算机利用中断可以自行处理一些意外情况,而不必停机或报告操作者,4.4.2 中断

41、操作,中断是解决快速的CPU与慢速的外设之间交换数据的矛盾的一种比较好的方法.,8086/8088的中断分类,INT n指令,中 断 逻 辑,INT3指令,除数为0中断,单步中断,INT0指令,非屏蔽中断请求,可屏蔽中断请求,NMI,INTR,软件中断,硬件中断,软件中断、硬件中断,1、什么是软件中断?CPU根据软件中的某条指令或者软件对某个标志位的设置而产生的中断称为软件中断。它与硬件电路无关。2、什么是硬件中断?通过外部的硬件电路产生的中断称为硬件中断,也称为外部中断。3、什么是可屏蔽中断?什么是非屏蔽中断?可屏蔽中断是通过CPU的INTR引脚引入,当中断允许标志IF=1时,允许中断,当中

42、断允许标志IF=0时,禁止中断。非屏蔽中断不受IF标志控制,由CPU的NMI引脚引入,CPU必须响应。,中断操作,几个基本概念:中断类型码,中断向量,中断向量表,1.什么是中断类型码?每一个中断都对应着一个类型码,即相当于中断的序号。0FFH(P100),2.什么是中断向量?中断向量是中断处理子程序的入口地址,每一个中断向量占 4个字节(CS:IP)。前两个单元存放中断子程序入口地址的偏移量(IP),低位在前,高位在后;后两个单元存放中断子程序入口地址的段地址(CS)。,中断操作,几个基本概念:中断类型码,中断向量,中断向量表,3.什么是中断向量表?中断向量表是专门用来存储中断向量的内存区域;

43、8086系统在内存中把0段的000003FFH区域设置为中断向量表,每一个中断向量占4个字节(CS:IP),前两个字节存放偏移地址(IP),后两个字节存放段地址(CS),低位在前高位在后。中断向量在表中按中断类型的序号从0字节开始顺序存放。,中断操作,几个基本概念:中断类型码,中断向量,中断向量表,中断类型码(几号中断),得到对应的中断向量存放的位置,中断向量(中断程序入口地址)4个字节,装入CS:IP中,转入中断程序,8086/8088中断向量表,0000:0000H,0000:0003H,0000:0004H,0000:0007H,0000:0008H,0000:000BH,0000:00

44、0CH,0000:000FH,0000:0010H,0000:0013H,0000:0014H,0000:007EH,0000:007FH,0000:03FFH,除数为0的中断,单步中断,类型0,类型1,类型2,类型4,类型3,类型5,类型31,类型32,类型255,(十进制),(十进制),专用中断(共5个),保留中断(共27个),供用户定义的中断(共225个),005C:90,005D:78005E:34,005F:12,中断类型序号只与中断向量表有关,与中断向量没有直接关系,每一个中断类型序号,对应中断向量表中4个字节的存储单元。,两个地址:中断向量的地址程序入口地址:中断向量,中断向量、

45、中断类型码、中断向量表,例如,中断类型码为17H的中断处理子程序存放在2345:7890H开始的内存区域中,2345:7890H即为中断向量,这个中断向量在中断向量表中的位置为0000:005CH开始的4个字节,前两个字节存放偏移地址(IP),后两个字节存放段地址(CS),且低位在前高位在后,显然,0段的005CH、005DH、005EH、005FH单元中的值分别为90H、78H、45H、23H。用中断类型码乘以4就可以得到这个类型码对应的中断向量在中断向量表中的最低位地址,例如17H X 4=5CH P108,4.14的问题,80868088中断响应流程,是内部中断吗?,是非屏蔽中断吗?,是

46、可屏蔽中断吗?,TF 1 吗?,执行下一条指令,结束当前指令,IF1吗?,取中断类型码,标志推入堆栈,令TEMPTF,清除IF和TF,CS和IP推入堆栈,进入中断处理程序,TEMP1吗?,执行中断处理程序,弹出IP和CS,弹出标志,有NMI吗?,是,是,是,是,否,否,否,否,否,是,响应,中断,有,无,是,否,返回断点,中断操作,从数据总线上读取中断类型码,存入内部暂存器,标志寄存器的值推入堆栈,清标志寄存器中的IF和TF,将断点保护到堆栈,所谓断点,指相应中断时,主程序中当前指令下一条指令的地址,根据中断类型码,到内存0000段的中断向量表中找到中断向量,然后转入相应中断程序。,(1)中断

47、响应:CPU接收到外界的中断请求信号&中断允许标志IF正好为1&一条指令执行完毕,80868088的中断响应:两个总线周期,(3)中断响应的第一个总线周期用来通知发中断请求的设备,CPU准备响应中断,现在应该准备好中断类型码;在第二个总线响应周期中,CPU接收外设接口发来的中断类型码,以便据此而得到中断向量即中断处理子程序的入口地址。外设的中断类型码必须通过16位数据总线的低8位传送给8086,所以提供中断向量的外设接口必须接在数据总线的低8位上。,(2)CPU会在当前总线周期和下一个总线周期中,从INTA引脚上往外设接口各发一个负脉冲。,图4.22,堆 栈,堆栈是以“后进先出”方式工作的、处

48、于内存中存储区域。1.保留代码段寄存器CS和指令指针IP的值。假设第X1条指令为调用子程序指令,它的下一条指令为X2,则必须将X2的地址值保留下来,只有这样,才能保证当子程序或中断程序执行完后能返回主程序继续执行主程序。,微 机 原 理 及 应 用,什么是堆栈?为什么需要堆栈?,堆 栈(续一),微 机 原 理 及 应 用,2.保留主程序在寄存器中的中间结果和标志位的状态。,3.后进先出(last in first out)在一个程序中,往往在子程序中还会调用别的子程序,这需要把许多个信息依次保留下来,,而且保证逐次正确返回,就要求后保留的值先取出来,能实现这样要求的存储区就是堆栈。,堆 栈(续

49、二),微 机 原 理 及 应 用,定义:堆栈是以“后进先出”方式工作的一个存储区,它必须存在于堆栈段中,因此其地址应存放于SS寄存器中。它只有一个出口,所以只有一个堆栈指针寄存器SP,SP的内容在任何时候都指向当前的栈顶指针堆栈指针SP,用于确定在堆栈操作时,堆栈在内存中的位置,但在8086/8088中SP还必须与SS(堆栈的寄存器)一起才能确定堆栈的实际位置。注意:8086/8088中的指令指针IP,类似于前面提到的程序计数器PC,但二者略有不同,一方面PC是指向下一条即将要执行的指令,而IP是指向下一次要取出的指令,另一方面,在8088/8086中IP要与CS寄存器相配合才能形成真正的物理

50、地址。,5 中断处理子程序的结构模式,1.保护现场(用PUSH 指令);2.设置IF=1开中断,以允许级别较高的中断请求进入;3.子程序的主体;4.恢复现场(用POP指令);5.中断返回:将堆栈中保存的断点值和标志值分别装入IP,CS和标志寄存器FR.中断子程序的起始地址由中断向量表给出。,4.4.3 中断操作,4.4.4 最小工作模式下的总线保持,系统中可以有多个总线控制模块,其它控制模块需要获得对总线的控制时需要向CPU发出(HOLD)请求信号,CPU也须发出(HLDA)应答信号。,第四章 小结,4-1 微处理器概述,4-2 8086/8088 CPU 的结构:EU、BIU、寄存器、标志寄

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号