微机原理与接口技术——中断系统_第1页
微机原理与接口技术——中断系统_第2页
微机原理与接口技术——中断系统_第3页
微机原理与接口技术——中断系统_第4页
微机原理与接口技术——中断系统_第5页
已阅读5页,还剩141页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章 中断系统2掌握:n中断的基本概念中断的基本概念n中断响应的一般过程中断响应的一般过程n中断向量表及其初始化中断向量表及其初始化n8088/8086中断系统中断系统n可编程中断控制器可编程中断控制器8259An中断调用中断调用3一、中断的基本概念n中断:中断:nCPU执行程序时,由于发生了某种随机的事件执行程序时,由于发生了某种随机的事件(外外部或内部部或内部),引起,引起CPU暂时中断正在运行的程序,暂时中断正在运行的程序,转去执行一段特殊的服务程序转去执行一段特殊的服务程序(称为中断服务程序称为中断服务程序或中断处理程序或中断处理程序),以处理该事件,该事件处理完,以处理该事件,该事

2、件处理完后又返回被中断的程序继续执行,这一过程称为中后又返回被中断的程序继续执行,这一过程称为中断。断。4中断源n引起引起CPU中断的事件,发出中断请求的来源。中断的事件,发出中断请求的来源。内部中断内部中断外部中断外部中断异常中断异常中断软件中断软件中断可屏蔽中断可屏蔽中断非屏蔽中断非屏蔽中断异常事件引起异常事件引起中断指令引起中断指令引起INTR中断中断NMI中断中断5引入中断的原因n提高数据传输率;提高数据传输率;n避免了避免了CPU不断检测外设状态的过程,提高了不断检测外设状态的过程,提高了CPU的利用率。的利用率。n实现对特殊事件的实时响应。实现对特殊事件的实时响应。6中断系统n正确

3、识别中断请求,实现中断响应、中断处理正确识别中断请求,实现中断响应、中断处理及中断返回;及中断返回;n实现中断优先级排队;实现中断优先级排队;n实现中断嵌套实现中断嵌套中断系统是指实现中断功能的中断系统是指实现中断功能的软硬件软硬件的统称。功的统称。功能有:能有:中断系统的功能n 实现实现中断及返回中断及返回 中断源发出中断请求,中断源发出中断请求,CPU决定是否响应:决定是否响应:若若响应响应,则,则保护断点和现场保护断点和现场,转入相应中断服务程序,转入相应中断服务程序,中断服务结束中断服务结束后,后,恢复现场和断点恢复现场和断点,继续执行原,继续执行原程序。程序。CPU执行中断服务程序1

4、非预料事件17非预料事件非预料事件是指事件发生的时间无法预知,即中是指事件发生的时间无法预知,即中断源何时产生中断不确定,是随机的。断源何时产生中断不确定,是随机的。中断源产生中断的随机性,使中断服务程序的执行中断源产生中断的随机性,使中断服务程序的执行也具有随机性,即何时执行中断服务程序不是在程序也具有随机性,即何时执行中断服务程序不是在程序中安排好的。中安排好的。中断系统的功能(续)8n 实现实现优先权排队优先权排队按各中断请求的重要程度排列按各中断请求的重要程度排列CPU响应的次序称为响应的次序称为中断优先级中断优先级。 即同时有多个中断请求到来时,即同时有多个中断请求到来时,CPU会首

5、先响应和会首先响应和处理优先级别最高的中断请求。处理优先级别最高的中断请求。中断优先级的实现可以用中断优先级的实现可以用软件软件或或硬件硬件的办法。的办法。中断系统的功能(续)9n 实现实现中断嵌套中断嵌套:n当当CPU在处理某一级中断时,若有高一级的中断在处理某一级中断时,若有高一级的中断请求,中断系统应能安排请求,中断系统应能安排CUP暂时停止现行的中暂时停止现行的中断处理,响应高一级的中断断处理,响应高一级的中断中断系统的功能(续)1011二、外部中断响应的一般过程n中断请求中断请求n中断源识别及中断判优中断源识别及中断判优n中断响应中断响应n中断处理(服务)中断处理(服务)n中断返回中

6、断返回12中断请求n中断请求信号应保持到中断被处理为止;中断请求信号应保持到中断被处理为止;nCPU响应中断后,中断请求信号应及时撤销。响应中断后,中断请求信号应及时撤销。NMI(非屏蔽中断)(非屏蔽中断)INTR(可屏蔽中断)(可屏蔽中断)13中断源识别n软件查询法软件查询法n中断矢量法中断矢量法n由中断源提供中断类型号,由中断源提供中断类型号,CPU根据类型确定根据类型确定中断源。中断源。中断源识别及判优由硬件系统完成中断源识别及判优由硬件系统完成14中断判优n当有多个中断源同时提出请求时,需要确定当有多个中断源同时提出请求时,需要确定首先响应哪一个中断源。首先响应哪一个中断源。n优先级法

7、则优先级法则n低优先级的中断程序允许被高优先级的中断源低优先级的中断程序允许被高优先级的中断源所中断所中断n排队法则排队法则n先来先响应先来先响应中断嵌套中断嵌套15中断判优n软件判优软件判优n顺序查询中断请求,先查询的先服务顺序查询中断请求,先查询的先服务n即先查询的优先级别高即先查询的优先级别高n硬件判优硬件判优n链式判优、并行判优(中断向量法)链式判优、并行判优(中断向量法)16中断响应n向中断源发出向中断源发出INTA中断响应信号;中断响应信号;n关中断关中断n保护硬件现场保护硬件现场n将将FLAGS压入堆栈压入堆栈n保护断点保护断点n将将CS、IP压入堆栈压入堆栈n获得中断服务程序入

8、口地址获得中断服务程序入口地址由由硬硬件件系系统统完完成成17中断处理n保护现场保护现场n执行中断服务程序执行中断服务程序n恢复现场恢复现场n中断服务程序的特点:中断服务程序的特点:n为为“远过程远过程”n用用IRET指令返回指令返回18中断服务子程序完成的工作n关中断,保护现场,保护断点,找入口地址关中断,保护现场,保护断点,找入口地址n保护软件现场(参数)保护软件现场(参数)n开中断(开中断(STI)n中断处理中断处理n关中断(关中断(CLI)n恢复现场恢复现场n中断返回中断返回19中断返回n执行执行IRET指令,使指令,使IP、CS和和FLAGS从堆栈弹从堆栈弹出出n如要实现中断嵌套,则

9、在保护现场后,要执行如要实现中断嵌套,则在保护现场后,要执行开中断指令开中断指令恢复断点和硬件现场恢复断点和硬件现场中断处理过程流程20中断请求识别中断源关中断保护硬件现场保护断点确定中断服务程序入口地址保护软件现场开中断执行中断服务程序关中断恢复软件现场恢复断点开中断中断返回恢复硬件现场n当前当前CPU正在进行某一优先权级别的中断源的处正在进行某一优先权级别的中断源的处理;理;n有更高级别的中断源发出请求,且新中断源满足有更高级别的中断源发出请求,且新中断源满足响应条件;响应条件;nCPU中止当前的中断服务程序,保护断点和现场中止当前的中断服务程序,保护断点和现场,转而响应高级中断,转而响应

10、高级中断 这种多级中断的处理方式即为这种多级中断的处理方式即为“嵌套嵌套”。某些。某些中断系统对中断嵌套的层数有一定限制。中断系统对中断嵌套的层数有一定限制。中断嵌套21n高级中断源能中断低级的中断处理高级中断源能中断低级的中断处理 当当CPU正在处理某个中断时,如果外部又有一正在处理某个中断时,如果外部又有一个优先级别比本优先级别更高的中断请求,则可以个优先级别比本优先级别更高的中断请求,则可以实现实现中断嵌套中断嵌套。22中断嵌套CPU正常执行正常执行中断服务程序中断服务程序1非预料事件非预料事件1中断服务程序中断服务程序2非预料事件非预料事件223中断服务程序中断服务程序(用户自行编制)

11、:(用户自行编制):n保护现场保护现场:保存:保存CPU内部各寄存器的内容,以便在服务程内部各寄存器的内容,以便在服务程序中使用;序中使用;n开总中断开总中断:将:将IF置置1,使,使CPU在中断服务期间仍能响应更高在中断服务期间仍能响应更高级的级的INTR请求;请求;n具体处理具体处理:用户的中断服务用户的中断服务n关总中断关总中断:将:将IF位清位清0;n恢复现场恢复现场:将入栈保护的各寄存器内容依次弹出;:将入栈保护的各寄存器内容依次弹出;n中断返回中断返回:执行:执行IRET指令,指令,CPU将自动弹出给将自动弹出给IP、CS、FLAGS,就可以接着执行被中断的原程序;,就可以接着执行

12、被中断的原程序; n开总中断开总中断:再次将:再次将IF位置位置1,使返回后能够重新响应,使返回后能够重新响应24257.2 8086中断系统内部中断内部中断外部中断外部中断异常中断异常中断软件中断软件中断非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断256个中个中断源断源除法错中断除法错中断溢出中断溢出中断单步中断单步中断 根据根据8086内部的中断逻辑电路,各种中断源的优先权顺序为:内部的中断逻辑电路,各种中断源的优先权顺序为:被被0除中断除中断软件中断软件中断INTO NMI INTR 单步中断。单步中断。 CPU内的中断逻辑内的中断逻辑NMI自动产生的中断自动产生的中断除法错除法错单步(单步

13、(TF=1)软件中断软件中断INT nINTOCPUCPU内部内部8259AINTRIRQ1键盘键盘IRQ2彩色彩色/ /图形接口图形接口IRQ3保留保留( (串口串口) )IRQ4 串口串口IRQ5保留保留(LPT)(LPT)IRQ0系统定时器系统定时器IRQ7 LPTLPTIRQ6软盘软盘8086中断系统26中断类型码、中断向量表和中断向量n中断类型码中断类型码:8086可以处理可以处理256个中断请求,每个中个中断请求,每个中断请求均对应于惟一固定的类型码。断请求均对应于惟一固定的类型码。被被0除类型码是除类型码是0,单步为,单步为1;NMI为为2;断点中断为;断点中断为3,溢出中断为,

14、溢出中断为4 等等。n中断向量中断向量:即中断服务程序的入口地址,包括段地址:即中断服务程序的入口地址,包括段地址(高字单元)和偏移地址(低字单元)。(高字单元)和偏移地址(低字单元)。n中断向量表中断向量表:存放中断向量的表,位于内存空间的最:存放中断向量的表,位于内存空间的最低地址单元,长低地址单元,长1KB。共可容纳。共可容纳256个中断向量(个中断向量(25641024)。)。27中断类型码一、中断类型码一、中断类型码:8086可以处理可以处理256个中断请求。每个中断个中断请求。每个中断请求均对应于唯一固定的类型码。请求均对应于唯一固定的类型码。被被0除类型码是除类型码是0,单步,单

15、步为为1; NMI为为2;断点中断为;断点中断为3,溢出中断为,溢出中断为4;等。;等。类型类型码码中断源中断源类型码类型码中断源中断源类型码类型码中断源中断源00H 被被0 0除除0FH并口并口1 1(打印机)(打印机)中断中断1EH 磁盘参数磁盘参数01H 单步中断单步中断10H显示器驱动程序显示器驱动程序1FH图形字符集图形字符集02H NMINMI11H设备检测设备检测20H程序结束程序结束03H 断点中断断点中断12H存储器检测存储器检测21HDOSDOS系统调用系统调用28IBM PC/XT中断源的功能类型码类型码中断源中断源类型码类型码中断源中断源类型码类型码中断源中断源00H被

16、被0除除0FH并口并口1(打印机)中断(打印机)中断1EH磁盘参数磁盘参数01H单步中断单步中断10H显示器驱动程序显示器驱动程序1FH图形字符集图形字符集02HNMI11H设备检测设备检测20H程序结束程序结束03H断点中断断点中断12H存储器检测存储器检测21HDOS系统调用系统调用04H溢出中断溢出中断13H软盘驱动程序软盘驱动程序22H结束地址结束地址05H打印屏幕打印屏幕14H通信驱动程序通信驱动程序23HCtrl-Break夭折键处理夭折键处理06H(保留)(保留)15H盒式磁带机驱动程序盒式磁带机驱动程序24H关键性错误处理关键性错误处理07H(保留)(保留)16H硬盘驱动程序硬

17、盘驱动程序25H磁盘顺序读磁盘顺序读08H定时中断定时中断17H打印机驱动程序打印机驱动程序26H磁盘顺序写磁盘顺序写09H键盘中断键盘中断18HBASIC程序程序27H程序结束且驻留内存程序结束且驻留内存0AH保留的硬件中断保留的硬件中断19H引导(引导(BOOT)程序)程序28HDOS内部使用内部使用0BH异步串口异步串口2中断中断1AH年月日定时中断年月日定时中断292EHDOS保留使用保留使用0CH异步串口异步串口1中断中断1BH用户键盘用户键盘2FHDOS内部使用内部使用0DH并口并口2(硬磁盘)中断(硬磁盘)中断1CH用户定时器时标用户定时器时标303FHDOS保留使用保留使用0E

18、H软盘中断软盘中断1DHCRT初始化参数初始化参数40FFH用户自定义用户自定义291、非屏蔽中断(非屏蔽中断(NMI):不受中断标志位的控制,中断类型:不受中断标志位的控制,中断类型号为号为2,所以中断向量放在,所以中断向量放在0000:0008开始的开始的4个单元中。个单元中。NMI中断一般用于紧急情况的处理,不受中断标志位中断一般用于紧急情况的处理,不受中断标志位IF影响影响 。 2、可屏蔽中断(可屏蔽中断(INTR):受中断标志位的控制,:受中断标志位的控制,IF=1,CPU才能响应才能响应INTR中断。中断。CPU响应响应INTR中断时,往中断时,往INTA引引脚上发两个负脉冲,外设

19、接到第二个负脉冲后,立即往数据总脚上发两个负脉冲,外设接到第二个负脉冲后,立即往数据总线上送出中断类型码,供线上送出中断类型码,供CPU读取。读取。1、外部中断硬件中断30非屏蔽中断NMInIBM PC/XT的的NMI来源于三方面:来源于三方面:n存储器奇偶校验错误存储器奇偶校验错误PCKnI/O通道奇偶校验错误通道奇偶校验错误IOCHCKn协处理器产生异常协处理器产生异常N.P.NPIn三种信号通过三种信号通过NMI屏蔽触发器,向屏蔽触发器,向CPU的的NMI引引脚送出;脚送出;n系统上电之初,系统上电之初,RESET信号先将信号先将NMI屏蔽触发器屏蔽触发器清清0。等系统自检完成之后,再写

20、入控制字解除对。等系统自检完成之后,再写入控制字解除对NMI的屏蔽。的屏蔽。31外部中断源的管理 n多个外部硬件中断源共用一条多个外部硬件中断源共用一条INTR线时,要在程线时,要在程序中采取一定措施或用外部硬件解决中断源的序中采取一定措施或用外部硬件解决中断源的优先优先权排列和多级中断的嵌套权排列和多级中断的嵌套等。等。n中断优先权中断优先权(优先级):中断优先权就是为每个中(优先级):中断优先权就是为每个中断源所确定的响应级别。断源所确定的响应级别。n软件排序软件排序:CPU响应中断后,在程序中用查询的方响应中断后,在程序中用查询的方法判定外设的中断请求。法判定外设的中断请求。32外部中断

21、源的管理n软件查询软件查询排序的特点是:排序的特点是:查询次序查询次序即优先权排即优先权排序,最先被询问的故障具有最高优先级;节省序,最先被询问的故障具有最高优先级;节省硬件;修改方便,只要改变程序中的查询次序硬件;修改方便,只要改变程序中的查询次序即可;由询问转至真正的服务程序入口时间长即可;由询问转至真正的服务程序入口时间长,在中断源较多的情况下执行速度较慢。,在中断源较多的情况下执行速度较慢。n硬件排序硬件排序:采用:采用优先权的编码电路优先权的编码电路,对各种外,对各种外部硬中断进行排队。还有菊花链式硬件排序电部硬中断进行排队。还有菊花链式硬件排序电路,以及中断控制集成芯片路,以及中断

22、控制集成芯片8259A33342、内部中断软件中断内部中断指内部中断指由指令的执行或软件对标志寄存器中由指令的执行或软件对标志寄存器中某个标志的设置产生的中断某个标志的设置产生的中断专用中断专用中断指令中断指令中断内部中断的种类(1)除法出错中断)除法出错中断 类型号为类型号为00H 除法出错中断既不是外部硬件产生,也不是用除法出错中断既不是外部硬件产生,也不是用软件指令产生,而是软件指令产生,而是CPU自身产生的,因此自身产生的,因此0型中型中断没有对应的中断指令,即指令系统中没有断没有对应的中断指令,即指令系统中没有INT 0这条指令。这条指令。3536 对单步中断要注意三点:对单步中断要

23、注意三点:一、所有类型的中断在其处理过程中,一、所有类型的中断在其处理过程中,CPU会自动地把标志会自动地把标志寄存器寄存器FLAGS压入堆栈,然后清除压入堆栈,然后清除TF和和IF。因此当。因此当CPU进入进入单步中断处理程序时,就不再处于单步工作方式,而以正常方单步中断处理程序时,就不再处于单步工作方式,而以正常方式工作。只有在单步处理结束时,从堆栈中弹出原来的标志,式工作。只有在单步处理结束时,从堆栈中弹出原来的标志,才能使才能使CPU又回到单步方式。又回到单步方式。(IF=1, TF=1)二、通常程序编制好后,在二、通常程序编制好后,在DEBUG调试程序时可使用单步中调试程序时可使用单

24、步中断检查程序,是通过跟踪命令断检查程序,是通过跟踪命令TF来实现单步运行。来实现单步运行。(2)单步中断(陷阱中断)单步中断(陷阱中断) 类型号为类型号为01H37三、三、8086/8088指令系统中没有设置或清除指令系统中没有设置或清除TF标志的指令,但指令系统中的标志的指令,但指令系统中的PUSHF和和POPF为为程序员提供了置位或复位程序员提供了置位或复位TF的手段。置位和复位的手段。置位和复位TF的程序段如下所示:的程序段如下所示:(2)单步中断(陷阱中断)单步中断(陷阱中断) 类型号为类型号为01H内部中断的种类置位置位TF标志标志(D8=1)PUSHFPOP AXOR AX, 0

25、100HPUSH AXPOPF;复位复位TF标志标志PUSHFPOP AXAND AX, 0FEFFHPUSH AXPOPF(2)单步中断(陷阱中断)单步中断(陷阱中断) 类型号为类型号为01H38内部中断的种类39(3) 断点中断断点中断 类型号为类型号为03H 设置断点实际上是把一条断点指令设置断点实际上是把一条断点指令INT 3插入程序中,插入程序中,CPU每执行到断点处的每执行到断点处的INT 3指令便产生一个中断。指令便产生一个中断。(4)溢出中断)溢出中断 类型号为类型号为04H 在执行溢出中断指令在执行溢出中断指令INTO时,若标志寄存器时,若标志寄存器FLAGS中的中的溢出标志

26、溢出标志OF=1,则产生一个类型号为,则产生一个类型号为4的内部中断,称为溢出的内部中断,称为溢出中断。中断。内部中断的种类 对带符号数来说,溢出就意味着出错(加、减运算对带符号数来说,溢出就意味着出错(加、减运算),一旦产生应立即发现,而),一旦产生应立即发现,而CPU并不知道当前处理的并不知道当前处理的数据是无符号数还是带符号数,只有程序员才明确这一数据是无符号数还是带符号数,只有程序员才明确这一点。点。 因此通常在带符号数的加、减法运算后面总是跟着因此通常在带符号数的加、减法运算后面总是跟着INTO指令指令40(4)溢出中断)溢出中断 类型号为类型号为04H41如下面的指令用来测试加法的

27、溢出:如下面的指令用来测试加法的溢出:ADD AX ,VALUINTO当标志寄存器的当标志寄存器的OF=0时,则时,则INTO指令不产生中断,指令不产生中断,CPU继继续运行原程序;续运行原程序;当当OF=1时,进入溢出中断处理程序,打印出一个出错信息时,进入溢出中断处理程序,打印出一个出错信息,在处理程序结束时,不返回原程序继续运行,而是把控制,在处理程序结束时,不返回原程序继续运行,而是把控制交给操作系统。交给操作系统。(4)溢出中断)溢出中断 类型号为类型号为04H42(5) 指令中断指令中断 在在8086/8088的指令系统中,当的指令系统中,当CPU执行中执行中断指令断指令INT n

28、时,也能形成内部中断,其中时,也能形成内部中断,其中n在理在理论上可取值论上可取值0255。当。当n0、1、3、4时,就是时,就是上述的四种内部中断。上述的四种内部中断。内部中断的种类内部中断的特点 (1) 除除单步中断单步中断以外,所有内部中断都不能被屏蔽。以外,所有内部中断都不能被屏蔽。(2) 所有内部中断不从外部接口中读取中断类型号也所有内部中断不从外部接口中读取中断类型号也不发送中断响应信号,即不执行中断响应的总线周不发送中断响应信号,即不执行中断响应的总线周期。期。(3) 指令中断没有随机性,外中断是随机性的。指令指令中断没有随机性,外中断是随机性的。指令中断是由程序中指令引起的,指

29、令位置事先已知。中断是由程序中指令引起的,指令位置事先已知。外中断是随机性的,由外中断是随机性的,由I/O设备引起,何时引起事先设备引起,何时引起事先未知。未知。4344(4) 除单步中断外,所有内部中断的优先权都比除单步中断外,所有内部中断的优先权都比外部中断的优先权高。外部中断的优先权高。内部中断的特点 8086中断的优先级别:中断的优先级别:内部中断(单内部中断(单步中断除外)步中断除外)非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断单步中断单步中断IBM PC/XT中断源的功能类型码类型码中断源中断源类型码类型码中断源中断源类型码类型码中断源中断源00H被被0除除0FH并口并口1(打印机)中

30、断(打印机)中断1EH磁盘参数磁盘参数01H单步中断单步中断10H显示器驱动程序显示器驱动程序1FH图形字符集图形字符集02HNMI11H设备检测设备检测20H程序结束程序结束03H断点中断断点中断12H存储器检测存储器检测21HDOS系统调用系统调用04H溢出中断溢出中断13H软盘驱动程序软盘驱动程序22H结束地址结束地址05H打印屏幕打印屏幕14H通信驱动程序通信驱动程序23HCtrl-Break夭折键处理夭折键处理06H(保留)(保留)15H盒式磁带机驱动程序盒式磁带机驱动程序24H关键性错误处理关键性错误处理07H(保留)(保留)16H硬盘驱动程序硬盘驱动程序25H磁盘顺序读磁盘顺序读

31、08H定时中断定时中断17H打印机驱动程序打印机驱动程序26H磁盘顺序写磁盘顺序写09H键盘中断键盘中断18HBASIC程序程序27H程序结束且驻留内存程序结束且驻留内存0AH保留的硬件中断保留的硬件中断19H引导(引导(BOOT)程序)程序28HDOS内部使用内部使用0BH异步串口异步串口2中断中断1AH年月日定时中断年月日定时中断292EHDOS保留使用保留使用0CH异步串口异步串口1中断中断1BH用户键盘用户键盘2FHDOS内部使用内部使用0DH并口并口2(硬磁盘)中断(硬磁盘)中断1CH用户定时器时标用户定时器时标303FHDOS保留使用保留使用0EH软盘中断软盘中断1DHCRT初始化

32、参数初始化参数40FFH用户自定义用户自定义45中断向量和中断向量表一、一、中断向量中断向量:中断服务程序的入口地址中断服务程序的入口地址,包括段地址,包括段地址(CS, 存放于高存放于高4字节单元)和偏移地址(字节单元)和偏移地址(IP, 存放于低存放于低4字节单元)。字节单元)。二、二、中断向量表中断向量表:存放中断向量的表格。位于内存空间:存放中断向量的表格。位于内存空间的最低地址,长度的最低地址,长度1KB,可容纳,可容纳256类中断向量(类中断向量(256 41024)。)。中断号与中断服务程序入口地址中断号与中断服务程序入口地址的连接表的连接表46中断向量和中断向量表4748中断向

33、量表的初始化n将用户自定义的中断服务程序入口地址放入向将用户自定义的中断服务程序入口地址放入向量表量表n注意点:注意点:n向量表所在的段地址向量表所在的段地址=0n存放子程序入口的单元的偏移地址存放子程序入口的单元的偏移地址=n4中断向量的设置方法用三种方法来为中断类型用三种方法来为中断类型N设置中断向量设置中断向量1) 直接装入法直接装入法MOV AX, 00HMOV DS, AXMOV BX, N*4;中断号中断号BXMOV AX, OFFSET NEWINT ;中断服务程序偏移地址中断服务程序偏移地址MOV WORD PTR BX,AX;装入偏移地址装入偏移地址MOV AX, SEG N

34、EWINT;段基址;段基址MOV WORD PTR BX+2,AX;装入段基址装入段基址NEWINT PROCIRETNEWINT ENDP、 、 、 、 、49中断向量的设置方法2) 使用串送存指令装入法使用串送存指令装入法CLI;关中断关中断MOV AX, 0MOV ES, AX;ES=0MOV DI, N*4;中断向量指针;中断向量指针MOV AX, OFFSET NEWINT;偏移地址偏移地址CLD;DF=0,增地址,增地址STOSW; 存串指令存串指令 AXDIDI+1,再再DI+2MOV AX, SEG NEWINT; 段基段基址址STOSW;存串指令存串指令 AXDI+2DI+3

