后勤信息工程系
1
第七章 中断
2
教学内容
1.中断的基本概念
2,中断机制
3
中断中断定义基本概念 中断类型中断的一般过程
4
中断中断所谓中断是指某事件的发生,引起 CPU暂停当前程序的运行,转入对所发生事件的处理,处理结束又回到原程序被打断处,接着执行这样一个过程,
1.中断源
2.中断请求
3.断点
4.返回地址
5.中断返回
5
中断 中断驱动式断点主程序中断服务程序外设中断请求继续执行 返回断点对外设的输入 /出请求进行处理的程序数据传送通过 CPU响应外设发出的中断请求来实现
CPU被动,I/O主动
CPU在执行程序中,由于随机出现的外设请求 (外设准备就绪,向
CPU发出中断请求 );
CPU暂停 (中断 )正在执行的程序,转去执行为外设服务的程序 (中断服务程序 );服务结束后,又返回原来的暂停处 (断点 ),继续执行原来的程序
6
中断中断传送方式该方式是:当外设要求 CPU交换数据时,可向 CPU
发出中断请求,CPU在执行完当前指令后,即可中断当前任务的执行,根据中断源提供的中断类型号,
转入相应的中断处理程序,以实现对外设的数据传送和管理。
该方式可实现 CPU和外设并行工作。
7
中断中断特点
1.程序切换,如果不保存断点,就无法返回原来的程序,断点信息通常是压入中断保存的,
(中断切换时间:一条指令结束时切换,保证程序的完整性)
2.随机性,中断不是事先安排好的,是随机的,比如,说明何时发生故障,外设何时提出请求,都是不确定的,
举例中断的典型应用
8
中断的基本概念 中断定义同步操作:使 CPU与外设同时工作实现实时处理:在实时控制场合,中断很重要故障处理:出现故障,如电源故障、存储器出错、运算溢出等,计算机可以利用中断自行处理。
中断的好处:
9
中断的基本概念引起中断的事件,或发出中断请求的来源,
称为中断源
一般的 I/O设备
实时时钟
故障源
调试程序设置的中断源
程序中断中断类型
1,中断源
10
中断的基本概念
1.内部中断 (软件中断 )
2.硬件中断 (外部中断 )
中断类型
2,中断分类
11
中断的基本概念内部中断(软中断),
它由 CPU内部事件及执行软中断指令产生,通常,用中断指令触发,中断的发生时刻是可知的。
已定义的内部中断有,
(1)除法错中断,N=0
(2)单步中断,N=1
(3)断点中断,N=3
(4)溢出中断,N=4
(5)软件中断,
12
中断的基本概念
除法错中断
执行 DIV或 IDIV指令时,商超出机器表示的最大值,即产生 0号中断
溢出错中断
当 FR的 OF=1时,执行 INTO指令,即产生 4号中断
单步中断
当 FR的 TF=1时,执行每条指令,即产生 1号中断
指令中断
断点中断 INT 3H( 机器码为,CCH),单字节指令
INT nH
13
中断的基本概念外部中断(硬中断),
它由外部中断源产生对 CPU的请求而引发,具有随机性,
8086(8088)中断系统将外部中断源分为两种,
非屏蔽中断和可屏蔽中断非屏蔽中断 NMI:为外部紧急请求提供服务的中断,通过端口操作来屏蔽可屏蔽中断 INTR:CPU用来响应各种异步的外部硬件中断最常用的办法,由中断能力的外围设备引起,每个屏蔽中断源可单独关闭,
14
中断的基本概念
外部通过 CPU的非屏蔽中断引脚 NMI发出的请求
不受 CPU内部的中断允许标志 IF的屏蔽,必须响应
主要用于处理系统的意外或故障,如:电源故障,RAM奇偶校验错,I/O通道检查错等中断类型非屏蔽中断 NMI:向量号为 2
可屏蔽中断 INTR:向量号来自中断控制器
外部通过 CPU的可屏蔽中断引脚 INTR发出的请求
由 IF控制是否响应,响应时产生 INTA*信号
响应条件,INTR有效,且 IF=1
主要用于响应各种外部设备 (数据交换 )中断
CPU有 2种中断请求线:非屏蔽中断 NMI线和可屏蔽中断 INTR
线,通过这两条线而引起的中断称为硬中断
80X86采用向量式中断,为每一个中断源赋予唯一的一个
ID号,是为中断向量号(中断类型码)
15
中断的基本概念非屏蔽中断源中断逻辑
INTO
指令单步中断除法错误
INT N
指令
CPU INTR
NMI
可屏蔽中断源
8259A
中断控制器
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
外设中断源
INTA
16
中断的基本概念异常包括两类异常源 ( P275)
1.指令引起的异常
2.处理器引起的异常软中断指令:INT N
断点中断:INT3
溢出中断指令:INTO
17
中断基本概念中断优先级顺序
软件中断
除法错中断
指令中断
溢出中断
非屏蔽中断 (NMI)
可屏蔽中断 (INTR)
单步中断高低一个系统有多个中断源,当多个中断源同时申请中断时,根据事件的轻重缓急,给每个中断源指定一个优先级别,优先级高的中断源优先响应
18
中断的基本概念中断分级的目的:
解决多个中断请求同时发生的响应次序问题,所以我们根据中断的优先级来区分中断级屏蔽位的作用:
决定某级中断请求能否进入排队器.
(只要能进入,还是按上面讲的优先级次序由高到低排列)
19
中断的基本概念中断嵌套,正在运行的中断处理程序,又被其他中断源中断中断嵌套的深度,中断程序又被中断的层次当多个中断源同时向 CPU请求中断时,CPU处理规则,
1.不同优先级的多个中断源同时提出中断请时,CPU首先响应最高优先级的中断源提出的请求,
2.CPU正在对某中断源服务时,若有优先级更高的中断源提出请求,则 CPU应对高优先级中断作出响应,即高优先级的中断请求可以中断低优先级的中断服务,
20
中断基本概念
① 中断请求
② 中断判优
③ 中断响应
④ 中断处理
⑤ 中断返回中断的一般过程需要服务的中断源向 CPU发出中断请求中断判优机构识别发出中断请求的中断源,
当同时有多个中断源提出请求,按一定的优先级顺序选择要响应的中断当满足 CPU响应中断的条件,CPU获取相应中断信息 (中断向量号 ),并自动保护现场,然后转入中断处理过程执行中断服务处理程序,为发出中断请求的中断源服务恢复现场信息 (由 CPU硬件自动保护的信息 ),
返回被中断的程序。这一过程由中断返回指令 IRET完成
21
中断基本概念 P278
中断处理的过程
1.保护断点现场
2.开中断
3.完成I/O操作或异常事件处理
4.关中断
5.恢复现场
6.开中断
7.中断返回
22
中断机制
80X86采用向量式中断,最多可处理 256级中断,为每一个中断源赋予一个 0~FFH的中断向量号 (中断类型码 )
CPU获取的中断信息是中断向量号,
CPU对中断的处理是执行中断服务程序中断向量号与中断服务程序的关系?
如何从中断向量号得到中断服务程序 (的入口地址 )?
中断过程通过中断向量号得到中断服务程序的入口地址:CPU在中断响应时,从数据总线上获取中断向量号,根据向量号,按照一定的方式,得出对应的中断处理程序的入口地址,然后转入中断处理程序执行中断向量或中断矢量
23
中断机制
80X86利用中断向量号得到中断向量,采用的中断机制中断向量:中断服务程序的入口地址,由 4个字节 组成中断向量表:微机系统中通常都在内存设置一个存放所有中断向量的表中断向量表方式段基址 偏移地址
2字节 2字节
80X86可处理 256个中断,要存放 256个中断向量,需要多少内存单元 (即中断向量表有多大 )?
1KB
在内存地址为 00000H~003FFH的 1KB内存区域建立中断向量表,存放 256个中断向量,每个中断向量占 4个字节
24
中断机制 P301
在内存地址为 00000H~003FFH的
1KB内存区域建立中断向量表,
存放 256个中断向量,每个中断向量占 4个字节。
前 2个字节 (低地址 )存放中断向量的偏移地址,后 2个字节 (高地址 )存放段基址取用时,将偏移地址装入 IP,段基址装入 CS
.
.
.
.,,
0000:03FC
0000:03FF
0000:0008
0000:000000000
00008
0000:0003
0000:000B
003FF
类型 0
类型 2
类型 255
EA低字节
EA高字节基址低字节基址高字节中断向量地址中断向量号 × 4=
在响应中断时,CPU将中断向量号 × 4得到中断向量地址,从中断向量地址中取出中断向量装入 CS,IP,从而转入中断处理程序
25
中断机制 举例
INT 05H
MOV AL,30H
中断向量地址 =05H × 4,
.
.
.,,
0000:03FC
0000:03FF
0000:0014
0000:000000000
00014
0000:0003
0000:0017
003FF
类型 0
类型 5
类型 255
EA低字节
EA高字节基址低字节基址高字节
54
FF
00
F0
FO00CS
FF54IP
F000:FF54



.
.
.
.,,
.,,
IRET
中断处理程序


中断处理流程后勤信息工程系
27