微机原理 中断

上传人:油条 文档编号:1275458 上传时间:2017-06-04 格式:PPT 页数:101 大小:1.73MB
返回 下载 相关 举报
微机原理 中断_第1页
第1页 / 共101页
微机原理 中断_第2页
第2页 / 共101页
微机原理 中断_第3页
第3页 / 共101页
微机原理 中断_第4页
第4页 / 共101页
微机原理 中断_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《微机原理 中断》由会员分享,可在线阅读,更多相关《微机原理 中断(101页珍藏版)》请在金锄头文库上搜索。

1、第九章 微型计算机中断系统,9-1 概述9-2 中断处理过程9-3 中断优先级和中断嵌套9-4 可编程中断控制器8259A,教材第七章内容,9-1 概述,一、中断概念,1、中断思想的提出CPU与外设数据传送时的矛盾:高速CPU与慢速外设;数据传送方式:无条件方式、查询方式 缺点: 外设有限制或处理器运行时间极大浪费,工作效率低。 解决办法: 一方面设法提高外设的工作速度; 另一方面提出设想: 外设主动提出请求,处理器响应处理中断思想,2、中断的定义CPU正常运行程序时,由于CPU的内部事件或外设请求,引起CPU暂时中断正在运行的程序,转去执行相应的外设(或内部事件)的服务程序,程序执行完后又返

2、回到原先的程序继续执行,这一过程称为中断。中断流程如下页图所示,3、使用中断的好处分时操作 提高效率 CPU在启动外设后与外设同时工作。当外设的数据准备好向CPU发中断请求,CPU响应处理。CPU可让多个外设同时工作,这将加快数据传送速度、提高CPU的效率。实现实时处理 实时控制时,现场各种信息可随时发出中断请求故障自行处理 将计算机在运行的过程中常遇到的意外情况,如:电源突跳,存储器出错,运算溢出等设计成中断,计算机可利用中断系统自行处理或告警。,4、与中断相关的基本概念中断源中断类型号中断请求中断响应中断服务程序中断返回,中断向量中断向量表中断优先级中断嵌套中断屏蔽,5、中断系统的基本功能

3、(1)中断响应,中断服务,中断返回,中断屏蔽;(2)中断优先级排队;(3)中断嵌套。注意: 这些功能是由软件与硬件共同构成的系统完成的。 本章讨论与8086/8088CPU相配合的中断系统,二、中断的分类(中断源的分类),8086/8088可以处理256种不同的中断。两类:内部中断和外部中断。中断源示意图如下图:,1、外部中断(硬件中断)不可屏蔽中断NMI 不能用软件屏蔽,CPU必须响应; 上升沿触发; 中断的类型号为2。可屏蔽中断INTR IF=1,CPU响应中断;IF=0,CPU不响应; 高电平触发,高电平维持到CPU响应中断时结束; 中断类型号由中断控制器8259A或硬件电路提供。,2、

4、内部中断(软件中断) 由三种情况引起:由软中断指令INT n引起 INT n指令,类型号n(0-255)。由CPU运算错误引起除法错中断:类型号0溢出中断:类型号4,由INTO指令引起的中断;,2、内部中断(软件中断)(续)由调试程序debug设置的中断单步中断: 类型号1,TF=1时产生(当前指令需执行完); Debug状态下的T命令执行时产生;断点中断: 类型号3,INT 3指令引起的中断,属于软件中断 Debug状态下由G命令设置,相当于是在程序的某个位置设置了一条INT 3 。,引脚 INTR、INTA#、NMI指令 INT n、INTO、IRET,三、与中断有关的引脚和指令,不同类型

5、的中断处理过程略有不同,本节所介绍的内容主要针对可屏蔽中断的处理过程。 可屏蔽中断处理过程步骤:中断请求中断响应保护现场转入执行中断服务子程序恢复现场中断返回,9-2 中断处理过程,可屏蔽中断处理流程图,1、CPU响应可屏蔽中断的条件(1)外设提出中断申请;(2)本中断未被中断控制器屏蔽;(3)本中断优先级最高;(4)CPU允许中断;,一、CPU响应可屏蔽中断过程,2、CPU响应可屏蔽中断的过程CPU在每条指令的最后一个T周期,检测INTR,若为高电平,且IF=1,则CPU响应中断。响应过程中自动依次完成以下工作:CPU向外设发两个/INTA ,外设收到第2个/INTA 后,立即往数据线上给C

6、PU送中断类型号。CPU从数据线上读取中断类型号;将flags入栈; 保护现行程序运行结果产生的状态和控制标志。,CPU响应中断的过程,关中断(清IF和TF) 为了防止在进入中断处理,但并未执行中断程序这段时间内又响应新的中断。保护断点 将当前指令的下一条指令的CS和IP压入堆栈,使中断处理完成后能正确的回到原程序继续执行。转入相应的中断服务子程序;中断返回 从堆栈中弹出断点的地址和flags的内容,返回主程序的断点处,继续执行主程序。,CPU响应中断的过程,确定中断源的方法:查询中断和矢量中断。查询中断:一种软件查询法,中断响应后,启动中断查询程序,依次查询哪个外设申请了中断,检测以后,转到

