汇编语言程序设计》第十三章中断及中断处理程序培训课件
《中断与中断管理》课件
中断编程的重点
中断编程需要注意中断处理程序的编写和中断 向量表的配置。
1 中断请求
外部设备通过向中断控制 器发送中断请求信号来触 发中断。
2 中断响应
一旦中断请求被接受, CPU会暂停当前的任务, 保存现场,并转入中断处 理过程。
3 中断处理
中断处理程序根据中断类 型执行相应的操作,处理 完毕后将控制权返回给原 来的任务。
中断管理
1
中断向量表
中断向量表是一个存储中断处理程序入
中断编程
1 中断处理程序
中断处理程序是处理特定中断类型的代码,它负责在中断发生时执行相应的操作。
2 中断服务例程
中断服务例程是位于中断向量表中的一组指令,用于跳转到相应的中断处理程序。
3 中断处理应用
中断广泛应用于操作系统、驱动程序和实时系统中,实现了设备的异步响应和并发处理。
实验
中断实验
通过编写中断处理程序,实现 对特定中断的响应和处理。
中断向量表配置
配置中断向量表,将中断号与 对应的中断处理程序入口地址 进行关联。
中断嵌套测试
测试系统在多个中断嵌套情况 下的中断处理能力和响应时间。
总结
中断的作用
中断允许计算机响应外部事件和设备,实现并 发处理和实时响应。
中断管理的重要性
良好的中断管理能够提高系统的性能、稳定性 和可靠性。
中断的应用
中断屏蔽
2
口地址的表格,它允许系统根据中断类 型快速定位到对应的处理程序。
中断屏蔽是一种机制,用于禁止或允许
某些中断请求触发中断处理。
3
中断优先级
02-中断处理过程课件
51单片机中断系统结构
中断处理过程
中
断中
源
断 请
求
执 行 主 程 序
响应中断请求
执
行
中
中
中
中
中
断
断
断
断
断点
断
继 续 执
中断返回
服 务 程
请
响
求
应
服 务
返 回
行
序
主
程
序
中断请求
中
断中
源
断 请
求
断点
继 续 执 行 主 程 序
执 行 主 程
响应中断请求
执
序
行
中
断
中断返回
CPU响应中断后的操作
中
断中
源
断 请
求
断点
继 续 执 行 主 程 序
执 行 主 程
响应中断请求
执
序
行
中
断
中断返回
服 务 程
序
▼中断优先级硬件查询, “优先级生效触发 器“置1,对同级或低级中断请求不予响应; ▼保护断点,即将PC内容压入堆栈保存; ▼硬件清除中断请求标志位,防止再次中断;
中断请求标志 IE0 TF0 IE1 TF1 TI RI
断中
源
断 请
求
执 行 主 程
响应中断请求
执
▼中断优先级硬件查询, “优先级生效触 发器“置1,对同级或低级中断请求不予响
序
行
中 应;
断点
断
继 续 执
中断返回
服 ▼保护断点,即将PC内容压入堆栈保存;
务
程 ▼硬件清除中断请求标志位,防止再次中断;
微机原理《中断与中断管理》课件
❖ 不受中断允许标志IF的影响; ❖ 中断类型号固定为2; ❖ 在外部中断源中优先级最高; ❖ 主要用于处理系统的意外或故障,如:电源掉电、
存储器读/写错误等。
第10章 中断与中断管理
(2)可屏蔽中断INTR
❖ 受CPU中断允许标志位IF的控制: ▪ IF=1时,CPU响应中断请求; ▪ IF=0时,CPU屏蔽中断请求,不予响应;
▪ 如果某设备没有中断请求,则信号通过菊花链逻
辑电路继续往下一级传递。
第10章 中断与中断管理
INTR
菊花链逻辑电路 (a)菊花链(链式)优先权排队电路
数据总线
中断类型号n
三态缓冲器
≥1
“1”无 “0”有
逻辑 电路
≥1
INTA
中断请求 “1”有 “0”无
“1”封锁后一级 “0”开放后一级
INTR
(b)菊花链逻辑电路
第10章 中断与中断管理
1、中断
❖ 随着计算机技术的发展,中断技术不断被 赋予新的功能,它可以使计算机系统完成 如下功能: ▪ CPU与外部设备并行工作 ▪ 实时信息处理 ▪ 故障检测和自动处理 ▪ 分时处理
第10章 中断与中断管理
2、中断源
❖ 产生中断请求的设备或事件称为“中断源”。 ❖ 根据中断源不同,中断可分为三类:
开中断
返回原程序断点处
中断处理
中断返回
第10章 中断与中断管理
2、CPU对中断的响应
❖ CPU进入中断响应周期后,自动完成如下操作: (1)关闭中断 ❖ FR中的中断标志位IF清零;
(2)保护断点 ❖ 将当前CS和IP的内容压入堆栈保存,以便中断处理
《微机原理与汇编语言》中断系统资料精品PPT课件
返回
上一张
下一张
44
1、中断允许控制寄存器IE
AFH AEH ADH ACH ABH AAH A9H A8H
IE EA (A8H)
ES ET1 EX1 ET0 EX0
返回
上一张
下一张
45
2、中断允许寄存器IE中各位的含义。
①EA—中断允许总控制位。 EA=0,屏蔽所有的中断请求; EA=1,CPU开放中断。对各中断源的中断 请求是否允许,还要取决于各中断 源的中断允许控制位的状态。这就 是所谓的两级控制。
22
上一张
下一张
23
二、中断技术实现的功能
• 1、分时操作 • 2、实时处理 • 3、故障处理
返回
上一张
下一张
24
1、分时操作
• 计算机的中断系统可以使CPU与外设同时 工作。
• CPU在启动外设后,便继续执行主程序; 而外设被启动后,开始进行准备工作。当 外设准备就绪时,就向CPU发出中断请求, CPU响应该中断请求并为其服务完毕后, 返回原来的断点处继续运行主程序。外设 在得到服务后,也继续进行自己的工作。
上一张
下一张
50
2、中断允许寄存器IE中各位的含义。
⑥EX0—外部中断0的溢出中断允许位。 EX0=0,禁止外部中断0中断; EX0=1,允许外部中断0中断。
返回
上一张
下一张
51
例5-1
假设允许片内定时器/计数器中断,禁止其他中断。试 根据假设条件设置IE的相应值。
解:(IE)=10001010B=8AH
返回
上一张
下一张
18
八、中断方式的特点
• 1、中断方式消除了CPU在查询方式中的等待 现象,大大提高了CPU的工作效率。
《汇编语言程序设计》第十三章中断及中断处理程序
《汇编语言程序设计》第十三章中断及中断处理程序汇编语言程序设计第十三章中断及中断处理程序中断是计算机系统中的重要概念,它可以打断正在执行的程序,并在一段时间后恢复执行。
在汇编语言程序设计中,了解中断及中断处理程序的概念和实现方法十分重要。
本文将介绍《汇编语言程序设计》第十三章中断及中断处理程序的内容。
一、中断的概念及分类中断是计算机系统的一种基本机制,它可以让计算机在执行程序的过程中,暂时停下来去处理一些紧急事件。
根据中断的来源和性质,中断可以分为硬件中断和软件中断两种类型。
硬件中断是由硬件设备发出的信号,用于向处理器发出请求,以引起处理器对该事件进行处理。
典型的硬件中断包括时钟中断、外部设备中断等。
软件中断是由程序中的中断指令引起的中断。
软件中断可以通过INT指令来触发,程序员可以根据需要自行设置中断号。
二、中断向量表中断向量表是用于存储中断处理程序入口地址的一张表。
当某个中断发生时,处理器会根据中断号在中断向量表中查找对应的中断处理程序入口地址,并跳转到该地址去执行中断处理程序。
中断向量表一般位于内存的固定地址,不同中断号对应不同的中断处理程序入口地址。
由于中断向量表的地址是固定的,因此在编程时需要特别注意保护中断向量表。
三、中断的处理流程中断处理程序是用于响应中断事件并进行处理的程序。
中断的处理流程一般包括以下几个步骤:1. 保存中断现场:在处理中断之前,需要先保存当前程序的上下文,包括程序计数器、寄存器等内容。
这样在中断处理程序执行完毕后,可以恢复现场继续执行被中断的程序。
2. 中断服务例程:中断处理程序中的核心部分是中断服务例程,它实现了对中断事件的具体处理。
根据中断的类型和需求,中断服务例程可能包括对硬件设备的操作、数据处理等内容。
3. 恢复中断现场:在中断处理程序执行完毕后,需要恢复之前保存的中断现场。
这包括恢复程序计数器、寄存器等内容,以确保被中断的程序可以继续正常执行。
四、常见的中断类型及应用在汇编语言程序设计中,有一些常见的中断类型和应用。
汇编语言之中断学习
汇编语⾔之中断学习计算机经常会遇到异常,会产⽣中断,发出中断请求。
中断分为内中断和外中断。
下⾯主要介绍的是内中断。
内中断,cpu什么时候会发出中断信号呢?⼀般有⼀下四种情况: ·除法指令 ·单步执⾏ ·int 0指令 ·int n指令 产⽣中断信号的情况⼜被称为中断源。
cpu接收到中断信号以后,要根据中断信号来确定中断情况。
所以,中断信息⾥⾯应该包括中断的来源以及中断的情况。
因此,CPU将定义⼀个变量来存储辨别中断信息,称为中断字节码(8位变量)可以⽤中断字节码表⽰256种情况。
每种中断情况都对应⼀种中断处理程序,但是CPU⼜如何确定相应中断处理程序在内存中的地址呢?如何确定相应中断处理程序的⼊⼝地址?so,中断向量应运⽽⽣。
中断向量就是中断处理程序的⼊⼝地址。
不同的中断情况对应不同的中断处理程序,⼜对应不同的中断向量,为了⾼效的处理中断,我们⼜定义了中断向量表,顾名思义,中断向量表⽤来存储中断向量,就是中断处理程序的⼊⼝地址。
⼀条中断向量有占⽤多少内存地址呢?中断向量⽤来存储中断处理程序的⼊⼝地址,包括段地址和偏移地址,所以占⽤两个字的存储单元,⾼地址字段⽤来存储段地址,低地址字段⽤来存储偏移地址。
CPU知道了相应中断处理程序的⼊⼝地址后,计算机处理中断,中断过程。
⽤中断字节码找到中断向量,来设置CS和IP,这个过程由计算机硬件来完成,这个过程叫做中断过程。
以8086CPU为例,在接收到中断信息后,要执⾏的操作: 1.(从中断信息中)找到中断字节码 2.标志寄存器的值⼊堆栈 3.设置标志寄存器的第8位TF和第9位IF值为0 4.CS 值⼊栈 5.IP值⼊栈 6.从内存地址为终端类型码4 和中断类型码4+2的两个字单元读取中断处理程序的⼊⼝地址,设置CS IP 中断处理程序 由于cpu随时都有可能检测到中断信息,也就是说cpu随时都要执⾏中断处理程序,所以,中断处理程序必须⼀致存储在内存某段空间中。
《汇编语言程序设计》第十三章中断及中断处理程序
《汇编语言程序设计》第十三章中断及中断处理程序中断是计算机在执行程序过程中,突然停止当前任务的一种机制。
当出现外部事件(如键盘输入、硬件故障或定时器到达)时,计算机会立即中断当前正在执行的程序,转而执行事先定义好的中断处理程序,以响应这些事件。
中断可以分为硬件中断和软件中断。
硬件中断是由外部设备触发的,比如,键盘输入、鼠标点击等。
而软件中断则是程序内部通过软件指令主动触发的。
中断处理程序是响应中断事件的程序,也被称为中断服务子程序(Interrupt Service Routine,ISR)。
当一个中断发生时,中断处理程序会被调用执行,处理特定的中断事件。
在汇编语言中,编写中断处理程序需要掌握以下几个方面:1.定义中断向量表:中断向量表是一个储存中断向量地址的表格。
每个中断向量是一个4字节的地址,指向相应的中断处理程序。
在开发中,我们需要根据硬件设备的不同,定义对应的中断向量表。
2.中断处理程序的编写:中断处理程序需要以特定的格式编写,称为中断门。
中断门包含了中断向量的地址、中断类型、特权级等信息。
在编写中断处理程序时,需要将程序中所有寄存器的值进行保存,以便在中断处理完后恢复原来的状态。
3.中断的使能与屏蔽:在进行中断处理时,需要将中断的使能标志设置为1,以允许中断的发生。
而在一些情况下,为了阻止中断的发生,我们还需要将中断的屏蔽标志设置为1中断处理程序在操作系统和嵌入式系统中起着重要的作用。
它可以实现多任务处理、设备驱动程序、异常处理等功能。
在操作系统中,中断处理程序负责处理硬件设备的中断请求、时钟中断等,以实现多任务切换和设备驱动等功能。
总结起来,中断处理程序是汇编语言程序设计中重要的内容之一、掌握中断处理程序的编写方法,能够使程序能够响应外部事件,提高程序的实时性和可靠性。
汇编及中断
括对循环条件等的修改程序段
循环参数改变及控制部分——判断循环条件是否
成立,决定是否继续循环
《微机原理与接口》教学课件
循环控制
循环结构程序的设计关键是循环控制部分 循环控制可以在进入循环之前进行,也可以在 循环体后进行,于是形成两种结构:
“先判断、后循环”结构 “先循环、后判断”结构
mov ah,2 int 21h loop again
;显示 ;CX减1,如果CX未减至0,则循环
先循环后判断
计数控制循环
《微机原理与接口》教学课件
例3.9 代码段
;代码段 lea si,array mov cx,[si] dec cx add si,2
;取得元素个数 ;减1后是循环次数
初始化
mov ax,[si] mov bx,ax
AH=1
N
Y
fuction1
AH=2
N
Y
fuction2
《微机原理与接口》教学课件
3.5 循环程序设计
循环程序结构要求在满足一定条件的情况下,
重复执行某段程序
循环结构的程序通常由3个部分组成:
循环初始化部分——为开始循环准备必要的条件,
如循环次数、循环体需要的数值等
循环体部分——指重复执行的程序部分,其中包
汇编语言程序设计
《单片微机原理及应用》教学课件
3.3 顺序程序设计
没有分支、循环等转移指令的程序,会按指
令书写的前后顺利依次执行,这就是顺序程 序 顺序结构是最基本的程序结构 完全采用顺序结构编写的程序并不多见
例题3.4 顺序程序设计实例 采用查表法,实现一位16进制数 转换为ASCII码显示
《汇编语言程序设计》第十三章:中断及中断处理程序
将关键寄存器的值保存到堆栈或特定内存区域,以便 中断返回时恢复。
堆栈操作
使用堆栈保存和恢复寄存器值,确保中断处理的正确 性。
中断向量表与中断描述符表
中断向量表
存储中断处理程序入口地址的表格,每个中断 对应一个向量。
中断描述符表
在保护模式下使用的中断表,包含中断处理程 序的选择子和偏移量。
中断描述符
典型硬件中断实例解析
定时器中断
定时器到期时触发中断,用于实现定时控制、延时操作等功能。
键盘中断
用户按下键盘按键时触发中断,用于实现输入操作。
串行通信中断
串行通信接口接收到数据时触发中断,用于实现数据传输和控制等功能。这些实例展示了硬件中断在实际应 用中的重要作用,通过合理配置和使用硬件中断,可以提高系统的实时性、可靠性和效率。
描述中断处理程序中断优先级
不同中断具有不同的优先级,高优先级中断 可以打断低优先级中断。
嵌套处理
允许多个中断同时发生,按照优先级顺序依 次处理。
中断屏蔽
通过设置中断屏蔽位来禁止或允许特定中断 的发生。
03 硬件中断处理机制
硬件中断触发条件
01
外部事件
在ARM架构中,软件中断指令通常为`SVC`(Supervisor Call),用于触发操作系统提供的服务例程。
软件中断处理程序设计要点
中断处理程序(Interrupt Handler)需要快速响应并处理中断请求,以避 免影响系统的实时性。
中断处理程序需要保存现场信息,以便在中断处理完成后恢复程序的执行 状态。
内部事件
02
03
软件中断指令
如I/O操作完成、定时器到期等, 由外部设备向CPU发送中断请求 信号。
中断及异常学习课件
软件中断 用指令 调用中断程序
8.2 中断 按中断源的不同,中断分为内中断和外中断。 1、内中断(软中断) 指CPU执行某些特殊操作或由INT指令引起的中断 ① 被零除操作或OF=1时执行INTO指令引起 ② 使用DEBUG中的单步或断点设置操作引起 ③ 执行INTn 指令引起
8.5 中断及异常的优先级
当有多个中断源同时产生中断申请时, CPU先响应优先权最高的中断源, 再响应优先级较低的中断源。
高 低 内中断 ( 除零,INT 指令,断点,INTO指令 ) 非屏蔽中断 可屏蔽中断 低 内中断( 单步 )
8.6实地址方式下的中断 1.中断矢量表 存放各类中断的中断 服务程序的入口地址 每个入口占用4 Bytes, 低字为段内偏移, 高字为段基址 表的地址位于内存的 00000H~003FFH, 大小为1KB,共256个入口
NMI
INTR
中断逻辑
软件中断指令
溢出中断
除法错
单步中断
非屏蔽中断请求
中断控 制器 8259A PIC
8086/8088CPU内部逻辑
断点中断
可 屏 蔽 中 断 请 求
n
4
3
0
1
2
8086/8088中断源类型:
8.3异常 外部中断或硬件中断通常称为中断,软件中断或异常中断通常称为异常(Exception) 1.异常分类 故障(Fault) 陷阱(Trap) 中止(Abort) 2.异常错误码
指外部芯片通过 CPU的INTR引脚或NMI引脚 发出中断申请引起的中断。 当INTR上有高电平信号 当NMI上有上升沿信号
2、外中断(硬中断)
可屏蔽中断 由INTR引脚引起的中断,称可屏蔽中断。 CPU是否响应INTR引脚上的中断请求取决于IF标志: IF=1,CPU响应INTR引脚上的中断请求 IF=0,CPU不响应INTR引脚上的中断请求 即当IF=0时,将INTR引脚上的中断申请屏蔽。
外部中断PPT课件
断源所对应的中断类型号和中断服务程序入口地址:
中断源
n
入口地址
外部中断0
0
0003H
定时/计数器0 1
000BH
外部中断1
2
0013H
定时/计数器1 3
001BH
串行口
4
0023H
第22页/共34页
例如定时器T0的中断服务程序用如下方法编写:
void time0(void)interrupt 1 using 0 //定时器T0的中断服务函数,T0的编号为1,使用第0组工作寄存器 {
AT89C51
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
39 38 37 36 35 34 33 32
1 2 3 4 5 6 7 8
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
第7页/共34页
(二)80C51中断系统的结构
有5个中断源,2个优先级,可实现二级中断嵌
套 。 TCON
IE
IP
硬件查询
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
TI
≥1
SCON
ES 1
第15页/共34页
该位是“1” 时,为高级 优先级
该位是 “ 0”时, 为低级优先 级
同一优先级中的中断申请不止一个时,则有中断 优先权排队问题。同级的中断优先权排队,由中 断系统硬件确定的自然优先级形成,其排列如所 示:
中断PPT课件
EA
ES ET1 EX1 ET0 EX0
2021
12
(3)中断允许控制寄存器IE (0A8H)
EA
ES ET1 EX1 ET0 EX0
EX0/EX1/ET1/ET0/ES 位:分别是 INT 0 / INT 1 ,T0/T1,串行 口的中断允许控制位。
=0 :禁止中断; =1 :允许中断。 EA:总的中断允许控制位(总开关): =0 :禁止全部中断; =1 :允许中断。
2021
5
8051的5个中断源的中断服务入口地址之间相差8个单元。 这8个存储单元用来存储中断服务程序一般来说是不够的。用户 常在中断服务程序地址入口处放一条三字节的长转移指令。一 般地,主程序从0030H单元以后开始存放。例如:
ORG 0000H
LJMP MAIN; 转入主程序,START为主程序地址标号
中断入口保护现场关中断中断服务主体程序恢复现场开中断设置计数器串行口的有关参数中断返回指令reti例题2设8051外部中断源接引脚中断触发方式为信号负跳变触发试编制8051中断系统的初始化程序
4 MCS-51单片机的中断系统
2021
1
4.1 中断的基本概念
1.中断的定义
所谓“中断”,是指CPU执行正常程序时,系统中出现特 殊请求,CPU暂时中止当前的程序,转去处理更紧急的事 件(执行中断服务程序),处理完毕(中断服务完成)后,
2021
3
8051的中断结构如下图所示。
2021
4
中断服务程序入口地址:
中断响应的主要内容就是由硬件自动生成一条长调用指令 (LCALL addr16),CPU执行这条长调用指令便响应中断, 转入相应的中断服务程序。这里的addr16就是程序存储器中 相应的中断服务程序的入口地址,MCS-51的5个中断源的中 断服务程序入口地址是固定的,如下表所示。
10.2.1 中断的概念_汇编语言程序设计(第2版)_[共3页]
184 往下执行。
这种方式避免了CPU反复查询外设的状态而浪费时间,可以使多台外设与CPU并行工作。
中断方式的一个典型例子是时钟中断,例如很多应用程序在运行阶段都有动态显示时间,如每隔一秒就显示一次当前时间。
这里就把定时器作为一个外设,应用程序的开始设置定时器初值后,定时器就自行作减法计数,CPU则继续执行自己的程序,此时定时器和CPU并行工作。
当定时器计数为0时,就会发出一个中断信号,该中断信号就会被CPU及时捕获,于是CPU就暂停正在执行的程序,转而执行一段时钟中断处理程序,该中断处理程序再次设置定时器初值后,又返回到先前被暂停的应用程序继续执行。
显然这里只能使用中断方式。
在很多集散型计算机生产过程多测点实时监控系统中,以中断和查询方式相结合,每隔一定时间或某个事件发生就启动后台程序,后台程序以查询方式进行多个测点的轮询访问,实现中心计算机与测点的数据传送。
(3)直接存储器传送(DMA)前面介绍的数据传送方式都是使用程序进行外部设备与CPU之间的数据交换。
而直接存储器传送方式是外部设备与主存储器之间直接进行数据交换而不通过CPU。
这种传送方式适用于高速I/O设备,如磁盘、模数转换器等设备。
这种设备数据传输速度很快,例如硬盘的数据传输速率约为每秒200 000字节(随着硬盘数据密度的提高和转速的提高,数据传输速率越来越高),也就是说传输一个字节只需5微秒,如果采用指令一个字节一个字节地传输,则会造成数据的丢失。
而DMA方式能使硬盘和主存储器进行成批数据的交换,每个字节一到达端口,就直接送到存储器,同样,接口和它的DMA控制器也能直接从存储器取出字节并把它送到硬盘。
DMA控制器(8237A)主要包括控制寄存器、状态寄存器、地址寄存器、字节计数器。
地址寄存器设置要传送的数据块首地址,字节计数器设置要传送的数据字节数,控制寄存器设置控制字,用以指出输入或输出,并启动DMA操作。
系统执行DMA操作的过程如下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
72 10 A7 00
…
…
00A7:1072
STI
…
IRET
1072 IP 00A7 CS
演示动画
存放于内存单元 的中断处理程序
图13-2 中断处理过程
注意:
这里假设被中断的程序的下一条指令是“MOV AX,0”,事
实上也可能是其他指令
13.1.3 中断源及中断源的识别
汇编语言程序设计
-------朱耀庭
---------朱耀庭
1
第13章 中断及中断处理程序
❖ 中断在计算机科学中占有十分重要的地位,是计算机科学 中最基本的概念之一。如果没有中断以及中断机制的引入 与应用,就不可能有计算机操作系统的出现,也就不可能 有今天如此高效率的计算机。使用计算机时,操作健盘、 移动鼠标之所以能够被计算机感知并且予以及时响应处理, 这完全得益于计算机的中断处理。
中断的含义 BIOS中断向量 DOS中断向量 扩充BIOS中断向量 用户中断向量 保留 I/O设备中断向量 保留
BASIC 保留
13.1.2 中断向量表
❖ 图13-2以DOS中断INT 20H为例,说明CPU处理各类中断 的过程,该过程主要包括以下5个步骤:
(1)取中断的中断类型号 (2)计算中断向量地址 (3)取出中断向量4字节单元中的内容,将其中两字节代
13.1.2 中断向量表
中断向量地址 0000:0000H 0000:0002H 0000:0004H 0000:0006H
… 0000:03FCH 0000:03FEH
内存单元
0号中断处理程序偏移量 0号中断处理程序段地址 1号中断处理程序偏移量 1号中断处理程❖ 在中断发生后,中断处理程序需要对因各种原因触发的相应中断进行 处理。
❖ 80X86中断系统能处理256种类型的中断,同时给每种中断安排了一 个中断类型号,即0H~0FFH号中断,每种类型的中断都有相应的中 断处理程序。
❖ 如何有效地管理和保存如此多的中断及其对应的中断处理程序呢?那 就是利用中断向量表。
13.1.1 中断的基本概念
❖ 在计算机系统中,引入中断的最初目的是为了提高系统的 输入输出性能
❖ 随着计算机应用的发展,中断技术也应用到计算机系统的 许多领域,如:多道程序、分时系统、实时处理、程序监 视和跟踪等领域。
❖ 中断就是使中央处理器暂时挂起当前正在进行的工作程序, 转向某紧急事件的服务与处理程序,并在执行完该服务与 处理程序后,再返回到曾经被其中止和挂起的原有程序处 继续完成原有工作的整个过程。
…
0FFH号中断处理程序偏移量 0FFH号中断处理程序段地址
图13-1 中断向量表
13.1.2 中断向量表
❖ 各个中断处理程序的入口地址在中断向量表中是按中断类 型号顺序存放的,因此将中断类型号乘以4就得到对应中 断向量的地址。
❖ 例如,溢出中断的中断类型号为04H,则它的中断向量的 地址为04H×4=10H,内存地址从10H开始的4个字节中, 10H和11H两字节中存放溢出中断程序的偏移地址,12H 和13H两字节中存放溢出中断程序的段地址,在发生溢出 中断时,将这个偏移地址和段地址分别取出送给寄存器IP 和CS,CPU即转向溢出中断处理程序。
表中断处理程序段地址的内容送入CS寄存器,两字节代 表中断处理程序偏移量的内容送入IP寄存器 (4)转向相应的中断处理程序 (5)中断返回到原中断指令的下一条指令处
13.1.2 中断向量表
中断指令:INT 20H
20H×4=80H
内存单元
下一条指令:MOV AX, 0
0000:0080 0000:0081 0000:0082 0000:0083
❖ 在中断过程中,我们称引起紧急事务的事件为中断源 ❖ 计算机系统有上百种可以发出中断请求的中断源,但最常
见的中断源是:外设的输入/输出请求 ❖ 例如,键盘输入引起的中断,通信端口接收信息引起的中
断等 ❖ 还有一些计算机内部的异常事件,例如,0作除数、奇偶
❖ 本章将重点介绍80X86 的中断机制及中断处理程序的设计 方法,同时还将介绍请求DOS、BIOS中断服务,以及调 用DOS、BIOS内部功能子程序(即DOS、BIOS功能调用) 的方法和用途等。
第二章 80x86实模式汇编的运行环境
13.1 中断及中断相关概念 13.2 软件中断 13.3 DOS中断服务 13.4 BIOS中断服务 13.5 DOS和BIOS功能调用实例
13.6 典型的中断处理程序实例
13.1 中断及中断相关概念
– 13.1.1 中断的基本概念 – 13.1.2 中断向量表 – 13.1.3 中断源及中断源的识别 – 13.1.4 中断的分类 – 13.1.5 中断处理机制 – 13.1.6 CPU响应中断的条件 – 13.1.7 中断的优先级
13.1.2 中断向量表
表13-1 中断类型号和中断向量地址
中断类型号 00H~1FH 20H~3FH 40H~5FH 60H~67H 68H~6FH 70H~77H 78H~7FH 80H~0FDH 0F1H~0FFH
中断向量地址 00000H~0007FH 00080H~000FFH 00100H~0017FH 00180H~0019FH 001A0H~001BFH 001C0H~001DFH 001E0H~001FFH 00200H~003C3H 003C4H~003FFH
❖ 中断向量表是一个特殊的线性表,它保存着系统所有中断服务程序的 入口地址。
❖ 在80X86微机系统中,该表保存的256个中断向量分别对应于256种中 断类型,每个表项占4个字节,其中两个字节存放中断处理程序的段 地址,另两个字节存放中断处理程序的段内偏移量,所以中断向量表 为1K字节,它起止于存储器中地址0000H~3FFH处,如图13-1所示: