微机原理第09章中断_第1页
微机原理第09章中断_第2页
微机原理第09章中断_第3页
微机原理第09章中断_第4页
微机原理第09章中断_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

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

文档简介

1、第九章第九章 中断中断 当当CPUCPU用查询的方式与外设交换信息时,用查询的方式与外设交换信息时,CPUCPU就要浪费很多时间去等待外设。这样就要浪费很多时间去等待外设。这样就引出一个快速的就引出一个快速的CPUCPU与慢速的外设之间与慢速的外设之间数据传送的矛盾,这也是计算机在发展数据传送的矛盾,这也是计算机在发展过程中遇到的严重问题之一。为解决这过程中遇到的严重问题之一。为解决这个问题,一方面要提高外设的工作速度,个问题,一方面要提高外设的工作速度,另一方面发展了中断慨念。中断系统是另一方面发展了中断慨念。中断系统是计算机的重要指标之一。计算机的重要指标之一。 9 91 1 中断原理中断

2、原理 9 91 11 1 从无条件传送、条件传送到中从无条件传送、条件传送到中断传送断传送条件传送最大的缺点就是为了条件传送最大的缺点就是为了CPUCPU和外设在时间上配合正确,和外设在时间上配合正确,CPUCPU花大花大量的时间用无条件方式对状态线进行查量的时间用无条件方式对状态线进行查询,从而降低了整个系统的工作效率。询,从而降低了整个系统的工作效率。 具有中断功能的具有中断功能的CPUCPU中,有一个硬中,有一个硬件部件专门用于检测外设的状态线。件部件专门用于检测外设的状态线。 检测状态信号状态信号有效?外设处理外设处理检测状态信号主程序9 91 1 中断原理中断原理9 91 12 2

3、中断概念中断概念处理文档电话铃响暂停文档文档中作暂停记号电话交谈找出暂停记号位置继续处理文档执行主程序(日常事务程序)中断申请信号有效(中断请求)暂停执行主程序响应中断当前PC及寄存器入栈(保护现场)处理外设要求(中断服务)寄存器及PC出栈(恢复现场及中断返回)继续执行主程序9 91 1 中断原理中断原理9 91 12 2 中断概念中断概念可见在中断传送方式下,外设应有请求可见在中断传送方式下,外设应有请求CPUCPU服务的权利,当外部设备准备好向服务的权利,当外部设备准备好向CPUCPU传送数据,或者外设已准备就绪接收传送数据,或者外设已准备就绪接收CPUCPU的数据,或者有某些紧急情况要求

4、处的数据,或者有某些紧急情况要求处理,或者是定时时间到等等。这时,外理,或者是定时时间到等等。这时,外设向设向CPUCPU发出中断请求,发出中断请求,CPUCPU接收到请求接收到请求并在一定条件下,暂时停止执行原来的并在一定条件下,暂时停止执行原来的程序而转去中断处理,处理好中断服务程序而转去中断处理,处理好中断服务再返回来执行原来程序,这就是中断概再返回来执行原来程序,这就是中断概念。念。 9 91 1 中断原理中断原理9 91 13 3 中断应用中断应用一、实时故障处理一、实时故障处理存储器出错检测电路存储器出错检测电路 存储器奇偶检测电路奇偶位中断请求信号9 91 1 中断原理中断原理9

5、 91 13 3 中断应用中断应用二、分时操作,同时处理二、分时操作,同时处理 有了中断功能,有了中断功能,CPUCPU可命令多个外设同可命令多个外设同时工作。虽然时工作。虽然CPUCPU在不同的时间点上为不在不同的时间点上为不同的任务工作,但宏观上看同的任务工作,但宏观上看CPUCPU几乎同时几乎同时为不同的任务工作,极大地发挥了为不同的任务工作,极大地发挥了CPUCPU高高速性的特点。速性的特点。 处理处理任务任务1处理处理任务任务2处理处理任务任务39 92 2 中断系统组成及其功能中断系统组成及其功能9 92 21 1 三个与中断有关的触发器三个与中断有关的触发器一、中断请求触发器一、

6、中断请求触发器应该有两个特点:应该有两个特点:1 1、它的输出可以作为中断请求信号,在、它的输出可以作为中断请求信号,在满足一定条件的情况下把信号发送给满足一定条件的情况下把信号发送给CPUCPU,并在并在CPUCPU未响应时一直保存下去;未响应时一直保存下去;2 2、当、当CPUCPU满足一定条件下响应了该中断满足一定条件下响应了该中断请求信号,执行了相关的操作后,该中请求信号,执行了相关的操作后,该中断请求信号可以被撤除。断请求信号可以被撤除。 9 92 2 中断系统组成及其功能中断系统组成及其功能9 92 21 1 三个与中断有关的触发器三个与中断有关的触发器 D QRD状态线中断请求外

7、设读、写操作 CLK+5V8255A工作在方式工作在方式1输入输入 A口的选通信号,当其有效时,口的选通信号,当其有效时,外设把数据打入外设把数据打入A口的输入缓口的输入缓冲器冲器 A A口的输入缓冲器口的输入缓冲器“满满”信号,信号,当其有效时表示当其有效时表示A A口的输入缓口的输入缓冲器已暂存一个有效数据。冲器已暂存一个有效数据。 A A口的中断请求信号。当其有口的中断请求信号。当其有效时,效时,8255A8255A的的A A口向口向CPUCPU申请申请中断,要求中断,要求CPUCPU从从A A口取数口取数 中断允许信中断允许信号。号。 STB数据锁存INTR9 92 2 中断系统组成及