7、此设备预先设置的中断服务程序处执行。这种中断处理过程称为查询中断。 特点:速度慢,且后检测的设备服务机会少。矢量中断:中断响应后,外设中断接口电路将中断类型号送给CPU,CPU根据中断类型号找到对应的中断服务程序的入口地址送入CS或IP,然后转入相应的中断服务程序处执行。这种中断处理过程称为矢量中断,也叫向量中断。 特点:速度快。,二、中断向量表,1、中断向量表 又称:中断服务程序的入口地址表。 中断服务程序的入口地址又称中断向量8086在存储器最低的1KB(00000H003FFH)空间内,存放256个中断的中断向量。每个类型号的中断向量占4字节,高2字节存放段基址,低2字节存放偏移地址;按

8、照中断类型号的顺序依次将其中断向量存在1K的内存表中,格式如下:,中断类型号n与中断向量的地址关系:n4中断向量地址(4n 和4n+1)IP (4n+2和4n+3)CS,【例】某中断的类型号为68H,中断的操作过程如下: 步骤分析:取中断类型号68H;计算中断向量地址68H*4=1A0H;取中断入口地址的偏移地址送入IP,段地址送入CS;转向中断服务程序;中断返回到INT 68H指令的下一条指令。,中断操作过程图示,2、中断向量(中断入口地址)的设置 IBM PC对256种中断类型已经进行地址分配,附录D中给出中断向量表。概念:将中断服务程序的入口地址置入中断类型号所对应的中断向量表中。两种方

9、法:用指令设置;用DOS功能调用设置。,用指令设置中断服务程序的入口地址表,MOV AX,0MOV ES,AXMOV BX,N*4MOV AX,OFFSET INTRADMOV ES:BX,AXMOV AX,SEG INTRADMOV ES:BX+2,AX STI .INTRAD:PUSH AX . IRET,PUSH DSMOV AX,0MOV DS,AXMOV BX,N*4MOV AX,OFFSET INTRADMOV BX,AXMOV AX,SEG INTRADMOV BX+2,AXPOP DS STI .INTRAD:PUSH AX . IRET,利用DOS功能调用设置中断服务程序的入

10、口地址表, PUSH DS MOV AX,SEG INTRAD; MOV DS,AX MOV DX,OFFSET INTRAD MOV AL,N MOV AH,25H INT 21H POP DS ,利用DOS功能调用设置中断服务程序的入口地址表,注意:为了避免直接使用中断向量的绝对地址,一般利用DOS功能调用INT 21H设置或取出中断向量。应用时一般在设置自己的中断向量时,应先保存原中断向量,再设置新的中断向量,在程序结束前恢复原中断向量。,【例】利用DOS功能设置中断向量和取中断向量。 MOV AL,N ;取中断向量,并存中断向量 MOV AH,35H INT 21H PUSH ES P

11、USH BX PUSH DS MOV AX,SEG INTRAD;设中断向量 MOV DS,AX MOV DX,OFFSET INTRAD MOV AL,N MOV AH,25H INT 21H POP DS ,POP DX;恢复原中断 POP DS MOV AL,N MOV AH,25H INT 21H INTRAD: IRET,3、中断类型号的获取 矢量中断中,中断入口地址依赖中断类型号,中断型号获取方法:对于专用中断:除法出错、单步中断、不可屏蔽中断、断点中断和溢出中断,由CPU分别提供中断类型号04;对于用户自己确定的软件中断INT n,类型号由n决定;对于INTR引脚上的中断:由硬件

12、电路设计产生中断类型号。可用8259A获取中断类型号。,三、中断服务子程序,1、中断服务子程序特点为”远”过程(类型为FAR) 要用IRET指令返回2、中断服务子程序一般结构形式保护现场(PUSH regs) 开中断(STI) 进行中断处理 关中断(CLI) 恢复现场(POP regs) 中断返回(IRET),【总结】中断处理过程中软件及硬件各自完成的功能归纳1.主程序中的初始化 (1)设置中断向量; (2)设置8259的中断屏蔽寄存器的中断屏蔽位; (3)设置CPU中断允许标志位IF(开中断STI);2.硬件(外设接口)和CPU自动完成 (1)外设向CPU INTR端发出请求; (2)CPU

13、发两个/INTA给外设; (3)CPU取中断类型号 n; (4)CPU自动将flags,CS,IP内容压入堆栈;,(5)清除IF,TF,禁止外部中断和单步中断; (6)从中断向量表中取(4n)地址中内容IP,取(4n+2)地址中内容CS; (7)转向中断服务子程序。3.中断服务子程序【注意】 (1)对重复前缀的指令作为一条处理; (2)遇到STI和IRET,要执行两条后,再响应中断; (3)CPU自动清除IF,TF位,在中断服务程序不允许产生中断,如需要则必须开中断。,设计一个能接收一个中断源的中断系统,用8088CPU。,【例】,主程序初始化将中断服务程序的入口地址装入中断向量表 PUSH

14、DSMOV DX,OFFSET INTER1 MOV AX,SEG INTER1 MOV DS,AXMOV AL,80HMOV AH,25HINT 21HPOP DSSTI,可屏蔽中断处理程序INTER1 PROC FARPUSH AX ;保护现场STI ;开中断以便允许 ;多重中断 . ;中断处理CLI ;关中断POP AX ;恢复现场 IRET ;返回主程序INTER1 ENDP,CPU处理中断的一般原则:多个中断源同时向CPU请求中断,CPU由中断优先级排队决定,先响应优先级高的中断请求。级别不同的中断同时发生时,由高到低依次处理。级别相同的中断同时发生时,按事先设定的次序处理当CPU正在处理中断时,有更高优先级别的中断请求,并且IF1,CPU能响应更高级别的中断请求,而屏蔽掉低级的中断请求,形成中断嵌套,或称为多重中断。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号