35、STI;开中断开中断50中断向量的设置方法3) 使用使用DOS功能调用设置中断向量功能调用设置中断向量 设置中断向量是把由设置中断向量是把由AL指指定的中断类型定的中断类型N的中断向量的中断向量DS:DX放置在中断向量表中。放置在中断向量表中。预置:预置:(AH)=25H 功能号功能号 ( AL)=N 中断类型号中断类型号 DS:DX=中断向量中断向量执行:执行:INT 21H例如:例如:MOV AX, SEG NEWINTMOV DS, AXMOV DX, OFFSET NEWINTMOV AL, NMOV AH, 25HINT 21H51中断向量的设置方法n 例:利用例:利用 INT 21

36、H 设置中断向量设置中断向量MOV AH,25H; DOS功能调用号功能调用号25H AHMOV AL,40H; 将设置的中断类型码将设置的中断类型码 ALMOV DS,SEG USERINTMOV DX,OFFSET USERINT; 入口参数:入口参数:中断服务程序的入口地址中断服务程序的入口地址 DS:DXINT 21H 执行之后,中断服务程序的入口地址值将放入中断向执行之后,中断服务程序的入口地址值将放入中断向量表中量表中n4处连续的处连续的4个单元中。个单元中。 52537.2.4 中断响应与处理一、内部中断响应过程一、内部中断响应过程 1. 当内部中断发生时,当内部中断发生时, 或

37、由或由INT n指令获得中断类型码,指令获得中断类型码, 或是按预定方式得到中断类型码(专用中断:或是按预定方式得到中断类型码(专用中断:0、1、3、4);); 2. 将类型码将类型码4,作为中断向量表的指针;,作为中断向量表的指针; 3. FR(PSW)入栈保护;)入栈保护;544. 清除清除IF和和TF标志(标志(0 IF、0 TF,屏蔽新的,屏蔽新的INTR中断和单步中断;中断和单步中断; 5. 把断点处的把断点处的IP和和CS值压入堆栈:先压入值压入堆栈:先压入CS值,值,再压入再压入IP值;值; 6. 取中断向量(中断服务程序的入口地址),分别取中断向量(中断服务程序的入口地址),分

38、别送至送至CS和和IP。 按新的地址执行中断服务子程序。按新的地址执行中断服务子程序。内部中断响应过程55内部中断的特点:内部中断的特点:1进入中断时,不需要执行中断响应周期去获得中进入中断时,不需要执行中断响应周期去获得中断类型码。断类型码。2除单步中断外,内部中断无法用软件禁止,不受除单步中断外,内部中断无法用软件禁止,不受IF的影响。的影响。3内部中断没有随机性,由指令在程序中的位置决内部中断没有随机性,由指令在程序中的位置决定。定。4除单步中断外,内部中断优先级高于硬件中断。除单步中断外,内部中断优先级高于硬件中断。内部中断响应过程外部中断响应过程1. 非屏蔽中断非屏蔽中断NMI的响应

39、的响应 中断类型码为中断类型码为2。 当当NMI发生时,发生时,CPU在执行完当前指令后,转在执行完当前指令后,转去中断类型码为去中断类型码为2的中断服务子程序。的中断服务子程序。响应过程(除响应过程(除中断类型码中断类型码获得方式外)同获得方式外)同INT n。 CPU提供,不是外设提供。提供,不是外设提供。5657类型码类型码 INTACLKAD7AD0T1T2T3T4第一个第一个中断响应周期中断响应周期T1T2T3T4第二个第二个中断响应周期中断响应周期 可屏蔽中断可屏蔽中断INTR:CPU将执行持续两个总线周期的中断将执行持续两个总线周期的中断响应周期。响应周期。第一个总线周期第一个总

40、线周期 INTA*有效,向外设送出的中断有效,向外设送出的中断应答信号;应答信号;第二个总线周期第二个总线周期INTA*再次有效,表示外设应送再次有效,表示外设应送出中断类型码。出中断类型码。CPU将在将在T4周期前沿读取中断类型码。周期前沿读取中断类型码。外部中断响应过程58 在在INTR线上的请求信号(高电平)必须保持到线上的请求信号(高电平)必须保持到当前指令当前指令的的结束。结束。当当INTR线有效且线有效且IF=1,则,则CPU在当前指令执行完毕后,响在当前指令执行完毕后,响应外部中断请求,转入中断响应周期。应外部中断请求,转入中断响应周期。中断响应周期有中断响应周期有2个,每个响应

41、周期由个,每个响应周期由4个个T组成,中间以空组成,中间以空闲状闲状 态(态(3个)隔开。个)隔开。2. 可屏蔽中断可屏蔽中断INTR的响应的响应类型码类型码 INTACLKAD7AD0T1T2T3T4第一个第一个中断响应周期中断响应周期T1T2T3T4第二个第二个中断响应周期中断响应周期59在每个中断响应周期,在每个中断响应周期,CPU都往引脚都往引脚INTA*发一个负脉冲信发一个负脉冲信号号请求中断的外设在收到第请求中断的外设在收到第2个个INTA*时,将中断类型码时,将中断类型码 DB(通常由(通常由8259传送)。传送)。 获得中断类型码后,则转入中断处理过程(同内部中断)。获得中断类

42、型码后,则转入中断处理过程(同内部中断)。 INTR共执行共执行7个总线周期。个总线周期。类型码类型码 INTACLKAD7AD0T1T2T3T4第一个第一个中断响应周期中断响应周期T1T2T3T4第二个第二个中断响应周期中断响应周期中断响应周期时序CPU从引脚从引脚INTA 发中断响应信号,发中断响应信号, 接 口 芯 片 接 收 此 信 号 , 把 中 断 类 型 号 准 备 好 ; 同 时接 口 芯 片 接 收 此 信 号 , 把 中 断 类 型 号 准 备 好 ; 同 时ISRi=1,IRRi=0。CPU再从引脚再从引脚INTA 发中断响应信号,发中断响应信号, 接口芯片接此信号后,将

43、中断类型号送至数据总线上;接口芯片接此信号后,将中断类型号送至数据总线上;CPU从数据总线获取中断类型号。从数据总线获取中断类型号。向量类型向量类型T1T2T3T4T1T2T3T46061中断中断类型码的获取类型码的获取NMI、断点中断、溢出中断、被、断点中断、溢出中断、被0除、单步中断等类型除、单步中断等类型码固定。码固定。INT N软中断类型码由立即数软中断类型码由立即数N给出。给出。外部中断读取中断类型码。外部中断读取中断类型码。中断响应过程中断响应过程6263已知中断类型码后,如何进入中断服务程序?已知中断类型码后,如何进入中断服务程序?1、将中断类型码乘以、将中断类型码乘以4,得到中

44、断向量表的向量首址指针;,得到中断向量表的向量首址指针;2、将断点(当前、将断点(当前CS、IP的值)入栈保护;的值)入栈保护;3、取中断向量:把向量表指针所指的、取中断向量:把向量表指针所指的4个连续字节的内容作个连续字节的内容作为中断服务程序的入口地址,分别送给为中断服务程序的入口地址,分别送给IP和和CS;4、按新的、按新的CS:IP指针执行中断服务程序。指针执行中断服务程序。中断响应过程中断响应过程64(FLAG)1000:150H3000:200H0: N40: N4+20: 0000内内 存存 、 、 0200H 3000H 、 、 、 MOV AX, 0 ADD AX, DX M

45、OV DI, AX、 MOV BX,CX、 IRET、类型类型N中断子程中断子程响应中断前响应中断前 SS:SP 01501000堆栈堆栈执行执行IRET后后 (IP) (CS)(PSW)SS:SP 响应中断后响应中断后SS:SP (IP)=0200H(CS)=3000H中断向量表中断向量表0:0 3FFH0:3FFH0:0某中断源发申请中断,某中断源发申请中断,申请执行类型号为申请执行类型号为N的中断子程序的中断子程序中断响应过程中断响应过程四、中断过程举例四、中断过程举例 设某输入设备数据准备就绪后向设某输入设备数据准备就绪后向CPU申请可屏蔽中断,中断申请可屏蔽中断,中断类型码为类型码为

46、80H,中断响应后执行的服务子程序名为,中断响应后执行的服务子程序名为INTPROC。 程序开始,首先应对中断向量表进行安排,即先进行中断初程序开始,首先应对中断向量表进行安排,即先进行中断初始化。程序如下:始化。程序如下: CLIPUSHDSMOVAX,0000H;中断向量指针的段基址中断向量指针的段基址MOVDS,AXMOVBX,0200H;中断向量指针的偏移量中断向量指针的偏移量MOVAX,OFFSET INTPROCMOVBX,AX;偏移量偏移量 中断向量表中断向量表MOVAX,SEG INTPROCMOVBX+2,AX;段基址段基址 中断向量表中断向量表POPDSSTI65CLIPU

47、SHDSMOVAX,0000H;中断向量指针的段基址;中断向量指针的段基址MOVDS,AXMOVBX,0200H;中断向量指针的偏移量;中断向量指针的偏移量MOVAX,OFFSET INTPROCMOVBX,AX;偏移量;偏移量 中断向量表中断向量表MOVAX,SEG INTPROCMOVBX+2,AX;段基址;段基址 中断向量表中断向量表POPDSSTIMOVAX, 2000HADDAX,AXMOVSI,AX 开中断后,执行任何指令期间都有可能接收到中断开中断后,执行任何指令期间都有可能接收到中断申请。申请。 假设执行到程序中的假设执行到程序中的ADDADD指令时收到中断申请,且指令时收到中

48、断申请,且IF=1IF=1,则,则CPUCPU响应中断。响应中断。 响应过程如下图所示:响应过程如下图所示:66 MOV AX,2000H ADDAX,AX (2)当前指令结束,)当前指令结束,CPU响应中断,执行中断响应中断,执行中断 响应总线周期,获得中断类型码(响应总线周期,获得中断类型码(80H)1234:5678MOVSI,AX (3)当前)当前FR内容压栈,内容压栈,IF=TF=0 (4)断点)断点CS(1234H)、)、IP(5678H)压栈)压栈 (5)查中断向量表,中断向量送)查中断向量表,中断向量送CS、IP (6)执行中断服务处理程序 INTPROCPROC MOV DX

