《微型计算机接口技术课件》第5章-中断技术.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《微型计算机接口技术课件》第5章-中断技术.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机接口技术课件 微型计算机 接口 技术 课件 中断
- 资源描述:
-
1、第第5章章 中断技术中断技术本本 章章 内内 容容 中断技术的基本概念中断技术的基本概念 中断技术的工作原理中断技术的工作原理 系统配置的中断资源的应用系统配置的中断资源的应用中断向量修改及中断服务程序的编写中断向量修改及中断服务程序的编写15.1 中断中断 基本概念基本概念 中断中断是是指指CPU在正常运行程序时,在正常运行程序时,由于外部由于外部/内部事件,内部事件,或由程序引起或由程序引起CPU中断正在运行的程序中断正在运行的程序,而而转到为中断事件转到为中断事件服务的程序服务的程序中去,中去,服务完毕服务完毕,再,再返回执行原程序返回执行原程序,这一,这一过过程程称为中断称为中断。 外
2、部中断外部中断的特征:的特征:具有随机性具有随机性。25.2 中断的类型中断的类型5.2.1 外部中断外部中断1. 可屏蔽中断可屏蔽中断INTR这是这是由外部设备由外部设备通过中断控制器用中断请求线通过中断控制器用中断请求线INTR向微处理器向微处理器申请而产生的中断申请而产生的中断,但,但微处理器微处理器可以可以用用CLI指令指令来屏蔽来屏蔽(禁止),(禁止),即不响应它的中断请求,即不响应它的中断请求,因此因此把这种中断把这种中断称为称为可屏蔽中断可屏蔽中断。2. 不可屏蔽中断不可屏蔽中断NMI由系统硬件引发的中断由系统硬件引发的中断,如协处理器出错、通道等。它的优先,如协处理器出错、通道
3、等。它的优先级高于外部硬件中断,且级高于外部硬件中断,且不受中断允许标志位不受中断允许标志位(IF)的影响的影响,即,即微微处理器处理器不可以不可以用用CLI指令指令来屏蔽,来屏蔽,所以所以是是不可屏蔽中断不可屏蔽中断。35.2.2 内部中断内部中断内部中断是内部中断是由用户在程序中发出中断指令由用户在程序中发出中断指令INTnH产生的产生的,指令中的指令中的操作数操作数n称为称为软中断号软中断号。内部中断内部中断包括包括DOS中断功能中断功能和和BIOS中断功能两部分,中断功能两部分,可供用户可供用户在编写应用程序时在编写应用程序时调用调用。 1. DOS功能调用功能调用DOS是存放在磁盘上
4、的操作系统软件,其中内部中断是存放在磁盘上的操作系统软件,其中内部中断INT 21H是是DOS的内核。它是一个很重要、功能庞大的的内核。它是一个很重要、功能庞大的中断服务程序,包含中断服务程序,包含06CH个子功能,包括对设备、个子功能,包括对设备、文件、目录及内存的管理功能,涉及各个方面,可供系文件、目录及内存的管理功能,涉及各个方面,可供系统软件和应用程序调用,同时,由于它处在统软件和应用程序调用,同时,由于它处在ROM-BIOS层的上一个层次,与系统硬件层有层的上一个层次,与系统硬件层有ROM-BIOS在逻辑上在逻辑上的隔离,所以,它对系统硬件的依赖性大大减少,兼容的隔离,所以,它对系统
5、硬件的依赖性大大减少,兼容性好。性好。2. BIOS功能调用功能调用BIOS是一组存放在是一组存放在ROM中、独立于中、独立于DOS的的I/O中断服中断服务程序。它在系统硬件的上一层,直接对系统中的务程序。它在系统硬件的上一层,直接对系统中的I/O设备进行设备级控制,可供上层软件和应用程序调用设备进行设备级控制,可供上层软件和应用程序调用。4除了上述外部中断和内部中断两类中断之外,除了上述外部中断和内部中断两类中断之外,微机的中断系统微机的中断系统还还包括一些特殊中断包括一些特殊中断,这些中断,这些中断既不是由外部设备提出既不是由外部设备提出申请而产生申请而产生的,的,也不是由用户在程序中发中
6、断指令也不是由用户在程序中发中断指令INTnH而而发生的发生的,而是而是由内由内部的突发事件部的突发事件所引起的中断所引起的中断,即在执行指令的过程中,即在执行指令的过程中,CPU发现某发现某种突发事件时就启动内部逻辑转去执行预先规定的中断号所对应的种突发事件时就启动内部逻辑转去执行预先规定的中断号所对应的中断服务程序。中断服务程序。这类中断这类中断也是也是不可屏蔽中断不可屏蔽中断,其中断处理过程具有,其中断处理过程具有与内部中断相同的特点,因此,有的书上把它们归结为内部中断这与内部中断相同的特点,因此,有的书上把它们归结为内部中断这一类。这类中断有如下几种。一类。这类中断有如下几种。(1)0
7、号中断号中断除数为零中断;除数为零中断;(2)1号中断号中断单步中断;单步中断;(3)3号中断号中断断点中断;断点中断;(4)4号中断号中断溢出中断。溢出中断。3. 内部中断的应用内部中断的应用DOS调用调用和和BIOS调用调用是用户使用系统资源的重要方法和是用户使用系统资源的重要方法和基本途径,也基本途径,也是用户编写是用户编写MS-DOS应用程序应用程序使用很频繁的方使用很频繁的方法法,应学会使用。,应学会使用。5 5.3 中断号中断号5.3.1 中断号与中断号的获取中断号与中断号的获取1. 什么是中断号什么是中断号中断号中断号是系统分配给每个中断源是系统分配给每个中断源的代号的代号,以便
8、识别和处理。,以便识别和处理。中断中断号号在中断处理过程中在中断处理过程中起到很重要的作用起到很重要的作用,在,在采用向量中断方式采用向量中断方式的的中断系统中,中断系统中,CPU必须必须通过中断号通过中断号才可以才可以找到中断服务程序的找到中断服务程序的入口地址入口地址,实现实现程序的转移程序的转移。2. 中断号的获取中断号的获取CPU对系统中对系统中不同类型的中断源不同类型的中断源,获取获取它们的它们的中断号的方法是中断号的方法是不同的不同的。可屏蔽可屏蔽中断的中断号中断的中断号是在中断响应周期是在中断响应周期从中断控制器获从中断控制器获取取的。的。内部中断内部中断INTnH的中断号的中断
9、号(nH) 是是由中断指令直接给出由中断指令直接给出的。的。不可屏蔽中断不可屏蔽中断NMI以及以及CPU内部内部一些特殊中断一些特殊中断的中断号的中断号是是由由系统预先设置好的系统预先设置好的,如,如NMI的中断号为的中断号为02H,非法除数的中断号,非法除数的中断号为为0H等。等。65.3.2 中断响应周期中断响应周期当当CPU收到外部设备收到外部设备通过中断控制器提出通过中断控制器提出的中断请求的中断请求INT后,后,如果如果当前一条指令已执行完当前一条指令已执行完,且,且中断标志位中断标志位IF=1时(即允许中时(即允许中断),又断),又没有没有DMA请求请求,那么那么,CPU进入进入中
10、断响应周期中断响应周期,发出发出两个连续两个连续中断应答信号中断应答信号 完成一个中断响应周期完成一个中断响应周期。图。图5.1表示表示是中断响应周期时序。是中断响应周期时序。 7IN T A 一个一个中断响应周期中断响应周期完成的完成的操作有操作有:1. 置位中断服务寄存器置位中断服务寄存器ISR 当当CPU发出发出第一个脉冲第一个脉冲 时时,CPU输出有效的总线锁定信号,输出有效的总线锁定信号, 使总线在此期间处于封锁状态,防止其他处理器或使总线在此期间处于封锁状态,防止其他处理器或DMA控制器占控制器占用总线。与此同时,用总线。与此同时,中断控制器将中断控制器将判优后允许的判优后允许的中
11、断级中断级存放存放在在寄寄存器存器ISR中中,即将,即将相应位置相应位置1,以登记正在服务的中断级别以登记正在服务的中断级别。在在中中断服务程序执行完毕断服务程序执行完毕之后,之后,该寄存器该寄存器自身不能清零自身不能清零,故故需要需要向中向中断控制器断控制器发中断结束命令发中断结束命令EOI才能清零才能清零。 2. 读取中断号读取中断号 当当CPU发出发出第二个脉冲第二个脉冲 时时,总线锁定信号撤除,总线被解封,总线锁定信号撤除,总线被解封,地址允许信号地址允许信号ALE也变为低电平(无效),也变为低电平(无效),即允许数据线工作。即允许数据线工作。正好此时正好此时中断控制器将中断控制器将当
12、前中断服务程序的当前中断服务程序的中断号送到数据线上中断号送到数据线上,由由CPU读入读入。 5.3.3 中断号的分配中断号的分配 系统对外部中断和内部中断一律统一编号,共有系统对外部中断和内部中断一律统一编号,共有256个号,个号,微机微机系统的中断号分配系统的中断号分配如表如表5.1所示所示。表中。表中两块灰色区域两块灰色区域的中断号分别的中断号分别是系统是系统分配给分配给PC微机系统中的微机系统中的中断控制器主片中断控制器主片与与从片的中断号从片的中断号,用户用户可以可以采用修改其中断向量的方法采用修改其中断向量的方法进行应用进行应用。8INTAINTA表5.1 9105.4 中断触发方
13、式与中断排队方式中断触发方式与中断排队方式5.4.1 中断触发方式中断触发方式中断触发方式中断触发方式是指是指外部设备外部设备以什么逻辑信号以什么逻辑信号去向中断控制器申请中去向中断控制器申请中断断,中断控制器,中断控制器允许用边沿允许用边沿或或电平信号申请中断电平信号申请中断,即,即边沿触发边沿触发和和电电平触发平触发两种方式。两种方式。触发方式触发方式在在中断控制器初始化时中断控制器初始化时设定设定。5.4.2 中断排队方式中断排队方式 中断系统对中断系统对中断源的中断请求中断源的中断请求是按优先级提供服务的是按优先级提供服务的。中断优先中断优先级级从高到低的顺序从高到低的顺序是:内部中断
14、是:内部中断不可屏蔽中断不可屏蔽中断可屏蔽中断。可屏蔽中断。 当当系统有多个中断源时,就可能系统有多个中断源时,就可能出现同时有几个中断源都申请中出现同时有几个中断源都申请中断断,而,而微处理器微处理器在一个时刻在一个时刻只能响应并处理一个中断请求只能响应并处理一个中断请求。为此,。为此,要进行中断排队要进行中断排队,微处理器,微处理器一般是一般是按按“优先级高的先服务优先级高的先服务”的原则的原则提提供服务供服务,但也有,但也有其他一些其他一些中断排队中断排队的方式。的方式。中断排队中断排队方式方式在在中断控中断控制器初始化时制器初始化时设定设定。11 具体中断排队方式如下:具体中断排队方式
15、如下: 1. 按优先级排队按优先级排队 根据任务的轻重缓急根据任务的轻重缓急,给每个中断源指定,给每个中断源指定CPU响应的响应的优先级,优先级,任务紧急的任务紧急的先响应先响应,可以暂缓的可以暂缓的后响应后响应。 2. 循环轮流排队循环轮流排队 不分级别高低不分级别高低,CPU轮流响应轮流响应各个中断源的各个中断源的中断请求中断请求,并为其服务并为其服务。 3. 中断嵌套中断嵌套 在实际应用中,当在实际应用中,当CPU正在处理某个中断源,即正在处理某个中断源,即正在正在执执行中断服务程序行中断服务程序时时,会出现会出现优先级更高优先级更高的的中断源申请中断中断源申请中断。为了使为了使更紧急的
16、更紧急的、级别更高级别更高的中断源的中断源及时得到服务及时得到服务,需要需要暂暂时时打断(挂起)打断(挂起)当前正在执行的当前正在执行的级别较低级别较低的中断服务程序,的中断服务程序,去处理级别更高去处理级别更高的中断源的中断源,待,待处理完处理完以后,以后,再返回到被打断再返回到被打断了了的中断服务程序的中断服务程序继续执行。这就是继续执行。这就是所谓的所谓的中断嵌套中断嵌套。INTR可以可以进行进行中断嵌套中断嵌套。NMI不可以不可以进行进行中断嵌套中断嵌套。125.5 中断向量与中断向量表中断向量与中断向量表 当发生中断当发生中断,就意味着就意味着要发生程序的转移,即要发生程序的转移,即
17、由主程序由主程序转移转移到到服务程序去服务程序去。那么,。那么,如何才能进入中断服务程序如何才能进入中断服务程序,即,即如何找到如何找到中断服务程序的入口地址是中断服务程序的入口地址是解决问题的解决问题的关键。关键。 为此,为此,当当采用向量中断方式采用向量中断方式(不是查询中断方式)(不是查询中断方式)时时,设置设置中中断向量断向量和和中断向量表中断向量表,通过通过中断向量表中断向量表中的中的中断向量查找中断服务程序的中断向量查找中断服务程序的入口地址入口地址。5.5.1 中断向量与中断向量表中断向量与中断向量表 1. 什么是中断向量什么是中断向量 CPU响应中断后,响应中断后,中断源中断源
18、提供提供中断号中断号,再,再由中断号生成由中断号生成地址信息地址信息,以以此此地址信息地址信息为指针,为指针,对程序的执行进行导向,对程序的执行进行导向,引导到中断服务程序中去引导到中断服务程序中去,故,故把这个地址信息称为中断向量把这个地址信息称为中断向量(存储单元)。(存储单元)。 中断向量中断向量包括包括中断服务程序的段基址中断服务程序的段基址CS(高高位位字字)和和偏偏移地移地址址IP(低(低位位字)字)共共4个字节个字节。其中,其中, 中断号中断号4=偏偏移地移地址址IP;中断号;中断号4+2=段基址段基址CS。 例如,例如,8号中断号中断中断源中断源的中断向量:的中断向量: IP8
19、=84=20H21H; CS8=84+2=22H23H.13 2. 什么是中断向量表什么是中断向量表 所有的所有的中断向量集中存放中断向量集中存放到存储器到存储器的某一区域的某一区域,这,这一一区域区域称之为中断向量表称之为中断向量表。 微机系统规定把存储器的微机系统规定把存储器的0000H03FFH共共1024个地个地址单元作为中断向量存储区址单元作为中断向量存储区,这表明中断向量表的起始地,这表明中断向量表的起始地址是固定的,并且从存储器的物理地址址是固定的,并且从存储器的物理地址0开始。开始。中断向量表中断向量表如图如图5.2所示所示。每个中断向量包含每个中断向量包含4个字节个字节,这,
20、这4个字节个字节在在中断向量表中中断向量表中的的存放规律是存放规律是向量的偏移量(向量的偏移量(IP)存放在存放在两个低字节单元中两个低字节单元中,向量的基址(向量的基址(CS)存放在存放在两个两个高字节单元中高字节单元中。14图5.2中断向量表155.5.2 中断向量表的填写中断向量表的填写 中断向量中断向量表的填写表的填写分分系统填写系统填写和和用户填写用户填写两种情况两种情况。 系统设置的中断服务程序,其中断向量由系统负责填写系统设置的中断服务程序,其中断向量由系统负责填写。 用户开发的中断系统,在编写中断服务程序时,其中断向量由用户负责填用户开发的中断系统,在编写中断服务程序时,其中断
21、向量由用户负责填写,可采用写,可采用MOV指令直接向中断向量表中填写中断向量。指令直接向中断向量表中填写中断向量。不过,一般不过,一般情况下,情况下,用户都是通过用户都是通过修改中断向量的方法修改中断向量的方法使用系统的中断资使用系统的中断资源源,故故很少很少由用户自己直接填写由用户自己直接填写中断向量中断向量。165.6 中断处理过程中断处理过程5.6.1 可屏蔽中断的处理过程可屏蔽中断的处理过程1. 中断申请与响应中断申请与响应的的握手握手过程过程当当外部设备外部设备要求要求CPU服务时服务时,需向需向CPU发出中断申请发出中断申请。CPU若若发现发现有外部中断请求有外部中断请求,并且处在
22、并且处在开中断开中断条件条件(IF=1),又),又没有没有DMA申请申请,则,则CPU在在当前指令执行结束当前指令执行结束时,进入时,进入中断响应中断响应总线总线周期,周期,响应中断请求响应中断请求,同时同时通过中断回答信号通过中断回答信号INTA,从中断控从中断控制器制器读取读取中断源的中断源的中断号中断号,完成完成中断申请中断申请与与中断响应中断响应的握手过程。的握手过程。这一阶段的这一阶段的主要目标主要目标是获取外部中断源的中断号是获取外部中断源的中断号。2. 标志位的处理与断点保存标志位的处理与断点保存微处理器微处理器获得获得外部中断源的中断号外部中断源的中断号后,把后,把标志寄存器标
23、志寄存器FLAGS压压入堆栈入堆栈,并,并置置IF=0,关闭中断关闭中断;置置TF=0,防止单步执行防止单步执行。然后。然后将当前程序将当前程序(主程序主程序)的的代码段寄存器代码段寄存器CS和和指令指针指令指针IP压入堆栈压入堆栈,这样就把这样就把断点断点(返回地址)(返回地址)保存到了堆栈的保存到了堆栈的栈顶栈顶。这一阶段的这一阶段的主主要目标要目标是是完成由主程向服务程序转移前的准备工作。完成由主程向服务程序转移前的准备工作。173. 向中断服务程序转移并执行中断服务程序向中断服务程序转移并执行中断服务程序将将已获得的已获得的中断号乘以中断号乘以4得到得到地址指针地址指针,在,在中断向中
24、断向量表中量表中,读取读取中断服务程序的中断服务程序的入口地址入口地址CS IP,再,再把它写入代码段和指令指示器把它写入代码段和指令指示器,实现实现程序控制的转程序控制的转移。移。这一阶段的这一阶段的主要主要目标目标是完成主程序向中断服务是完成主程序向中断服务程序的转移程序的转移,或称为中断服务程序的加载。,或称为中断服务程序的加载。4. 返回断点返回断点中断服务程序中断服务程序执行完毕执行完毕后,后,要返回要返回主程序主程序,因此,因此,一定要恢复一定要恢复断点断点和和标志寄存器标志寄存器的内容的内容,否则,主程,否则,主程序无法继续执行。为此,序无法继续执行。为此,在中断服务程序的末尾,
25、在中断服务程序的末尾,执行中断返回指令执行中断返回指令IRET,将栈顶的内容依次弹出到将栈顶的内容依次弹出到IP、CS和和FLAGS,就恢复了主程序的执行。,就恢复了主程序的执行。这一这一阶段的阶段的主要主要目标目标是完成中断服务程序是完成中断服务程序向向主程序的转主程序的转移移。185.6.2 不可屏蔽中断和软中断的处理过程不可屏蔽中断和软中断的处理过程由于由于它们它们的不可屏蔽性,并且其中断号的获取方法的不可屏蔽性,并且其中断号的获取方法与可屏蔽与可屏蔽中断中断不一样不一样,所以其中断处理过程也有所差别。其,所以其中断处理过程也有所差别。其主要差别主要差别是:是:不需通过中断响应周期获取中
展开阅读全文