8、其功能中断系统组成及其功能9 92 21 1 三个与中断有关的触发器三个与中断有关的触发器二、中断屏蔽触发器二、中断屏蔽触发器中断屏蔽触发器的功能就是决定中断请中断屏蔽触发器的功能就是决定中断请求触发器的输出信号是否可以作为中断求触发器的输出信号是否可以作为中断请求信号发送给请求信号发送给CPUCPU,这样,这样CPUCPU通过对中通过对中断屏蔽触发器的设置就可以达到对中断断屏蔽触发器的设置就可以达到对中断源的控制。源的控制。 中断屏蔽中断屏蔽触触 发发 器器8255A工作在方式工作在方式1输入输入 A口的选通信号,当其有效时,口的选通信号,当其有效时,外设把数据打入外设把数据打入A口的输入缓

9、口的输入缓冲器冲器 A A口的输入缓冲器口的输入缓冲器“满满”信号,信号,当其有效时表示当其有效时表示A A口的输入缓口的输入缓冲器已暂存一个有效数据。冲器已暂存一个有效数据。 A A口的中断请求信号。当其有口的中断请求信号。当其有效时,效时,8255A8255A的的A A口向口向CPUCPU申请申请中断,要求中断,要求CPUCPU从从A A口取数口取数 中断允许信中断允许信号。号。 MOV AL,00001001 ;允许发中断允许发中断MOV 控制口,控制口,ALMOV AL,00001000 ;屏蔽中断屏蔽中断MOV 控制口,控制口,AL9 92 2 中断系统组成及其功能中断系统组成及其功

10、能9 92 21 1 三个与中断有关的触发器三个与中断有关的触发器CPUCPU内部的中断允许触发器内部的中断允许触发器IF IF CPUCPU通过对它进行设置来决定是否对发给通过对它进行设置来决定是否对发给它的中断请求信号进行响应。它的中断请求信号进行响应。中断检测IF中断逻辑INTRCLI IFCLI IF0 0 关中断关中断STI IFSTI IF1 1 开中断开中断 9 92 2 中断系统组成及其功能中断系统组成及其功能9 92 21 1 三个与中断有关的触发器三个与中断有关的触发器CPUCPU内部的中断允许触发器内部的中断允许触发器IF IF 有些有些CPUCPU,比如,比如8086C

11、PU8086CPU,设置了两种中断类型:,设置了两种中断类型:可屏蔽中断和不可屏蔽中断。可屏蔽中断受中可屏蔽中断和不可屏蔽中断。可屏蔽中断受中断允许触发器控制,只有当断允许触发器控制,只有当IFIF为为1 1时,时,CPUCPU才能才能响应中断请求信号。而不可屏蔽中断不受中断响应中断请求信号。而不可屏蔽中断不受中断允许触发器的控制,只要中断请求信号有效,允许触发器的控制,只要中断请求信号有效,不管不管IFIF是否为是否为1 1,CPUCPU就必须响应。因此不可屏就必须响应。因此不可屏蔽中断的中断优先级要大于可屏蔽中断的中断蔽中断的中断优先级要大于可屏蔽中断的中断优先级。优先级。 中断检测IF中

12、断逻辑INTRNMI不可屏蔽中断可屏蔽中断9 92 2 中断系统组成及其功能中断系统组成及其功能 9 92 22 2 再谈中断条件再谈中断条件外设的中断请求信号要想发给外设的中断请求信号要想发给CPUCPU并能最并能最终得到终得到CPUCPU的响应,必须要满足如下两个的响应,必须要满足如下两个条件:一个是中断屏蔽触发器处于非屏条件:一个是中断屏蔽触发器处于非屏蔽状态。在这种情况下,中断请求信号蔽状态。在这种情况下,中断请求信号才能发给才能发给CPUCPU。但。但CPUCPU是否相应这个中断,是否相应这个中断,还要看中断允许触发器是否处于开中断还要看中断允许触发器是否处于开中断状态。只有状态。只

13、有CPUCPU是开中断的条件下,是开中断的条件下,CPUCPU才能进入中断响应过程,处理中断事务。才能进入中断响应过程,处理中断事务。这就是第二个条件。这就是第二个条件。中断中断响应响应中断屏中断屏蔽蔽FF中断允中断允许许FFCPU内的中断逻辑内的中断逻辑中断申中断申请信号请信号INTR9 92 2 中断系统组成及其功能中断系统组成及其功能9 92 23 3 中断响应过程中断响应过程中断过程主要包括三个方面中断过程主要包括三个方面外设发中断请求信号给外设发中断请求信号给CPUCPU即中断请求即中断请求CPUCPU对中断请求信号所作出的反应即中断对中断请求信号所作出的反应即中断响应响应CPUCP