49、,DPORT INAL,DXIRET INTPROCENDP (7)执行IRET指令,恢复断点,恢复FR IP=5678H,CS=1234H,回到断点执行 (1)INTR有效,外设申请中断67START:MOV AX,DATAMOVDS,AXCLI;关中断,设置中断向量;关中断,设置中断向量SUB AX,AXMOVES,AX;中断向量表的段基址为;中断向量表的段基址为0000HMOVDI,460H;在中断向量表中的偏移量;在中断向量表中的偏移量MOVAX,OFFSET INTSVCLDSTOSW;写中断向量的偏移量;写中断向量的偏移量MOVAX,SEG INTSVSTOSW ;写中断向量的段基

50、址;写中断向量的段基址STI INT60H ;软中断指令;软中断指令 MOVAH,4CH;返回;返回DOSINT21H定义一个软中断,中断类型号为定义一个软中断,中断类型号为60H,在中断服务程序中完成,在中断服务程序中完成ASCII码码加偶校验位(第加偶校验位(第7位)的工作,位)的工作,ASCII码首地址为码首地址为ASCBUF,字节数为,字节数为COUNT,加偶校验位后仍放回原处。,加偶校验位后仍放回原处。68INTSV PROC ;中断服务程序;中断服务程序PUSHAX ;保护现场;保护现场PUSHBXPUSHCXMOVCX,COUNTMOVBX,OFFSETASCBUFL2: MOV

51、AL,BXANDAL,AL;建立标志;建立标志PF, PF=1,有偶数个有偶数个1JP L1OR AL,80HMOVBX,AL;加入偶校验后写回;加入偶校验后写回L1: INCBXLOOP L2POPCX;恢复现场;恢复现场POPBXPOPAXIRET69利用利用DOS功能调用设置中断向量表功能调用设置中断向量表设置中断向量:设置中断向量: 把由把由AL指定中断类型码的中断向量指定中断类型码的中断向量DS:DX置在中断置在中断向量表中。向量表中。 预置预置 AH=25H, AL=中断类型码中断类型码 DS:DX=中断向量中断向量 执行执行 INT 21H读取中断向量:读取中断向量: 把由把由A

52、L指定中断类型码的中断向量从中断向量表中取到指定中断类型码的中断向量从中断向量表中取到ES:BX中。中。 预置预置 AH=35H, AL=中断类型码中断类型码 执行执行 INT 21H 返回时送返回时送: ES:BX=中断向量中断向量707.3 可编程中断控制器可编程中断控制器8259A 专用于系统内专用于系统内可屏蔽硬件中断可屏蔽硬件中断的控制,管理系的控制,管理系统的外部中断请求。统的外部中断请求。 主要功能特点:主要功能特点: 1、每片每片8级优先级管理,级联后可达级优先级管理,级联后可达64级级 2、自动产生中断向量自动产生中断向量 3、每路中断可分别屏蔽每路中断可分别屏蔽 4、功能灵

53、活,功能灵活, 优先权等多种工作方式可编程优先权等多种工作方式可编程717.3.1 8259A的结构和功能数据数据总线总线缓冲器缓冲器读写读写逻辑逻辑控制逻辑控制逻辑服务服务状态状态寄存器寄存器ISR优先权优先权处理器处理器PR中断中断请求请求寄存器寄存器IRR中断屏蔽寄存器中断屏蔽寄存器IMR级联缓级联缓冲器冲器比较器比较器内部总线INTD07A0CSWRRDEN/INTA721. 8259A的内部结构的内部结构IRR中断请求寄存器中断请求寄存器(8位位)保存保存8个个(IR0IR7)外部中断请求信号外部中断请求信号Di1,表示表示IRi引脚有中断请求引脚有中断请求Di0,表示表示IRi引脚

54、无中断请求引脚无中断请求73IR中断屏蔽寄存器中断屏蔽寄存器(8位位)保存对中断请求信号保存对中断请求信号IRi的屏蔽状态;的屏蔽状态;Di1,则,则IRi引入的中断被屏蔽(关闭);引入的中断被屏蔽(关闭);Di0,则,则IRi引入的中断被开放。引入的中断被开放。1. 8259A的内部结构(续)的内部结构(续)74当当IR7IR0端有多个中断请求同时发生时端有多个中断请求同时发生时, 由由PR判定其最高优先权;判定其最高优先权;在在INTA脉冲期间将它置入中断服务寄存器脉冲期间将它置入中断服务寄存器ISR的的相应位。相应位。PR优先权判别器优先权判别器(8位位)1. 8259A的内部结构(续)

55、的内部结构(续)7576ISR中断服务寄存器中断服务寄存器(8位位)保存正在被保存正在被8259A服务着的中断状态;服务着的中断状态;Di1,表示,表示IRi中断正在服务中;中断正在服务中;Di0,表示没有被服务。,表示没有被服务。1. 8259A的内部结构(续)的内部结构(续)8位双向三态缓冲器,构成位双向三态缓冲器,构成8259A与系统数据线的与系统数据线的接口。对接口。对8259A编程写入的命令字和读出编程写入的命令字和读出8259A状状态信息都是通过它传送。态信息都是通过它传送。数据总线缓冲器数据总线缓冲器1. 8259A的内部结构(续)的内部结构(续)7778读写控制逻辑读写控制逻辑

56、接收读接收读/写控制信号写控制信号RD / WR、片选信号、片选信号CS和端口和端口选择信号选择信号A0 。一片一片8259A在系统中占用在系统中占用2个口地址个口地址, 用地址线用地址线A0来选择端口;用高位地址线通过译码来选择端口;用高位地址线通过译码产生产生8259A的片选信号。的片选信号。1. 8259A的内部结构(续)的内部结构(续)包括命令字包括命令字(ICW1ICW4)寄存器,操作字寄存器,操作字(OCW1OCW3)寄存器和相关的控制逻辑;寄存器和相关的控制逻辑;通过通过INT端向端向CPU发中断请求信号发中断请求信号, 从从INTA端接收端接收CPU的的中断响应信号中断响应信号

57、, 控制控制8259A进入中断状态。进入中断状态。控制电路控制电路级连缓冲级连缓冲/比较器比较器一片一片8259A只能接收只能接收8级中断级中断, 当超过当超过8级时级时,可用多片可用多片8259A级连使用级连使用, 构成主从结构。可扩充到构成主从结构。可扩充到64级。级。1. 8259A的内部结构(续)的内部结构(续)79中断级连方式的连接中断级连方式的连接一个系统中,一个系统中,8259A可以级连,有一个主可以级连,有一个主8259A,若干个,若干个(最多(最多8个)从个)从8259A级连时,主级连时,主8259A的三条级连线的三条级连线CAS0CAS2作为输出线,作为输出线,连至每个从连

58、至每个从8259A的的CAS0CAS2每个从每个从8259A的中断请求信号的中断请求信号INT,连至主,连至主8259A的一个中的一个中断请求输入端断请求输入端IR主主8259A的的INT线连至线连至CPU的中断请求输入端的中断请求输入端SP/EN在非缓冲方式下,规定该在非缓冲方式下,规定该8259A是主片(是主片(SP1)还)还是从片(是从片(SP0)动画动画图示图示80 CS A0 INTA D CAS0SP 主主8259 CAS1 CAS2 INTIR7 IR6 IR3 IR0CS A0 INTA D CAS0SP 从从8259 CAS1 CAS2IR7 IR0 INTCS A0 INT

59、A D CAS0SP 从从8259 CAS1 CAS2IR7 IR0 INTABCBDBVccD70D70 8259 8259级连电路级连电路812. 8259A的引脚功能的引脚功能D7D0 : 双向数据总线。传送双向数据总线。传送控制、状态信息和中断类型号。控制、状态信息和中断类型号。WR* : 写信号。输入写信号。输入, 低电平有低电平有效。当有效时效。当有效时, 8259A接收接收CPU送来的命令字。送来的命令字。RD* : 读信号。输入读信号。输入, 低电平有低电平有效。当有效时效。当有效时, 8259A将状态信将状态信息放入数据总线供息放入数据总线供CPU检测。检测。82A0 : 内

60、部地址信号,输入。内部地址信号,输入。8259A只占两个地址只占两个地址, A0与与CS* 一同构成一同构成8259A的端口奇的端口奇/偶地址选择。偶地址选择。CS*: 片选信号。输入片选信号。输入, 低电平有效。有效时低电平有效。有效时, CPU可对该可对该8259A进行读写。进行读写。2. 8259A的引脚功能(续)的引脚功能(续)83与处理器接口引脚的逻辑功能与处理器接口引脚的逻辑功能 A0 RD* WR* CS*功能功能0 1 0 01 1 0 00 0 1 01 0 1 0 1 1 0 1写入写入ICW1、OCW2和和OCW3写入写入ICW2ICW4和和OCW1读出读出IRR、ISR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论