欢迎来到天天文库
浏览记录
ID:39252876
大小:878.81 KB
页数:63页
时间:2019-06-28
《微型计算机中断系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章微型计算机中断系统7.1概述(P263)一、中断的概念正在看书电话铃响接电话继续看书执行程序事件发生事件处理继续执行程序中断处理中断请求及响应实际场景计算机中断返回所谓中断,就是CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。中断源引起CPU中断的事件——中断源。例如:外设——请求输入输出数据,报告故障等事件——掉电、硬件故障、软件错误、非法操作、定时时间到等中断源分为:外部中断、内部中断内部中断:CPU内部
2、执行程序时自身产生的中断外部中断:CPU以外的设备、部件产生的中断8086/8088的外部中断信号:INTR、NMIINTR——可屏蔽中断请求,高电平有效,受IF标志的控制。IF=1时,执行完当前指令后CPU对它作出响应。NMI——非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此中断请求信号。中断过程五个步骤:中断请求中断判优(有时还要进行中断源识别)中断响应中断服务中断返回以下以外部中断为主介绍这五个步骤。1)中断请求外设接口(中断源)发出中断请求信号,送到CPU的INTR或NMI引脚;中断请求信号:边沿请求,电平请求例如,NMI为边沿请求,INTR为电平请求中断请求信号应保持到中断被
3、处理为止;CPU响应中断后,中断请求信号应及时撤销。在8086/8088系统中,外设的中断要经过8259A可编程中断控制器(PIC)的排队判优后向CPU发出:(I/O接口)→PIC→CPU2.1)中断源识别计算机中的中断源有很多,CPU必须识别是哪一个设备产生中断。识别中断源有两个方法:软件查询。将中断信号从数据总线读入,用程序进行判别。中断矢量法。由中断源提供中断类型号,CPU根据类型确定中断源。(8086/8088即采用此种方法)2.2)中断判优多个中断源产生中断,CPU首先为谁服务?——中断优先级排队问题。中断优先级控制要处理两种情况:对同时产生的中断:应首先处理优先级别较高的中断;若
4、优先级别相同,则按先来先服务的原则处理;对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断——即允许中断嵌套。中断优先级的控制方法硬件判优——链式判优、并行判优(中断向量法)软件判优——顺序查询中断请求,先查询的先服务(即先查询的优先级别高)通常将中断判优与中断源识别合并在一起进行处理。x86系统中,这项任务由PIC和CPU共同完成。3)中断响应在每条指令的最后一个时钟周期,CPU检测INTR或NMI信号。若以下条件成立,则CPU响应中断:当前指令执行完。对INTR,CPU处于开中断状态,即IF=1;当前没有复位(RESET)和保持(HOLD)信号。若NMI和INTR
5、同时发生,则首先响应NMI。3)中断响应(续)CPU响应中断时,要做下述三项工作:向中断源发出INTA中断响应信号;断点保护,包括CS、IP和PSW(FLAGS)。这主要是保证中断结束后能返回被中断的程序。获得中断服务程序首地址(入口)。4)中断处理(中断服务)中断服务子程序要做的工作保护现场(PUSHreg’s)开中断(STI)进行中断处理恢复现场(POPreg’s)中断返回(IRET)5)中断返回执行中断返回指令IRETIRET指令将使CPU把堆栈内保存的断点信息弹出到IP、CS和FLAG中,保证被中断的程序从断点处能够继续往下执行。IPLIPHCSLCSHFLAGLFLAGHSPIPL
6、IPHCSLCSHFLAGLFLAGHSPIPCSFLAG进入中断服务程序时中断返回后概述8086/8088中断系统具有强大的的功能,可以处理256种不同的中断类型,256种中断可划分为两大类:外部中断和内部中断。二、中断的分类(P264)外部中断:可屏蔽中断(NMI管脚)不可屏蔽中断(INTR管脚)内部中断(软件中断):除法错误异常单步调试中断断点中断软件中断(INT)8088系统的中断源内部中断除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。单步中断:类型号1,TF=1时产生(当前指令需执行完)断点中断:类型号3,这是一个软件中断,即INT3指令。溢出中断:类型号4,这是一个软
7、件中断,即INTO指令。软件中断:即INTn指令,类型号n(0-255)。外部中断非屏蔽中断NMI:类型号2可屏蔽中断INTR:类型号由PIC提供。IF=1时CPU才能响应。与中断有关的控制线为:NMI、INTR、INTA#概述三、中断的向量表(IVT)表的地址位于内存的00000H~003FFH,大小为1KB,共256个中断向量每个中断向量占用4Bytes,低字为段内偏移,高字为段基址根据中断类型号获得中断
此文档下载收益归作者所有