14、U执行对外设操作的子程序即中断处理。执行对外设操作的子程序即中断处理。 9 92 2 中断系统组成及其功能中断系统组成及其功能9 92 23 3 中断响应过程中断响应过程一、中断申请一、中断申请当中断屏蔽触发器状态为当中断屏蔽触发器状态为1 1,则中断请求触,则中断请求触发器输出的中断请求信号发给发器输出的中断请求信号发给CPUCPU。二、中断响应二、中断响应CPUCPU响应可屏蔽中断申请必须满足的响应可屏蔽中断申请必须满足的3 3个条件个条件: : 无总线请求;无总线请求; CPU CPU被允许中断;被允许中断; CPU CPU执行完现行指令执行完现行指令 9 92 2 中断系统组成及其功能

15、中断系统组成及其功能9 92 23 3 中断响应过程中断响应过程三、中断处理三、中断处理 CPU CPU响应中断后要自动完成三项任务响应中断后要自动完成三项任务 1 1、 关闭中断;关闭中断; 2 2、CSCS、IPIP以及以及FRFR的内容推入堆栈;的内容推入堆栈; 3 3、中断服务程序段地址送、中断服务程序段地址送CSCS中中, ,偏偏移地址送移地址送IPIP中。中。 一旦一旦CPUCPU响应中断,就可转入中断服务程响应中断,就可转入中断服务程序之中。中断服务程序的结构如下:序之中。中断服务程序的结构如下:push ax;1、保护现场、保护现场push bxsti;2、开中断、开中断;3、

16、中断处理、中断处理cli;4、关中断、关中断pop bx;5、恢复现场、恢复现场pop axsti;6、开中断和中断返回、开中断和中断返回 iret9 93 3 中断源识别及中断优先权中断源识别及中断优先权 在中断系统中一个非常关键的问题是在中断系统中一个非常关键的问题是CPU如何知道是哪一个中断源发出的中如何知道是哪一个中断源发出的中断申请信号。只有正确地确定中断源,断申请信号。只有正确地确定中断源,CPU才能转到相应的中断服务程序为之才能转到相应的中断服务程序为之服务。这里,确定中断源的方法被称为服务。这里,确定中断源的方法被称为中断源识别或中断方式。中断源识别或中断方式。 A B CCP

17、UINTR?!9 93 3 中断源识别及中断优先权中断源识别及中断优先权9 93 31 1 中断源识别中断源识别 包括两个方面:包括两个方面: 1 1、确定中断源,、确定中断源, 2 2、找到该中断服务程序的首、找到该中断服务程序的首地址。下面我们给出解决问题的两种方地址。下面我们给出解决问题的两种方案。案。9 93 3 中断源识别及中断优先权中断源识别及中断优先权9 93 31 1 中断源识别中断源识别一、查询中断一、查询中断IN ALIPORT;从输入接口取中断信息;从输入接口取中断信息TEST AL,80H;是;是0号设备请求吗号设备请求吗?JNZ SEVO;是,转;是,转0号设备服务程

18、序号设备服务程序TEST AL40H;否,是;否,是1号设备请求吗号设备请求吗?JNZ SEVl;是,转;是,转1号设备服务程序号设备服务程序TEST AL20H;否,是;否,是2号设备请求吗号设备请求吗?JNZ SEV2;是,转;是,转2号设备服务程序号设备服务程序TEST AL10H;否,是;否,是3号设备请求吗号设备请求吗?JNZ SEV3;是,转;是,转3号设备服务程序号设备服务程序条件传送查询中断?条件传送查询中断?特点:简单特点:简单响应慢响应慢9 93 3 中断源识别及中断优先权中断源识别及中断优先权9 93 31 1 中断源识别中断源识别二、矢量中断二、矢量中断 中断申中断申请

19、信号请信号INTRINTR和中断响和中断响应信号应信号INTAINTA是一对握是一对握手信号。在驱动一个手信号。在驱动一个中断事件过程中,中中断事件过程中,中断请求信号是外设发断请求信号是外设发给给CPUCPU的,当其有效的,当其有效时,表示外设请求时,表示外设请求CPUCPU为之服务。而中为之服务。而中断响应信号是断响应信号是CPUCPU发发给外设的,当其有效给外设的,当其有效时,表明时,表明CPUCPU可以为可以为这个外设服务,同时这个外设服务,同时要求外设提供中断类要求外设提供中断类型号。型号。9 93 3 中断源识别及中断优先权中断源识别及中断优先权9 93 31 1 中断源识别中断源

20、识别二、矢量中断二、矢量中断 7 74 4L LS S2 24 45 5D QCLKRDA7A6A5A4A3A2A1A0+5V中断申请接CPU的D7D0INTAINTRCST9 93 3 中断源识别及中断优先权中断源识别及中断优先权 9 93 32 2 中断优先权中断优先权一、软件方案一、软件方案 软件查询确定优先权的缺点是,响应中断软件查询确定优先权的缺点是,响应中断慢慢 9 93 3 中断源识别及中断优先权中断源识别及中断优先权 9 93 32 2 中断优先权中断优先权二、硬件方案二、硬件方案1 1、链形电路、链形电路 这种方法是利用外设在系统中的物这种方法是利用外设在系统中的物理位置来决

21、定其中断优先权的理位置来决定其中断优先权的 中断申请中断申请中断申请中断申请中断申请中断申请中断允许入中断允许入IEI1,允许发中断允许发中断中断允许出中断允许出 IEOIEI INTR0001易受电路延迟影响!9 93 3 中断源识别及中断优先权中断源识别及中断优先权 9 93 32 2 中断优先权中断优先权二、硬件方案二、硬件方案2 2、编码电路、编码电路 74LSl48 74LSl48是一个是一个8 8到到3 3线的优先权编码线的优先权编码器,它是一个器,它是一个1616个管脚双列直插式个管脚双列直插式TTLTTL器器件件 I0I1I7000I0I1I7I0I1I7001中断申请信号级联

