您好,欢迎访问三七文档
1第九章第九章微型计算机中断系统9-1概述9-2中断处理过程9-3中断优先级和中断嵌套9-4可编程中断控制器8259A教材第七章内容2第九章9-1概述一、中断概念1、中断思想的提出CPU与外设数据传送时的矛盾:高速CPU与慢速外设;数据传送方式:无条件方式、查询方式缺点:外设有限制或处理器运行时间极大浪费,工作效率低。解决办法:一方面设法提高外设的工作速度;另一方面提出设想:外设主动提出请求,处理器响应处理--中断思想3第九章2、中断的定义CPU正常运行程序时,由于CPU的内部事件或外设请求,引起CPU暂时中断正在运行的程序,转去执行相应的外设(或内部事件)的服务程序,程序执行完后又返回到原先的程序继续执行,这一过程称为中断。中断流程如下页图所示4第九章5第九章3、使用中断的好处分时操作提高效率CPU在启动外设后与外设同时工作。当外设的数据准备好向CPU发中断请求,CPU响应处理。CPU可让多个外设同时工作,这将加快数据传送速度、提高CPU的效率。实现实时处理实时控制时,现场各种信息可随时发出中断请求故障自行处理将计算机在运行的过程中常遇到的意外情况,如:电源突跳,存储器出错,运算溢出等设计成中断,计算机可利用中断系统自行处理或告警。6第九章4、与中断相关的基本概念中断源中断类型号中断请求中断响应中断服务程序中断返回中断向量中断向量表中断优先级中断嵌套中断屏蔽7第九章5、中断系统的基本功能(1)中断响应,中断服务,中断返回,中断屏蔽;(2)中断优先级排队;(3)中断嵌套。注意:这些功能是由软件与硬件共同构成的系统完成的。本章讨论与8086/8088CPU相配合的中断系统8第九章二、中断的分类(中断源的分类)8086/8088可以处理256种不同的中断。两类:内部中断和外部中断。中断源示意图如下图:8259A可屏蔽中断请求中断逻辑INTO指令INTn指令除法出错单步(TF=1)非屏蔽中断请求8086/8088CPUNMIINTR内部中断外部中断可屏蔽中断非屏蔽中断9第九章1、外部中断(硬件中断)不可屏蔽中断NMI不能用软件屏蔽,CPU必须响应;上升沿触发;中断的类型号为2。可屏蔽中断INTRIF=1,CPU响应中断;IF=0,CPU不响应;高电平触发,高电平维持到CPU响应中断时结束;中断类型号由中断控制器8259A或硬件电路提供。10第九章2、内部中断(软件中断)由三种情况引起:由软中断指令INTn引起INTn指令,类型号n(0-255)。由CPU运算错误引起①除法错中断:类型号0②溢出中断:类型号4,由INTO指令引起的中断;11第九章2、内部中断(软件中断)(续)由调试程序debug设置的中断①单步中断:类型号1,TF=1时产生(当前指令需执行完);Debug状态下的T命令执行时产生;②断点中断:类型号3,INT3指令引起的中断,属于软件中断Debug状态下由G命令设置,相当于是在程序的某个位置设置了一条INT3。12第九章引脚INTR、INTA#、NMI指令INTn、INTO、IRET三、与中断有关的引脚和指令13第九章不同类型的中断处理过程略有不同,本节所介绍的内容主要针对可屏蔽中断的处理过程。可屏蔽中断处理过程步骤:中断请求中断响应保护现场转入执行中断服务子程序恢复现场中断返回9-2中断处理过程14第九章NY保护现场中断服务恢复现场返回取下一条指令执行指令转中断服务程序响应中断关中断保护断点寻找中断源指令结束有中断请求NY可屏蔽中断处理流程图15第九章1、CPU响应可屏蔽中断的条件(1)外设提出中断申请;(2)本中断未被中断控制器屏蔽;(3)本中断优先级最高;(4)CPU允许中断;一、CPU响应可屏蔽中断过程16第九章2、CPU响应可屏蔽中断的过程CPU在每条指令的最后一个T周期,检测INTR,若为高电平,且IF=1,则CPU响应中断。响应过程中自动依次完成以下工作:①CPU向外设发两个/INTA,外设收到第2个/INTA后,立即往数据线上给CPU送中断类型号。②CPU从数据线上读取中断类型号;③将flags入栈;保护现行程序运行结果产生的状态和控制标志。CPU响应中断的过程17第九章④关中断(清IF和TF)为了防止在进入中断处理,但并未执行中断程序这段时间内又响应新的中断。⑤保护断点将当前指令的下一条指令的CS和IP压入堆栈,使中断处理完成后能正确的回到原程序继续执行。⑥转入相应的中断服务子程序;⑦中断返回从堆栈中弹出断点的地址和flags的内容,返回主程序的断点处,继续执行主程序。CPU响应中断的过程18第九章19第九章确定中断源的方法:查询中断和矢量中断。①查询中断:一种软件查询法,中断响应后,启动中断查询程序,依次查询哪个外设申请了中断,检测以后,转到此设备预先设置的中断服务程序处执行。这种中断处理过程称为查询中断。特点:速度慢,且后检测的设备服务机会少。②矢量中断:中断响应后,外设中断接口电路将中断类型号送给CPU,CPU根据中断类型号找到对应的中断服务程序的入口地址送入CS或IP,然后转入相应的中断服务程序处执行。这种中断处理过程称为矢量中断,也叫向量中断。特点:速度快。二、中断向量表20第九章1、中断向量表又称:中断服务程序的入口地址表。中断服务程序的入口地址又称中断向量8086在存储器最低的1KB(00000H~003FFH)空间内,存放256个中断的中断向量。每个类型号的中断向量占4字节,高2字节存放段基址,低2字节存放偏移地址;按照中断类型号的顺序依次将其中断向量存在1K的内存表中,格式如下:21第九章中断类型号n与中断向量的地址关系:n×4=中断向量地址(4n和4n+1)→IP(4n+2和4n+3)→CS22第九章【例】某中断的类型号为68H,中断的操作过程如下:步骤分析:①取中断类型号68H;②计算中断向量地址68H*4=1A0H;③取中断入口地址的偏移地址送入IP,段地址送入CS;④转向中断服务程序;⑤中断返回到INT68H指令的下一条指令。23第九章类型69H中断向量A0002050类型67H中断向量中断处理程序STIPUSHDS…..….IRET2050INT68HMOVAX,00:19C0:1A00:1A20:1A4A000IPCSA000:2050向量地址=68H×4=1A0H①②③④⑤中断操作过程图示24第九章2、中断向量(中断入口地址)的设置IBMPC对256种中断类型已经进行地址分配,附录D中给出中断向量表。概念:将中断服务程序的入口地址置入中断类型号所对应的中断向量表中。两种方法:用指令设置;用DOS功能调用设置。25第九章①用指令设置中断服务程序的入口地址表MOVAX,0MOVES,AXMOVBX,N*4MOVAX,OFFSETINTRADMOVES:[BX],AXMOVAX,SEGINTRADMOVES:[BX+2],AXSTI…..INTRAD:PUSHAX…..IRETPUSHDSMOVAX,0MOVDS,AXMOVBX,N*4MOVAX,OFFSETINTRADMOV[BX],AXMOVAX,SEGINTRADMOV[BX+2],AXPOPDSSTI…..INTRAD:PUSHAX…..IRET26第九章②利用DOS功能调用设置中断服务程序的入口地址表27第九章……PUSHDSMOVAX,SEGINTRAD;MOVDS,AXMOVDX,OFFSETINTRADMOVAL,NMOVAH,25HINT21HPOPDS……②利用DOS功能调用设置中断服务程序的入口地址表28第九章注意:为了避免直接使用中断向量的绝对地址,一般利用DOS功能调用INT21H设置或取出中断向量。应用时一般在设置自己的中断向量时,应先保存原中断向量,再设置新的中断向量,在程序结束前恢复原中断向量。29第九章【例】利用DOS功能设置中断向量和取中断向量。MOVAL,N;取中断向量,并存中断向量MOVAH,35HINT21HPUSHESPUSHBXPUSHDSMOVAX,SEGINTRAD;设中断向量MOVDS,AXMOVDX,OFFSETINTRADMOVAL,NMOVAH,25HINT21HPOPDS……POPDX;恢复原中断POPDSMOVAL,NMOVAH,25HINT21H……INTRAD:……IRET30第九章3、中断类型号的获取矢量中断中,中断入口地址依赖中断类型号,中断型号获取方法:对于专用中断:除法出错、单步中断、不可屏蔽中断、断点中断和溢出中断,由CPU分别提供中断类型号0~4;对于用户自己确定的软件中断INTn,类型号由n决定;对于INTR引脚上的中断:–由硬件电路设计产生中断类型号。–可用8259A获取中断类型号。31第九章三、中断服务子程序1、中断服务子程序特点为”远”过程(类型为FAR)要用IRET指令返回2、中断服务子程序一般结构形式保护现场(PUSHreg’s)开中断(STI)进行中断处理关中断(CLI)恢复现场(POPreg’s)中断返回(IRET)32第九章【总结】中断处理过程中软件及硬件各自完成的功能归纳1.主程序中的初始化(1)设置中断向量;(2)设置8259的中断屏蔽寄存器的中断屏蔽位;(3)设置CPU中断允许标志位IF(开中断STI);2.硬件(外设接口)和CPU自动完成(1)外设向CPUINTR端发出请求;(2)CPU发两个/INTA给外设;(3)CPU取中断类型号n;(4)CPU自动将flags,CS,IP内容压入堆栈;33第九章(5)清除IF,TF,禁止外部中断和单步中断;(6)从中断向量表中取(4n)地址中内容→IP,取(4n+2)地址中内容→CS;(7)转向中断服务子程序。3.中断服务子程序【注意】(1)对重复前缀的指令作为一条处理;(2)遇到STI和IRET,要执行两条后,再响应中断;(3)CPU自动清除IF,TF位,在中断服务程序不允许产生中断,如需要则必须开中断。34第九章设计一个能接收一个中断源的中断系统,用8088CPU。【例】35第九章主程序初始化将中断服务程序的入口地址装入中断向量表……PUSHDSMOVDX,OFFSETINTER1MOVAX,SEGINTER1MOVDS,AXMOVAL,80HMOVAH,25HINT21HPOPDSSTI……可屏蔽中断处理程序INTER1PROCFARPUSHAX;保护现场STI;开中断以便允许;多重中断...;中断处理CLI;关中断POPAX;恢复现场IRET;返回主程序INTER1ENDP36第九章CPU处理中断的一般原则:多个中断源同时向CPU请求中断,CPU由中断优先级排队决定,先响应优先级高的中断请求。–级别不同的中断同时发生时,由高到低依次处理。–级别相同的中断同时发生时,按事先设定的次序处理当CPU正在处理中断时,有更高优先级别的中断请求,并且IF=1,CPU能响应更高级别的中断请求,而屏蔽掉低级的中断请求,形成中断嵌套,或称为多重中断。9-3中断优先级和中断嵌套37第九章1、不同级别中断优先级顺序计算机中的中断源,优先级从高到低的顺序如下:(1)内部中断(除法错,INTO,INTn)(2)NMI(3)INTR(4)单步中断一、中断优先级38第九章2、可屏蔽中断的优先级设定方法软件查询中断优先级查询程序的次序,决定了外设优先级别的高低,先测试的中断源优先级别最高,依次下降。硬件查询优先方式——菊花链法矢量中断优先级设置一般是采用中断优先级控制器(如8259A)。39第九章可屏蔽中断的优先级设定--软件查询中断优先级≥1中断请求寄存器PORTINTR0INTR1INTR2INTR3INTR4INTR5INTR6INTR7CPUINTR缓冲器.....D7~D0译码40第九章软件查询中断优先级0号申请中断1号申请中断保护现场中断处理程序...恢复现场中断返回0号外设服务程序1号外设服务程序YYNN中断服务子程序处理流程41第九章移位法XORAL,ALINA
本文标题:微机原理 中断
链接地址:https://www.777doc.com/doc-4027188 .html