第5章-中断技术.ppt
《第5章-中断技术.ppt》由会员分享,可在线阅读,更多相关《第5章-中断技术.ppt(107页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 中断技术中断技术 第一页,编辑于星期五:十六点 四十七分。5.1 中断的基本概念一。什么是中断 CPU在正常运行时候,由于内部/外部事件或程序员预先安排的事件,引起CPU暂停正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去。服务完毕,再返回去继续执行被暂停的程序。中断申请主程序中断服务程序返回第二页,编辑于星期五:十六点 四十七分。二。中断源与中断识别二。中断源与中断识别1.1.中断源:发出中断请求的外部设备或引起中断源:发出中断请求的外部设备或引起中断的内部原因称为中断源。中断的内部原因称为中断源。 外设请求的中断外设请求的中断 中断指令引起的中断中断指
2、令引起的中断 程序差错引起的中断程序差错引起的中断 硬件故障引起的中断硬件故障引起的中断第三页,编辑于星期五:十六点 四十七分。2.2.中断识别中断识别CPUCPU寻找中断源的过程称为中断识别寻找中断源的过程称为中断识别中断识别的目的:获得该中断源的服务程中断识别的目的:获得该中断源的服务程序的入口地址。序的入口地址。中断识别的方法:向量中断或查询中断中断识别的方法:向量中断或查询中断第四页,编辑于星期五:十六点 四十七分。三。中断向量、向量表三。中断向量、向量表中断向量:中断服务程序的入口地址中断向量:中断服务程序的入口地址中断向量表:把系统中所有中断向量集中起中断向量表:把系统中所有中断向
3、量集中起来放到存储器的某一区域,这个存储区叫来放到存储器的某一区域,这个存储区叫中断向量表。中断向量表。第五页,编辑于星期五:十六点 四十七分。四。中断类型号、向量指针四。中断类型号、向量指针 中断类型号:系统给每个中断源分配中断类型号:系统给每个中断源分配一个唯一的编号,称为中断类型号。一个唯一的编号,称为中断类型号。 中断向量指针:中断向量在存储器中中断向量指针:中断向量在存储器中的地址。的地址。 以下是以下是8088CPU8088CPU计算机(如计算机(如IBM-PCIBM-PC)中断向量、向量表、指针关系参)中断向量、向量表、指针关系参看下图看下图第六页,编辑于星期五:十六点 四十七分
4、。 中中断向量断向量 ( (中中断服务程序断服务程序入口地址入口地址) ) 在表中的地在表中的地址(中断向址(中断向量指针)量指针) = = 中断类型号中断类型号 4 4溢出中断溢出中断中断类型号中断类型号 中断向量中断向量 中断向量指针中断向量指针 0000 : 0014 H0000 : 0010 H0000 : 000C H0000 : 0008 H0000 : 0004 H0000 : 0000 H类型类型5类型类型255供用户定义的中断供用户定义的中断(共(共224个)个)0000 : 007 FH0000 : 007 CH0000 : 03 FFH0000:03FCHCS255 IP
5、255CS31 IP31CS IPCS3 IP3CS2 IP2CS1 IP1CS0 IP0专用的中断专用的中断(共(共5个)个)保留的中断保留的中断(共(共27个)个)类型类型32 类型类型31类型类型0类型类型4类型类型3类型类型2类型类型1除数为除数为 0 中断中断非屏蔽中断非屏蔽中断单步中断单步中断断点中断断点中断第七页,编辑于星期五:十六点 四十七分。1800HF000H00H18H00HF0HPUSH IRET例:执行例:执行INT21H 向量地址向量地址 21H 4 84H CPU IP CSMEM (4)(1)(2) (3)0 : 0000H0 : 0084H0 : 0087H0
6、 : 03FFHF000 : 1800H中断向量表中断向量表8088CPU 8088CPU 转入中断服务程序的过程转入中断服务程序的过程(INT 21H INT 21H 指令导致软中断)指令导致软中断)第八页,编辑于星期五:十六点 四十七分。 CPUCPU执行执行INT 21HINT 21H指令,指令,CPUCPU内部电路产生一内部电路产生一次中断请求,类型号为次中断请求,类型号为21H21H。 CPUCPU内部电路内部电路自动计算出中断向量(自动计算出中断向量(21H21H* *4 4) CPUCPU自动读内存自动读内存(84H)(84H)字单元,读出数据送入字单元,读出数据送入(IP)(I
7、P); CPUCPU自动读内存自动读内存(86H)(86H)字单元,读出数据送入字单元,读出数据送入(CS);(CS); CPUCPU到(到(CSCS,IPIP)所指向的内存单元(中断)所指向的内存单元(中断服务程序起始地址)取指令并执行。服务程序起始地址)取指令并执行。第九页,编辑于星期五:十六点 四十七分。五。中断向量的装入与修改五。中断向量的装入与修改( (以以8088/8086CPU8088/8086CPU为为例例) )1.1.中断向量的装入中断向量的装入方法一:用方法一:用MOVMOV指令指令例:假设中断类型号为例:假设中断类型号为60H60H,中断服务程序在,中断服务程序在内存的地
8、址为内存的地址为2000:006D,2000:006D,写出把中断向量装写出把中断向量装入程序入程序第十页,编辑于星期五:十六点 四十七分。Mov AX,006DH;用;用2条指令把中断向量的偏移地址部分装入向量表条指令把中断向量的偏移地址部分装入向量表Mov DI,AX INC DIINC DI; ;用用4 4条指令把中断向量的断地址部分装条指令把中断向量的断地址部分装入向量表入向量表INC DIINC DI Mov AX ,2000HMov AX ,2000HMov DI, AXMov DI, AXMOV AX,0MOV AX,0 ; ;用用3 3条指令把中断向量指针放入条指令把中断向量指
9、针放入DS DS :DIDI寄存器中寄存器中MOV DS,AXMOV DS,AXMOV DI,4MOV DI,4* *60H60H第十一页,编辑于星期五:十六点 四十七分。方法二:用方法二:用INT 21H INT 21H 指令(指令(DOSDOS功能调用指功能调用指令)令)例:假设中断类型号为例:假设中断类型号为60H60H,中断服务程序在,中断服务程序在内存的地址为内存的地址为2000:006D,2000:006D,写出把中断向量写出把中断向量装入程序装入程序第十二页,编辑于星期五:十六点 四十七分。MOV AH,25HMOV AH,25H ; ;设置设置INT 21INT 21指令的第指
10、令的第1 1个个参数参数DOSDOS功能号功能号MOV AL,MOV AL,0H0H;设置;设置INT 21INT 21指令的第指令的第2 2个参数个参数中断类型号中断类型号MOV BX,2000HMOV BX,2000H;设置;设置INT 21INT 21指令的第指令的第3 3个参数个参数中断向量段中断向量段Mov DS,BXMov DS,BXMOV DX,2000HMOV DX,2000H设置设置INT 21INT 21指令的第个参数指令的第个参数中断向量偏移中断向量偏移INT 21HINT 21H ;DOS ;DOS 功能调用功能调用第十三页,编辑于星期五:十六点 四十七分。思考:课本思
11、考:课本P82例例3,修改中断向量的过程,你能理解吗?,修改中断向量的过程,你能理解吗?六。优先级排队方式六。优先级排队方式当系统中有多个中断源存在时,若有几个中断当系统中有多个中断源存在时,若有几个中断源同时提出申请,那么就存在源同时提出申请,那么就存在CPUCPU先响应谁的先响应谁的问题。为此提出了中断优先权的概念。问题。为此提出了中断优先权的概念。按优先级排队按优先级排队循环轮流排队循环轮流排队第十四页,编辑于星期五:十六点 四十七分。七。中断嵌套七。中断嵌套当当CPUCPU处理一个中断源,正在处理一个中断源,正在执行中断服务程序时,又遇到执行中断服务程序时,又遇到优先级更高的中断源中断
12、请求优先级更高的中断源中断请求。CPUCPU暂停正在执行的中断程暂停正在执行的中断程序,去处理这个级别更高的序,去处理这个级别更高的中断源请求,执行它的中断中断源请求,执行它的中断服务程序。待执行完毕,再服务程序。待执行完毕,再返回被暂停的原来的中断服返回被暂停的原来的中断服务程序。把这个过程称为中务程序。把这个过程称为中断嵌套。断嵌套。中断服务2 (高优先级)主程序中断服务1第十五页,编辑于星期五:十六点 四十七分。5.2 IBM-PC5.2 IBM-PC中断系统(具体一款计算机的中断系统(具体一款计算机的中断技术)中断技术)80888088能处理能处理256256种中断,分为种中断,分为两
13、大类:外部两大类:外部中断(又称为中断(又称为硬件中断)和硬件中断)和内部中断又称内部中断又称为软件中断)为软件中断) 。其中断分类。其中断分类如图如图8086的中断分类的中断分类INT n 指令指令 中断逻辑中断逻辑非屏蔽中断请求非屏蔽中断请求中断中断控制系统控制系统(8259A)INT 3指令指令INTO指令指令单步单步中断中断除数为除数为0中断中断 可屏蔽可屏蔽中断请求中断请求NMIINTR硬件中断硬件中断软件中断软件中断第十六页,编辑于星期五:十六点 四十七分。一一. 外部中断外部中断 (硬件中断硬件中断) 非屏蔽中断非屏蔽中断 NMI (NMI (类型号类型号为为2 2) ) 上跳沿
14、触发请求,不受上跳沿触发请求,不受FRFR(状态标志(状态标志寄存器寄存器FLAG REGFLAG REG) 中中IFIF(中断标志(中断标志位)位) 的影响,常用于处理系统的重大的影响,常用于处理系统的重大故障。故障。 可屏蔽的中断可屏蔽的中断INTR (类型号类型号由中断接口由中断接口8259芯片提供芯片提供)高电平有效,高电平有效,CPU CPU 是否响应,取决于是否响应,取决于 FR FR 中中IF IF 的状态。常用于各种外设的的状态。常用于各种外设的中断中断。第十七页,编辑于星期五:十六点 四十七分。二二. 内部中断内部中断 (软件中断软件中断)通常由三种情况引起:通常由三种情况引
15、起:(1) INT n (1) INT n 指令中断指令中断 ( (n n 为中断为中断类型号类型号) )(2) (2) 处理处理CPU CPU 某些错误的中断某些错误的中断 除法错中断除法错中断 ( (中断类型号为中断类型号为0)0) 溢出中断溢出中断 (INTO) (INTO) (中断类型中断类型号为号为4 4) )第十八页,编辑于星期五:十六点 四十七分。(3) 为调试程序设置的中断为调试程序设置的中断(3)(3)单步中断单步中断当当FR FR 中中TF = 1TF = 1时,每执行一条指令,时,每执行一条指令,CPU CPU 产生类型产生类型号号为为1 1 的单步中断。的单步中断。 断
16、点中断设置断点实际上是把指令设置断点实际上是把指令“ “ INT 3” INT 3” 插入到程序中,插入到程序中,CPU CPU 每执行到断点处每执行到断点处的的“INT 3” INT 3” 指令,便产生类型指令,便产生类型号号为为3 3 的中断。的中断。第十九页,编辑于星期五:十六点 四十七分。三、硬件中断与软件中断的比较三、硬件中断与软件中断的比较1.1.硬件中断的特点硬件中断的特点: :是是CPUCPU外部事件而引起的中断,具有随机外部事件而引起的中断,具有随机性和突发性性和突发性在中断响应总线周期,在中断响应总线周期,CPUCPU需要发出中断需要发出中断应答信号应答信号/INTA(NM
17、I/INTA(NMI硬件中断没有硬件中断没有) )。中断类型号由中断控制器芯片中断类型号由中断控制器芯片82598259提供提供(NMI(NMI硬件中断类型号由硬件中断类型号由CPUCPU固定设为固定设为2)2)是可以屏蔽的(是可以屏蔽的( NMINMI硬件中断除外)硬件中断除外)第二十页,编辑于星期五:十六点 四十七分。2.2.软件中断的特点软件中断的特点是执行中断指令或普通指令执行出现某是执行中断指令或普通指令执行出现某种故障而引起的种故障而引起的中断响应周期,中断响应周期,CPUCPU没有没有INTAINTA信号产生。信号产生。中断类型号由中断指令给出或中断类型号由中断指令给出或CPUC
18、PU固定设固定设置置是不可屏蔽的。是不可屏蔽的。四。软件中断的应用四。软件中断的应用 自学自学P89P89第二十一页,编辑于星期五:十六点 四十七分。五、中断处理过程五、中断处理过程( (以硬件中断为例以硬件中断为例) )某外设 8088CPU INTR /INTA /XINTAXINT8259INT IR0 IR1/INTA IR6 IR70000:0180H0000:0182Hold_cs:old_ip1240:0200H3000:0000H 。3000:0100H0200H1240H类型类型60H中断服务中断服务程序程序XXXXXXXXCS=old_csIP=old_IPFLAG=old
19、_flagDS=0000SS=3000SP=0100XXXX主程序主程序中断请求之前中断请求之前总线接口总线接口XXXXXXXX第二十二页,编辑于星期五:十六点 四十七分。某外设 8088CPU INTR /INTA /XINTAXINT8259INT IR0 IR1/INTA IR6 IR70000:0180H0000:0182Hold_cs:old_ip1240:0200H3000:0000H3000:00FA3000:0100H0200H1240H类型类型60H中断服务中断服务程序程序old_flagXXXXXXXXCS=1240IP=0200FLAG=old_flagDS=0000SS
20、=3000SP=00FAXXXXold_ipold_cs主程序主程序中断响应之后中断响应之后总线接口总线接口第二十三页,编辑于星期五:十六点 四十七分。某外设 8088CPU INTR /INTA /XINTAXINT8259INT IR0 IR1/INTA IR6 IR70000:0180H0000:0182Hold_cs:old_ip1240:0200H1240:0256H3000:0000H3000:00FA3000:0100H0200H1240H类型类型60H中断服务中断服务程序程序old_flagXXXXXXXXCS=1240IP=0256FLAG=DS=0000SS=3000SP=
21、00FAXXXXold_ipold_cs主程序主程序中断返回之前中断返回之前总线接口总线接口第二十四页,编辑于星期五:十六点 四十七分。某外设 8088CPU INTR /INTA /XINTAXINT8259INT IR0 IR1/INTA IR6 IR70000:0180H0000:0182Hold_cs:old_ip1240:0200H3000:0000H 。3000:0100H0200H1240H类型类型60H中断服务中断服务程序程序XXXXXXXXCS=old_csIP=old_IPFLAG=old_flagDS=0000SS=3000SP=0100XXXX主程序主程序中断返回之后中
22、断返回之后总线接口总线接口XXXXXXXX第二十五页,编辑于星期五:十六点 四十七分。五、中断处理过程五、中断处理过程( (以硬件中断为例以硬件中断为例) )1.1.中断请求中断请求: (课本(课本P85 P85 图图5.35.3)外设外设发中断请求。发中断请求。CPUCPU在每条指令的最后一个在每条指令的最后一个 时钟节拍,查看时钟节拍,查看INTINT信号线。如果信号线。如果FLAGFLAG寄寄存器的存器的IFIF标志为标志为 1 1(允许中断标志),则(允许中断标志),则响应中断。(既响应中断。(既CPUCPU产生中断响应总线周产生中断响应总线周期)。期)。第二十六页,编辑于星期五:十六
23、点 四十七分。2.2.中断响应:中断响应: (课本(课本P85 P85 图图5.35.3)共共8 8拍,发拍,发2 2次次INTAINTA有有效信号。第一次通知中断控制器效信号。第一次通知中断控制器82598259,已经响应中断,请已经响应中断,请82598259准备好中断类型号准备好中断类型号;第二次从;第二次从82598259中读出中断类型号。中读出中断类型号。 CPUCPU自动将当前的自动将当前的old_flagold_flag,old_cs,old_ipold_cs,old_ip寄存器压入堆栈。根据中断类型号,寄存器压入堆栈。根据中断类型号,CPUCPU自动生成中断向量指针,自动从中断
24、自动生成中断向量指针,自动从中断向量表中取出中断向量,装入向量表中取出中断向量,装入CS,IPCS,IP寄存寄存器,从而跳入中断服务程序。器,从而跳入中断服务程序。第二十七页,编辑于星期五:十六点 四十七分。五、中断处理过程五、中断处理过程( (以硬件中断为例以硬件中断为例) )3.3.中断服务程序:中断服务程序: (课本(课本P85 P85 图图5.3 5.3 )4.4.中断返回:中断返回: (课本(课本P85 P85 图图5.3 5.3 )在中断服务程序的最后,应该放一条在中断服务程序的最后,应该放一条IRETIRET指令(中断返回指令)。该指令执指令(中断返回指令)。该指令执行时会把堆栈
25、的原来的行时会把堆栈的原来的CSIPFLAGCSIPFLAG内容内容弹回。弹回。第二十八页,编辑于星期五:十六点 四十七分。六。中断响应周期六。中断响应周期外设中断请求信号线外设中断请求信号线IRiIRi(i=0-7i=0-7):):中断接口芯片中断接口芯片82598259内部中断请求寄存器(内部中断请求寄存器(IRRIRR)的第)的第IRiIRi位硬件设置位硬件设置1 1,进一步使得,进一步使得82598259通过通过INTINT引脚向引脚向CPUCPU提出中断请求。提出中断请求。CPUCPU在当前指令周期的最后一个节拍硬件在当前指令周期的最后一个节拍硬件检测检测INTRINTR引脚,如果满
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断 技术
限制150内