22、控制信号7 74 4L LS S2 24 45 5D QCLKRDA7A6A5A4A3A2A1A0TCSB7B6B5B4B3B2B1B0+5V接CPU的D7D0INTAINTR7 74 4L LS S1 14 48 8I7I6I5I4I3I2I1I0A2A1A0INT7INT6INT5INT4INT3INT2INT1INT0Gs9 94 80864 8086中断系统中断系统 8086 8086中断系统有两大类型的中断源:中断系统有两大类型的中断源:一类是由外部设备产生的中断,我们称之一类是由外部设备产生的中断,我们称之为硬件中断,硬件中断有时又称外中断。对于为硬件中断,硬件中断有时又称外中断。

23、对于硬件中断,又分为不可屏蔽中断和可屏蔽中断,硬件中断,又分为不可屏蔽中断和可屏蔽中断,硬件中断是通过硬件中断是通过CPUCPU芯片的芯片的INTRINTR管脚或管脚或NMINMI管脚管脚从外部引入的。从外部引入的。另一类是由指令在某种运行结果时产生的另一类是由指令在某种运行结果时产生的中断,我们称之为软件中断。中断,我们称之为软件中断。 中断类型号和中断服务子程序的入口地址中断类型号和中断服务子程序的入口地址之间的关系是什么?之间的关系是什么? INT_PROC PROC FAR PUSH AX POP AX IRET?中断类型号n40000:4n+00000:4n+10000:4n+200

24、00:4n+30010002010002000IPCS内存9 94 80864 8086中断系统中断系统9 94 41 1 不可屏蔽中断不可屏蔽中断 所谓不可屏蔽中断就是用户不能通所谓不可屏蔽中断就是用户不能通过过CPUCPU内的中断允许触发器内的中断允许触发器IFIF控制的中断,控制的中断,由由8086CPU8086CPU的的NMINMI管脚引入。管脚引入。NMINMI中断请求中断请求采用上升沿触发方式,这种中断一旦产采用上升沿触发方式,这种中断一旦产生,在生,在CPUCPU内部直接生成中断类型号内部直接生成中断类型号0202。 0000:4*2+00000:4*2+10000:4*2+20

25、000:4*2+30010002010002000IPCS内存IF0IP,CS,FR进栈IP=2*4+0CS=2*4+2如何处理多个NMI中断源?9 94 80864 8086中断系统中断系统9 94 42 2 可屏蔽中断可屏蔽中断 可屏蔽中断就是用户可以控制的中断,可屏蔽中断就是用户可以控制的中断,其途径是通过对其途径是通过对CPUCPU内的中断允许触发器内的中断允许触发器IFIF的的设置来禁止和允许设置来禁止和允许CPUCPU响应中断。可屏蔽中断响应中断。可屏蔽中断由由8086CPU8086CPU的的INTRINTR管脚引入。这种中断请求需管脚引入。这种中断请求需要设备提供中断类型号,要设

26、备提供中断类型号,CPUCPU响应中断后,取响应中断后,取中断类型号的中断类型号的4 4倍作为中断服务入口地址表的倍作为中断服务入口地址表的地址,通过查表得到相应的中断服务程序首地地址,通过查表得到相应的中断服务程序首地址,转去执行相应的中断服务程序。址,转去执行相应的中断服务程序。 0000:4*n+00000:4*n+10000:4*n+20000:4*n+30010002010002000内存IF0IP,CS,FR进栈IP=2*n+0CS=2*n+2取中断类型号n9 94 80864 8086中断系统中断系统9 94 43 3 软件中断软件中断 软件中断是由软件中断是由80868086指

27、令系统中指令系统中的某些指令产生,或由这些指令运行后的某些指令产生,或由这些指令运行后某种特定的结果产生。某种特定的结果产生。9 94 80864 8086中断系统中断系统9 94 43 3 软件中断软件中断一、除法中断一、除法中断 当进行除法运算时,若除数为当进行除法运算时,若除数为0 0或或除数太小,使得商数大于相应寄存器所除数太小,使得商数大于相应寄存器所能表示的最大值,被称作除法出错。这能表示的最大值,被称作除法出错。这时除法指令就相当于一个中断源,它向时除法指令就相当于一个中断源,它向CPUCPU发出类型发出类型0 0中断。中断。 9 94 80864 8086中断系统中断系统9 9

28、4 43 3 软件中断软件中断二、溢出中断二、溢出中断 当算术运算产生溢出时,将在当算术运算产生溢出时,将在INTOINTO指令控制下向指令控制下向CPUCPU发出类型发出类型4 4的中断,的中断,即溢出中断。即溢出中断。 比如比如mov al,40hmov al,40hadd al,40hadd al,40hintointo9 94 80864 8086中断系统中断系统9 94 43 3 软件中断软件中断三、单步中断和断点中断三、单步中断和断点中断(1)(1)单步中断单步中断 当当8086CPU8086CPU的标志寄存器中的的标志寄存器中的TFTF标标志为志为1 1时,时,8086CPU80

29、86CPU处于单步工作方式,这时处于单步工作方式,这时CPUCPU在每条指令执行后自动产生类型在每条指令执行后自动产生类型l l的中断。的中断。 TF TF在标志寄存器的第在标志寄存器的第8 8位。位。(2)(2)断点中断断点中断 INT3 INT3指令是指令是1 1字节指令字节指令(0CCH)(0CCH), 如何实现断点调试?如何实现断点调试? 9 94 80864 8086中断系统中断系统9 94 43 3 软件中断软件中断四、软中断四、软中断 软中断是由中断指令引起的。软中断是由中断指令引起的。中断指令的指令格式为中断指令的指令格式为 INT n (CD 21) INT n (CD 21

30、),操作数操作数n n就是中断类型号。当就是中断类型号。当CPUCPU执行完执行完毕中断指令毕中断指令INT nINT n后,就会立即产生一个后,就会立即产生一个中断类型号为中断类型号为n n的中断。的中断。中断类型号n40000:4n+00000:4n+10000:4n+20000:4n+30010002010002000IPCS内存int n call far 4*n9.4 80869.4 8086中断系统中断系统9.49.44 4 中断概念的再讨论中断概念的再讨论一、中断与调子程序之间的关系一、中断与调子程序之间的关系 1 1、中断过程实际上是、中断过程实际上是CPUCPU从执行当前主程

31、序转从执行当前主程序转到执行为外设服务的子程序,因此从这个角度到执行为外设服务的子程序,因此从这个角度来看,是中断过程一个调用子程序的过程。来看,是中断过程一个调用子程序的过程。2 2、但中断过程与子程序调用还是有很大差别、但中断过程与子程序调用还是有很大差别的,比如的,比如首先调用子程序的过程是一个无条件过程,但首先调用子程序的过程是一个无条件过程,但中断过程的中断服务程序的调用一般是有条件中断过程的中断服务程序的调用一般是有条件的。的。其次子程序调用在整个程序执行中的位置是固其次子程序调用在整个程序执行中的位置是固定的。但对于硬件中断过程,只要条件满足,定的。但对于硬件中断过程,只要条件满

32、足,在整个程序执行的任意一时间点都有可能发生在整个程序执行的任意一时间点都有可能发生从主程序向中断服务子程序的转移事件,也就从主程序向中断服务子程序的转移事件,也就是说硬件中断产生的调用过程是随机的,不可是说硬件中断产生的调用过程是随机的,不可预测的。预测的。 9.4 80869.4 8086中断系统中断系统9.49.44 4 中断概念的再讨论中断概念的再讨论 二、外部中断和二、外部中断和 INT n INT n 之间的关系之间的关系 结合中断指令结合中断指令INT nINT n,我们可以这样理解,我们可以这样理解外部中断:当外部中断源发中断给外部中断:当外部中断源发中断给CPUCPU时,如时

33、,如果果CPUCPU满足一定的条件,处于开中断状态,满足一定的条件,处于开中断状态,CPUCPU就可以响应中断,这时外设在就可以响应中断,这时外设在CPUCPU正在执行指正在执行指令与其下一个指令之间,等效令与其下一个指令之间,等效“插入插入”了一个了一个INT nINT n指令,这里的指令,这里的n n就是外设提供的中断类型就是外设提供的中断类型号。注意这里用号。注意这里用“等效等效”两字表示实际过程中两字表示实际过程中是不存在插入是不存在插入INT nINT n指令的操作,但指令的操作,但CPUCPU确实完确实完成了类似成了类似INT nINT n指令的功能,实现了主程序向指令的功能,实现

34、了主程序向中断程序的转移。中断程序的转移。 MOV AL,10MOV BX,100MOV BL,100ADD AL,BLINT nINT n9.5 8086CPU9.5 8086CPU的中断管理的中断管理9.5.1 8086CPU9.5.1 8086CPU的中断处理顺序的中断处理顺序8086CPU8086CPU的中断优先权排列从高到低的中断优先权排列从高到低为:为:1 1、除法出错中断,溢出中断,、除法出错中断,溢出中断,INT nINT n;2 2、NMlNMl;3 3、INTRINTR;4 4、单步中断。、单步中断。 9.5 8086CPU9.5 8086CPU的中断管理的中断管理9.5.

35、2 8086CPU9.5.2 8086CPU的中断服务入口地址表的中断服务入口地址表已知中断程序已知中断程序int_procint_proc和中断类型号和中断类型号n nint_proc int_proc farfar pushpush iretiretint_proc int_proc endp endp CPU中断类型号中断类型号n?9.5 8086CPU9.5 8086CPU的中断管理的中断管理9.5.2 8086CPU9.5.2 8086CPU的中断服务入口地址表的中断服务入口地址表已知中断程序已知中断程序int_procint_proc和中断类型号和中断类型号n nint_proc

36、int_proc farfar pushpush iretiretint_proc int_proc endp endp CPU中断类型号中断类型号n把地址把地址int_ proc放到放到4*n地址地址9.5 8086CPU9.5 8086CPU的中断管理的中断管理9.5.2 8086CPU9.5.2 8086CPU的的中断服务入口地址中断服务入口地址表表 9.5 8086CPU9.5 8086CPU的中断管理的中断管理9.59.53 3 中断入口地址设置中断入口地址设置一、用串指令一、用串指令 CLICLI;关中断;关中断MOV AX,0MOV AX,0MOV ES,AXMOV ES,AX;

37、置附件段基地址;置附件段基地址为为0 0MOV DI, nMOV DI, n* *4 4;置附件段偏移地址到;置附件段偏移地址到DIDIMOV AX,OFFSET INT_VCEMOV AX,OFFSET INT_VCE;置中断程序首地;置中断程序首地址的偏移量到址的偏移量到AXAXCLDCLDSTOSWSTOSW;填偏移量到中断地址;填偏移量到中断地址表表MOV AX, SEG INT_VCEMOV AX, SEG INT_VCE;置中断程序的段;置中断程序的段基地址到基地址到AXAXSTOSWSTOSW;填段基地址到中断地;填段基地址到中断地址表址表STISTI;开中断;开中断 9.5 8

38、086CPU9.5 8086CPU的中断管理的中断管理9.59.53 3 中断入口地址设置中断入口地址设置二、用伪指令二、用伪指令 INT INTTBLTBLSEGMENT AT 0 SEGMENT AT 0 ;定义;定义INTINTTBLTBL段,段基地址为段,段基地址为0 0 ORG nORG n* *4 4;指定偏移地址;指定偏移地址 DD INTVCEDD INTVCE;存中断程序入口;存中断程序入口地址地址INTINTTBL TBL ENDSENDS ;其他处理;其他处理 MCODE MCODE SEGMENTSEGMENT;主程序;主程序 ;其他处理;其他处理 INTVCE PRO

39、C FAR INTVCE PROC FAR;中断类型;中断类型4 4的服的服务程序务程序 IRETIRETINTVCEINTVCEENDPENDP 8.5 8086CPU8.5 8086CPU的中断管理的中断管理8.58.53 3 中断入口地址设置中断入口地址设置三、用系统调用三、用系统调用使用使用25H25H功能时要求:功能时要求:ALAL中断类型号中断类型号DSDS:DXDX中断服务程序首地址的段、中断服务程序首地址的段、偏移地址偏移地址 注意注意DSDS保护保护 PUSH DSMOV DX,SEG INT60H;段基地址送;段基地址送DSMOV DS,DXMOV DX,OFFSET IN

40、T60H;偏移地址送;偏移地址送DXMOV AL,60H;中断类型号送;中断类型号送AL MOV AH,25HINT 21H;25H功能调用功能调用 POP DS 8.5 8086CPU8.5 8086CPU的中断管理的中断管理8.58.53 3 中断入口地址设置中断入口地址设置四、直接装入法四、直接装入法 若外设的中断类型号为若外设的中断类型号为6BH6BH,则此中,则此中断类型号对应的中断矢量表地址为从断类型号对应的中断矢量表地址为从00lACH00lACH开始的四个存储单元设中断服开始的四个存储单元设中断服务程序段地址是务程序段地址是1000H1000H,偏移地址为,偏移地址为2000H

41、2000H。 MOV AX,,0 MOV DS,AX;置数据段段基地址为;置数据段段基地址为0 MOV AX,2000H MOV 01ACH, AX;对偏移地址为;对偏移地址为01AC的单元的单元MOV AX,1000H ;送双字;送双字MOV 01ACH+2, AX 9.6 9.6 可编程中断控制器可编程中断控制器82598259外设状态线状态线CPUINTR发中断申请信发中断申请信号号中断屏蔽触发中断屏蔽触发器器发中断矢量发中断矢量中断优先权排中断优先权排队队中断控制器9.6 9.6 可编程中断控制器可编程中断控制器82598259一、一、8259A8259A的内部结构的内部结构中中断断服

42、服务务寄寄存存器器中断请求中断请求寄存器寄存器IR0IR1IR7IR2IR3IR4IR5IR6IR0IR1IR2IR3IR4IR5IR6IR7001、工作原理、工作原理0001中中断断服服务务寄寄存存器器中断请求中断请求寄存器寄存器IR0IR1IR7IR2IR3IR4IR5IR6IR0IR1IR2IR3IR4IR5IR6IR7001、工作原理、工作原理0000中中断断服服务务寄寄存存器器中断请求中断请求寄存器寄存器IR0IR1IR7IR2IR3IR4IR5IR6IR0IR1IR2IR3IR4IR5IR6IR7001、工作原理、工作原理02、单级、单级8259与与8086CPU联接联接RRDWR

43、3、接口电路、接口电路(设置偶地址设置偶地址)CS(138) Yi A09.6 9.6 可编程中断控制器可编程中断控制器82598259二、二、8259A8259A的中断管理方式的中断管理方式(一)、中断优先权管理(一)、中断优先权管理1 1完全嵌套方式完全嵌套方式 8259A 8259A的中断请求输入端引入的中断的中断请求输入端引入的中断具有固定的优先权排队顺序,具有固定的优先权排队顺序,IR0IR0为最高为最高优先级,优先级,IR1IR1为次高优先级,依次类推,为次高优先级,依次类推,IR7IR7为最低优先级。为最低优先级。 9.6 9.6 可编程中断控制器可编程中断控制器82598259

44、2 2特殊全嵌套方式特殊全嵌套方式 特殊全嵌套方式和全嵌套方式基本相同,特殊全嵌套方式和全嵌套方式基本相同,只有一点不同,就是在特殊全嵌套方式下,当只有一点不同,就是在特殊全嵌套方式下,当处理某一级中断时,如果有同级的中断请求,处理某一级中断时,如果有同级的中断请求,那么,也会给予响应,从而实现一种对同级中那么,也会给予响应,从而实现一种对同级中断请求的特殊嵌套。断请求的特殊嵌套。 特殊全嵌套方式一般用在特殊全嵌套方式一般用在8259A8259A级连的级连的系统中。系统中。 9.6 9.6 可编程中断控制器可编程中断控制器825982593 3自动循环方式自动循环方式 从从IR0IR7IR0I

45、R7引入的中断轮流具有最高优先引入的中断轮流具有最高优先权。权。 初始优先级队列规定为初始优先级队列规定为IR0IR1IR2IR3IR4IR5IR6IR7IR0IR1IR2IR3IR4IR5IR6IR7 如果如果IR0IR0端正好有中断请求,处理完后端正好有中断请求,处理完后IR1IR2IR3IR4IR5IR6IR7IR0IR1IR2IR3IR4IR5IR6IR7IR0 如果如果IR4IR4端正好有中断请求,处理完后端正好有中断请求,处理完后IR5IR6IR7IR0IR1IR2IR3IR4IR5IR6IR7IR0IR1IR2IR3IR4 9.6 9.6 可编程中断控制器可编程中断控制器8259

46、8259 4 4优先级特殊循环方式优先级特殊循环方式 最低优先级是由编程确定的,从而最高优最低优先级是由编程确定的,从而最高优先级也由此而定。先级也由此而定。比如定比如定IR5IR5最低,则最低,则IR6IR6最高最高 IR6IR7IR0IR1IR2IR3IR4IR5 IR6IR7IR0IR1IR2IR3IR4IR5 9.6 9.6 可编程中断控制器可编程中断控制器82598259(三)中断屏蔽方式(三)中断屏蔽方式 有两种方法:有两种方法:第一、普通屏蔽方式。第一、普通屏蔽方式。第二、采用特殊屏蔽方式。第二、采用特殊屏蔽方式。系统正在处理高级中断时,系统正在处理高级中断时,可以响可以响应低级

47、别中断应低级别中断9.6 9.6 可编程中断控制器可编程中断控制器82598259(四)、(四)、 8259A 8259A中断结束的管理方式中断结束的管理方式 中中断断服服务务寄寄存存器器中断请求中断请求寄存器寄存器IR0IR1IR7IR2IR3IR4IR5IR6IR0IR1IR2IR3IR4IR5IR6IR70000009.6 9.6 可编程中断控制器可编程中断控制器82598259(四)、(四)、 8259A 8259A中断结束的管理方式中断结束的管理方式 可采用三种中断结束方式:可采用三种中断结束方式: 自动自动EOIEOI方式方式/INTA/INTA清除中断服务寄存器高级清除中断服务寄

48、存器高级别位别位一般一般EOIEOI方式方式程序对程序对82598259发中断结束命令,发中断结束命令,清除清除中断服务寄存器高级别位中断服务寄存器高级别位特殊特殊EOIEOI方式方式程序对程序对82598259发中断结束命令,发中断结束命令,清除清除中断服务寄存器指定位中断服务寄存器指定位9.6 9.6 可编程中断控制器可编程中断控制器82598259三、三、 8259A 8259A编程编程(一)、(一)、8259A8259A的初始化命令字的初始化命令字ICW1ICW1的格式和含义的格式和含义主要功能是中断信号的触发方式主要功能是中断信号的触发方式例如:上升沿触发,级联0 0 0 1 0 0

49、 0 18086级联沿触发9.6 9.6 可编程中断控制器可编程中断控制器82598259三、三、 8259A 8259A编程编程(一)、(一)、8259A8259A的初始化命令字的初始化命令字ICW2ICW2的格式和含义的格式和含义功能是中断类型号功能是中断类型号例如:中断类型号为080F0 0 0 0 1 x x x9.6 9.6 可编程中断控制器可编程中断控制器82598259三、三、 8259A 8259A编程编程(一)、(一)、8259A8259A的初始化命令字的初始化命令字ICW3ICW3的格式和含义的格式和含义在在8259A8259A有级联情况下使用有级联情况下使用主主从从ICW

50、301001000ICW300000110ICW300000119.6 9.6 可编程中断控制器可编程中断控制器82598259三、三、 8259A 8259A编程编程(一)、(一)、8259A8259A的初始化命令字的初始化命令字ICW4ICW4的格式和含义的格式和含义主要功能是中断嵌套方式选择,使能中断主要功能是中断嵌套方式选择,使能中断结束方式结束方式D11为自动EOI,Dl0为非自动EOID4位SFNM为有级联时定义的,D41为特殊完全嵌套方式,D4=0完全嵌套方式例如: 0 0 0 0 0 0 0 19.6 9.6 可编程中断控制器可编程中断控制器82598259三、三、 8259A

51、 8259A编程编程(二)、(二)、8259A8259A的操作命令字的操作命令字0CW10CW1的格式和含义的格式和含义主要功能是确定屏蔽位主要功能是确定屏蔽位1表示禁止中断 0 0 0 1 0 0 0 19.6 9.6 可编程中断控制器可编程中断控制器82598259三、三、 8259A 8259A编程编程(二)、(二)、8259A8259A的操作命令字的操作命令字0CW20CW2的格式和含义的格式和含义主要功能是控制中断结束,优先权循环等主要功能是控制中断结束,优先权循环等操作操作如果采用一般EOI方式 0 0 1 0 0 0 0 00中中断断服服务务寄寄存存器器中断请求中断请求寄存器寄存

52、器IR0IR1IR7IR2IR3IR4IR5IR6IR0IR1IR2IR3IR4IR5IR6IR700000MOV AL,20HOUT 端口(A0=0),AL9.6 9.6 可编程中断控制器可编程中断控制器82598259三、三、 8259A 8259A编程编程(二)、(二)、8259A8259A的操作命令字的操作命令字0CW30CW3的格式和含义的格式和含义主要功能是控制主要功能是控制8259A8259A的中断屏蔽和读取寄的中断屏蔽和读取寄存器的状态存器的状态 一般不用9.7 9.7 中断举例中断举例 中断传送方式的设计过程是:中断传送方式的设计过程是:一、硬件方面:一、硬件方面:设定硬件的

53、中断类型号。设定硬件的中断类型号。二、软件方面:二、软件方面:分主程序和中断子程序分主程序和中断子程序中断子程序:编写中断服务子程序。中断子程序:编写中断服务子程序。 主程序:主程序:1、关中断;、关中断;2、填写中断入口地址表;、填写中断入口地址表;3、设置、设置8259A及其他编程芯片;及其他编程芯片;4、开中断;、开中断;举例一:软件中断INTO中断执行结果由两个加数决定,有溢出:BL0FFH;无溢出:BL00。 INTO1 PROC;中断溢出处理PUSH AXMOV BL,0FFHPOP AXIRET;中断返回INTO1 ENDPDATASEGMENT;定义数据段ADD1DB ?ADD

54、2DB ?DATAENDSCODESEGMENT;定义代码段ASSUME CS: CODE,DS:DATASTART:MOV AS,DATAMOV DS,AX MOV AX,0;填写中断地址表MOV ES,AXMOV DI,04*4;存中断程序首地址的偏移量MOV AX,OFFSET INTO1;可用MOV AX,CSCLDSTOSW;存中断程序首地址的段地址MOV AX,SEG INTO1STOSWMOV BL,0;主程序MOV AL,ADD1;计算ADD1ADD2ADD AL,ADDD2INTO;若有溢出,转溢出处理MOV AL,BLMOV AX,4C00HINT 21HHLTINTO1

55、PROC;中断溢出处理MOV BL,0FFHIRET;中断返回INTO1 ENDP;CODE ENDSEND START 举例二:硬件中断 下图是一个接口电路,用中断传送方式使8255A的A口的发光二极管依次发光,要求每个二极管在一个循环中发光1S。设8255A端口地址为80H86H,8253端口地址为88H8EH,主8259端口地址为90H92H,从8259端口地址为98H9AHCA0CA1CA2CA0CA1CA2SPSP+5V0V/INTA/INTA/INTAINTINTINTRIR0 IR7IR0 IR7OUT0 GATA0 CLK0+5V1KHzA0 A1 A7+5V825982598

56、25582538255A的A口工作方式可选为方式0的输出,而8253通道0的工作方式可定为方式0,即计数结束产生中断信号。8255A的方式控制字:10001011B。即A输出,B口输入,C口输入。8253通道0的方式控制字:00110001B。即工作方式为方式0,BCD码计数。8259设置特点1、初始化具有顺序性2、顺序为 ICW1、ICW2、ICW3、ICW4主8259设置ICW1:上升沿触发,级联端口90H:00010001BICW2:中断类型码,端口92H:08HICW3:主片从片标志,端口92H:00000100BICW4:完全中断嵌套方式,非自动中断结束方式端口92H:0000000

57、1B从8259设置ICW1:上升沿触发,级联端口98H:00010001BICW2:中断类型码,端口9AH:30HICW3:主片从片标志,端口9AH:00000010BICW4:完全中断嵌套方式,非自动中断结束方式端口9AH:00000001BSHIFT_DATDB 0FEHCLI;关中断CLD;填写中断入口地址表MOV AX,0MOV ES,AXMOV DI,4*31HMOV AX,OFFSET INT_31HMOV ES:DI,AXINC DIINC DIMOV AX,SEG INT_31HMOV ES:DI,AX;设置主8259MOV AL,11H;设置ICW1;上升沿触发,级联OUT

58、90H,ALMOV AL,08;设置ICW2;中断矢量OUT 92H,ALMOV AL,04;设置ICW3;IR2级联OUT 92H,ALMOV AL,01;设置ICW4;非自动结束中断(清中断服务FF)OUT 92H,ALMOV AL,01101011B ;设置IOW1,开放IR2,IR4,IR7中断OUT 92H,AL;设置从8259MOV AL,11H;设置ICW1OUT 98H,ALMOV AL,30H;设置ICW2OUT 9AH,ALMOV AL,02;设置ICW3OUT 9AH,ALMOV AL,01;设置ICW4OUT 9AH,ALMOV AL,00000000B;设置IOW1,开放IR0I

温馨提示

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

评论

0/150

提交评论