《汇编语言程序设计》第十三章:中断及中断处理程序

合集下载

中断处理程序的编写方法

中断处理程序的编写方法

实训二外部中断一、实训目的1.掌握外部中断技术的基本使用方法。

2.掌握中断处理程序的编写方法。

二、实训说明1.外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。

中断方式设置一般有两种方式:电平方式和脉冲方式,本实训选用后者,其前一次为高电平后一次为低电平时为有效中断请求。

因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.3)引入,本实训由INT0(P3.2)引入。

2.中断服务的关键:a、保护进入中断时的状态。

堆栈有保护断点和保护现场的功能使用PUSH指令,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。

b、必须在中断服务程序中设定是否允许中断重入,即设置EX0位。

c、用POP指令恢复中断时的现场。

3.中断控制原理:中断控制是提供给用户使用的中断控制手段。

实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。

4.中断响应的过程:首先中断采样然后中断查询最后中断响应。

采样是中断处理的第一步,对于本实训的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE0或IE1置“1”;否则继续为“0”。

所谓查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发生以及是那一个中断请求。

中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应一次中断。

三、实训步骤1.用二号导线连接单片机最小应用系统模块的P1.0到八位逻辑电平显示模块的L0发光二极管,连接INTO(P3.2)到单次脉冲模块的任一输出端。

2.将89S52芯片插到单片机最小应用系统模块的40P锁紧插座中,请注意芯片的方向:缺口朝上。

用二号导线连接单片机最小应用系统模块的EA/VP端到电源模块的+5V。

3.接好AC 220V电源,打开相关模块的电源开关, 用ISP下载器将“TH6_外部中断.HEX”文件下载到89S52芯片中运行(ISP下载器的使用查看附录二)。

《汇编语言程序设计》第十三章中断及中断处理程序

《汇编语言程序设计》第十三章中断及中断处理程序

《汇编语言程序设计》第十三章中断及中断处理程序汇编语言程序设计第十三章中断及中断处理程序中断是计算机系统中的重要概念,它可以打断正在执行的程序,并在一段时间后恢复执行。

在汇编语言程序设计中,了解中断及中断处理程序的概念和实现方法十分重要。

本文将介绍《汇编语言程序设计》第十三章中断及中断处理程序的内容。

一、中断的概念及分类中断是计算机系统的一种基本机制,它可以让计算机在执行程序的过程中,暂时停下来去处理一些紧急事件。

根据中断的来源和性质,中断可以分为硬件中断和软件中断两种类型。

硬件中断是由硬件设备发出的信号,用于向处理器发出请求,以引起处理器对该事件进行处理。

典型的硬件中断包括时钟中断、外部设备中断等。

软件中断是由程序中的中断指令引起的中断。

软件中断可以通过INT指令来触发,程序员可以根据需要自行设置中断号。

二、中断向量表中断向量表是用于存储中断处理程序入口地址的一张表。

当某个中断发生时,处理器会根据中断号在中断向量表中查找对应的中断处理程序入口地址,并跳转到该地址去执行中断处理程序。

中断向量表一般位于内存的固定地址,不同中断号对应不同的中断处理程序入口地址。

由于中断向量表的地址是固定的,因此在编程时需要特别注意保护中断向量表。

三、中断的处理流程中断处理程序是用于响应中断事件并进行处理的程序。

中断的处理流程一般包括以下几个步骤:1. 保存中断现场:在处理中断之前,需要先保存当前程序的上下文,包括程序计数器、寄存器等内容。

这样在中断处理程序执行完毕后,可以恢复现场继续执行被中断的程序。

2. 中断服务例程:中断处理程序中的核心部分是中断服务例程,它实现了对中断事件的具体处理。

根据中断的类型和需求,中断服务例程可能包括对硬件设备的操作、数据处理等内容。

3. 恢复中断现场:在中断处理程序执行完毕后,需要恢复之前保存的中断现场。

这包括恢复程序计数器、寄存器等内容,以确保被中断的程序可以继续正常执行。

四、常见的中断类型及应用在汇编语言程序设计中,有一些常见的中断类型和应用。

简述中断处理过程

简述中断处理过程

简述中断处理过程
中断处理是指处理计箮的硬件或软件发出的一个信号,中断处理过程在最简单的情况下,包括查找处理程序,调用处理程序,执行处理程序,检测处理状态,返回结果。

首先,在中断期间,计算机处理器停止当前正在运行的任务,并临时暂停对它的执行。

处理器暂停当前任务时,通常会将当前任务的状态保存到计算机存储器中,这样当处理完
中断后,可以恢复到当前任务的上次状态。

接下来,计算机根据给出的信息、参数和数据,找到相应的中断处理过程。

中断处理
程序是一段用于处理特定中断的软件,它可以被程序员定义,在接收到特定的中断信号时,中断处理程序将以一定的优先级来执行,此时,处理器会先处理该中断,而其他正在运行
的任务则暂停执行。

当处理器找到并开始执行处理程序时,由其来捕获处理这个中断的所有必要参数和数据。

同时,处理器还会将存储器中的一些信息保存到寄存器中以免受到中断的影响。

在处
理器执行完处理程序之后,以上述方式从寄存器中取出相应的信息,并将其还原到存储器中。

最后,处理器会检测处理状态,如果处理状态正确,则处理器可以开始进行中断返回,回到之前暂停的任务执行位置;若状态不正确则会报告错误,应用程序崩溃。

最终,中断
处理完成,处理器可以将控制权交回给应用程序,继续执行之前暂停的任务。

《汇编语言程序设计》第十三章中断及中断处理程序

《汇编语言程序设计》第十三章中断及中断处理程序

《汇编语言程序设计》第十三章中断及中断处理程序中断是计算机在执行程序过程中,突然停止当前任务的一种机制。

当出现外部事件(如键盘输入、硬件故障或定时器到达)时,计算机会立即中断当前正在执行的程序,转而执行事先定义好的中断处理程序,以响应这些事件。

中断可以分为硬件中断和软件中断。

硬件中断是由外部设备触发的,比如,键盘输入、鼠标点击等。

而软件中断则是程序内部通过软件指令主动触发的。

中断处理程序是响应中断事件的程序,也被称为中断服务子程序(Interrupt Service Routine,ISR)。

当一个中断发生时,中断处理程序会被调用执行,处理特定的中断事件。

在汇编语言中,编写中断处理程序需要掌握以下几个方面:1.定义中断向量表:中断向量表是一个储存中断向量地址的表格。

每个中断向量是一个4字节的地址,指向相应的中断处理程序。

在开发中,我们需要根据硬件设备的不同,定义对应的中断向量表。

2.中断处理程序的编写:中断处理程序需要以特定的格式编写,称为中断门。

中断门包含了中断向量的地址、中断类型、特权级等信息。

在编写中断处理程序时,需要将程序中所有寄存器的值进行保存,以便在中断处理完后恢复原来的状态。

3.中断的使能与屏蔽:在进行中断处理时,需要将中断的使能标志设置为1,以允许中断的发生。

而在一些情况下,为了阻止中断的发生,我们还需要将中断的屏蔽标志设置为1中断处理程序在操作系统和嵌入式系统中起着重要的作用。

它可以实现多任务处理、设备驱动程序、异常处理等功能。

在操作系统中,中断处理程序负责处理硬件设备的中断请求、时钟中断等,以实现多任务切换和设备驱动等功能。

总结起来,中断处理程序是汇编语言程序设计中重要的内容之一、掌握中断处理程序的编写方法,能够使程序能够响应外部事件,提高程序的实时性和可靠性。

中断处理过程程序

中断处理过程程序

中断处理过程程序
中断处理过程是操作系统的核心概念之一。

当一个中断信号发生时,操作系统会立即中断当前进程的执行,转而去执行一段中断处理过程程序,也称为中断服务程序。

中断处理过程包括以下几个步骤:首先,操作系统会保存当前进程的状态,包括程序计数器、寄存器等信息,以便在中断处理过程结束后能够恢复该进程的执行。

接下来,操作系统会根据中断类型调用相应的中断处理程序,这些程序通常预先存储在操作系统的中断向量表中。

中断处理程序的任务是根据中断类型进行必要的处理,例如读取磁盘数据、接收网络数据等。

处理完成后,操作系统会恢复原进程的执行,并将执行流程从中断处理程序返回到进程原来的执行状态,并且将处理过程程序保存的进程状态一并恢复。

中断处理程序是操作系统中非常重要的组成部分,因为它们充当了操作系统与硬件之间的桥梁,为操作系统提供了一种响应外部事件的机制。

同时,中断处理程序也需要尽可能快地完成,在上述几个步骤中,保存和恢复进程状态的过程需要尽可能地快,以保证中断处理程序的响应速度。

总之,中断处理程序是操作系统中必不可少的一部分,它保证了操作系统对外界事件的快速响应,并且为操作系统提供了一种异步执行的机制,进一步提高了操作系统的实时性和可靠性。

中断处理编程步骤

中断处理编程步骤

中断处理编程步骤中断处理编程步骤中断是计算机系统中一种非常重要的机制,它可以在程序执行过程中暂停当前任务,转而处理优先级更高的任务。

在编写嵌入式系统时,合理地使用中断可以提高系统的响应速度和实时性。

下面将详细介绍中断处理编程的步骤。

一、确定所需中断类型首先需要确定所需的中断类型。

不同的硬件平台和操作系统支持的中断类型可能不同,常见的中断类型有定时器中断、串口接收中断、外部信号触发中断等。

根据具体应用场景和需求选择合适的中断类型。

二、设置相关寄存器在使用硬件设备时,需要对相关寄存器进行设置以使其能够正确地响应和处理中断请求。

这些寄存器包括但不限于:1. 中断向量表:用于存储各个中断向量地址,当相应的硬件设备发生对应类型的中断请求时,CPU会根据该表找到相应的处理函数地址。

2. 中断控制寄存器:用于控制各个硬件设备是否允许产生和响应相应类型的中断请求。

3. 中断标志寄存器:用于记录当前是否有未处理完毕的该类型中断请求。

三、编写中断处理函数中断处理函数是用于响应和处理中断请求的函数,当硬件设备产生相应类型的中断请求时,CPU会跳转到该函数执行。

编写中断处理函数时需要注意以下几点:1. 中断处理函数需要尽可能地简洁和高效。

由于中断发生时程序会被打断,因此需要尽可能快地完成任务并退出。

2. 中断处理函数需要保存现场。

由于在执行中断处理函数时会打开一些寄存器或者栈帧,因此在退出前需要将这些状态恢复到原来的状态。

3. 中断处理函数不应该调用其他的中断处理函数或者阻塞式的操作,否则会导致死锁等问题。

四、注册中断服务例程在编写完中断处理函数后,还需要将其注册到操作系统的中断服务例程(ISR)列表中。

这样当硬件设备产生相应类型的中断请求时,操作系统就能够根据向量表找到相应的ISR,并跳转到对应的中断处理函数执行。

五、测试和调试最后,在完成以上步骤后,还需要进行测试和调试。

可以使用硬件仿真器或者实际硬件设备来模拟产生相应类型的中断请求,并观察程序是否能够正确地响应和处理该请求。

中断及中断处理过程

中 断 源1请 求
返回
返回
返回
( 假 设 中 断源 1~ n的 优 先 级为 从 高 到 低 )
①软件查询。
②硬件链式优先级排队电路。
③硬件优先级编码比较电路。
④利用可编程中断控制器。
3.2.1 软件查询

D0

D0~ D7 断
D7
请 求

CP U入ຫໍສະໝຸດ 接口IN TR
≥1

中断源1 中断源2
查 询 中 中断源n 断 源
注意:
① 中断在处理过程中,CPU自动将标志FR入栈, 然后清TF和IF ② IF的值可以通过指令STI和指令CLI改变 ③ 没有直接改变TF值的指令,需要编程
FR:
OF DF IF TF SF ZF AF PF CF
➢ PUSHF ➢ POP AX ➢ OR AX,0100H ➢ PUSH AX ➢ POPF
中断 请求 可 屏 蔽 中 断(I N T R )
第 1 个 IN T A 周 期
第 2 个 IN T A 周 期 ( 从 D 0 ~ D 7 读 中 断 向 量 码n )
F L A G S → ( (S P )- 1 )(( S P )- 2 ) (C S )→ ((S P )- 3 )((S P )- 4 ) (IP )→ ((S P )- 5 )((S P )- 6 ) (S P )- 6 → S P
3、外部中断响应过程
外部中断响应一共需要7个总线周期
➢ 执行两个中断响应周期,获取中断类型号 ➢ 执行一个写总线周期,FR入栈,同时清IF、TF ➢ 执行两个写总线周期,断点地址入栈 ➢ 执行两个读总线周期,将中断服务程序地址送到IP、 CS

8086汇编语言学习(十)8086中断

8086汇编语⾔学习(⼗)8086中断8086中断介绍 任何⼀种CPU,都具备⼀种能⼒,可以在执⾏完当前正在执⾏的指令之后,检测到来⾃CPU内部或外部产⽣的特殊通知信息,并⽴即对所接收到的信息做出相应的处理。

这类特殊的信息,被称作中断信息。

顾名思义,中断指的是CPU不去正常执⾏接下来的指令,⽽是被中断,转⽽处理中断信息。

中断信息的种类有很多,但却有着⼀些共同点,中断信息中都包含了中断信息的类型码,⽤于标识中断信息。

8086的中断类型码是8位的,这代表着8086CPU最多可以处理256种不同的中断信息。

中断处理程序 CPU接受到了中断信息后,需要进⾏相应的处理,处理逻辑依然是由开发⼈员编写程序来控制的,所编写的程序被称作中断处理程序。

⼀般来说,需要编写不同的中断处理程序以应对不同的中断信息。

要令CPU中⽌当前指令的执⾏,转⽽跳转执⾏中断处理程序,其原理依然是通过改变8086CPU中CS:IP的值,使之指向中断信息对应的中断处理程序。

想要CPU令处理不同的中断信息时跳转到对应的中断处理程序,则必须要有⼀种机制将中断信息和中断处理程序建⽴关联。

中断向量表 8086CPU的设计者提供了⼀种叫做中断向量表的结构,⽤于建⽴中断类型码和中断处理程序⼊⼝的关联关系。

中断向量表,就是中断程序⼊⼝地址的⼀个列表,被保存在指定的内存地址中,便于CPU读取。

每⼀个中断向量列表项(即中断处理程序⼊⼝地址)是32位的,占两个字的空间,其中⾼16位存放段地址,低16为存放偏移地址。

中断向量表在8086CPU中的位置是固定的,位于0000:0000~0000:03ff这⼀特殊内存空间中(CPU会固定的到约定的内存处获取数据)。

CPU在跳转中断处理程序时,以中断类型码*4+2字单元中的数据设置CS,中断类型码*4字单元中的数据设置IP,如此⼀来,便能正确的跳转对应的中断处理程序。

中断处理过程 虽然已经说明了CPU是如何根据中断信息中的类型码跳转执⾏指定的中断处理程序。

《汇编语言》第2版 第十三单元


;设置ds:si指向源地址 ;设置es:di指向目的地址 ;设置cx为传输长度 ;设置传输方向为正
13.2 编写供应用程序调用的中断例程


注意,在中断例程 sqr的最后,要使 用iret指令。 用汇编语法描述,iret指令的功能为:
pop IP pop CS popf
13.2 编写供应用程序调用的中断例程
13.4 BIOS和DOS所提供的中 断例程




BIOS主要内容: (1)硬件系统的检测和初始化程序; (2)外部中断和内部中断的中断例程; (3)用于对硬件设备进行I/O操作的中 断例程; (4)其他和硬件系统相关的中断例程。
13.5 BIOS和DOS中断例程的安装过 程


而BIOS和DOS提供的中断例程是如 何安装到内存中的呢? 我们下面讲解它们的安装过程。



(2)初始化程序将建立BIOS 所支持的中断向 量,即将BIOS提供的中断例程的入口地址登记 在中断向量表中。 (3) 硬件系统检测和初始化完成后,调用int 19h进行操作系统的引导。从此将计算机交由操 作系统控制。 (4)DOS 启动后,除完成其它工作外,还将它 所提供的中断例程装入内存,并建立相应的中断 向量。
13.3 对int、iret和栈的深入理解

可见,在中断例程中,可以从栈里 取得标号s 的段地址和标号 se的偏 移地址,而用标号se的偏移地址加 上bx中存放的转移位移就可以得到 标号s的偏移地址。
13.3 对int、iret和栈的深入理解


可以利用iret指令,我们将栈中的 se的偏移地址加上 bx 中的转移位 移,则栈中的se的偏移地址就变为 了s的偏移地址。 我们再使用iret指令,用栈中的内容 设置CS、IP,从而实现转移到标号 s处。

汇编语言第十三章int指令

汇编语⾔第⼗三章int指令
int指令:
格式: int n 其中n为中断码,它的功能是引发中断,并调⽤中断程序(类似call指令,但int⼤多调⽤内置中断程序,由BIOS或者DOS提供;两者都与iret配合使⽤,可以互相转换)。

执⾏过程如下:
1. 取中断类型码n
2. 标志寄存器⼊栈,置IF = 0,TF = 0
3. CS、IP依次⼊栈
4. (IP) = (4 * n),(CS) = (4 * n + 1)
BIOS基本输⼊输出系统:
BIOS存放在系统板的ROM中,包括硬件系统的检测和初始化程序,还有⼀部分内置的中断例程供程序员调⽤(相当于系统提供的库函数)BIOS和DOS中断例程的安装:
1. 开机后,CPU⼀加电,初始化(CS)= 0FFFFH,(IP)=0,系统从FFFF:0单元开始执⾏指令,FFFF:0处为跳转指令,CPU转去执
⾏BIOS中的硬件系统检测和初始化程序
2. BIOS提供的中断例程已经存储在了系统的ROM中,⼀直存在,只需将其地址放在中断向量表中便可调⽤。

3. 硬件系统检测和初始化完成之后,调⽤int 19h进⾏操作系统引导,从此将计算机交由操作系统控制。

普通中断例程的中断类型码要么与错误类型相关,要么是有int提供。

BIOS和DOS提供的中断例程,都⽤ah来传递内部⼦程序的编号,然后使⽤int调⽤即可。

例如mov ah,9 int 21h意为调⽤第21h号中断例程的9号⼦程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南开大学 朱耀庭
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
中断向量表

南开大学 朱耀庭
13.1.2
中断向量表
各个中断处理程序的入口地址在中断向量表中是按中断类 型号顺序存放的,因此将中断类型号乘以4就得到对应中 型号顺序存放的 , 因此将中断类型号乘以 就得到对应中 断向量的地址。 断向量的地址。 例如,溢出中断的中断类型号为04H,则它的中断向量的 例如,溢出中断的中断类型号为 , 地址为04H×4=10H,内存地址从 开始的4个字节中 地址为 × ,内存地址从10H开始的 个字节中, 开始的 个字节中, 10H和 11H两字节中存放溢出中断程序的偏移地址, 12H 两字节中存放溢出中断程序的偏移地址, 和 两字节中存放溢出中断程序的偏移地址 两字节中存放溢出中断程序的段地址, 和13H两字节中存放溢出中断程序的段地址,在发生溢出 两字节中存放溢出中断程序的段地址 中断时,将这个偏移地址和段地址分别取出送给寄存器IP 中断时,将这个偏移地址和段地址分别取出送给寄存器 即转向溢出中断处理程序。 和CS,CPU即转向溢出中断处理程序。 , 即转向溢出中断处理程序
汇编语言程序设计
-------朱耀庭 ---------朱耀庭

第13章 中断及中断处理程序 章
中断在计算机科学中占有十分重要的地位, 中断在计算机科学中占有十分重要的地位,是计算机科学 中最基本的概念之一。 中最基本的概念之一。如果没有中断以及中断机制的引入 与应用,就不可能有计算机操作系统的出现, 与应用,就不可能有计算机操作系统的出现,也就不可能 有今天如此高效率的计算机。使用计算机时,操作健盘、 有今天如此高效率的计算机。使用计算机时,操作健盘、 移动鼠标之所以能够被计算机感知并且予以及时响应处理, 移动鼠标之所以能够被计算机感知并且予以及时响应处理, 这完全得益于计算机的中断处理。 这完全得益于计算机的中断处理。 本章将重点介绍80X86 的中断机制及中断处理程序的设计 本章将重点介绍 方法,同时还将介绍请求DOS、BIOS中断服务,以及调 中断服务, 方法,同时还将介绍请求 、 中断服务 内部功能子程序( 功能调用) 用DOS、BIOS内部功能子程序(即DOS、BIOS功能调用) 、 内部功能子程序 、 功能调用 的方法和用途等。 的方法和用途等。

南开大学 朱耀庭
13.1.4
中断的分类
计算机系统有上百种中断, 计算机系统有上百种中断,如何对这些中断的类型进行划 分呢? 分呢? 由图13-3中80X86系统的常见中断源可知,可以将中断按 系统的常见中断源可知, 由图 中 系统的常见中断源可知 中断源划分为内部中断和外部中断。 中断源划分为内部中断和外部中断。 按中断源的特性,中断也可以分为硬件中断和软件中断。 按中断源的特性,中断也可以分为硬件中断和软件中断。 硬件中断按中断的屏蔽性质, 硬件中断按中断的屏蔽性质,又可以分为可屏蔽中断和不 可屏蔽中断。 可屏蔽中断。 下面详细介绍一下这几种划分以及它们之间的相互关系。 下面详细介绍一下这几种划分以及它们之间的相互关系。
中断源及中断源的识别
在中断过程中, 在中断过程中,我们称引起紧急事务的事件为中断源 计算机系统有上百种可以发出中断请求的中断源, 计算机系统有上百种可以发出中断请求的中断源,但最常 见的中断源是:外设的输入/输出请求 见的中断源是:外设的输入 输出请求 例如,键盘输入引起的中断, 例如,键盘输入引起的中断,通信端口接收信息引起的中 断等 还有一些计算机内部的异常事件,例如, 作除数 作除数、 还有一些计算机内部的异常事件 , 例如 , 0作除数、 奇偶 校验错等 80X86的常见中断源如图 的常见中断源如图13-3所示: 所示: 的常见中断源如图 所示

南开大学 朱耀庭
13.1.2
中断向量表
演示动画
图13-2
注意: 注意: 这里假设被中断的程序的下一条指令是“ 这里假设被中断的程序的下一条指令是“MOV AX,0”,事 , , 实上也可能是其他指令
南开大学 朱耀庭
中断处理过程
13.1.3

南开大学 朱耀庭
13.1.2
中断向量表
中断INT 20H为例,说明 为例, 图13-2以DOS中断 以 中断 为例 说明CPU处理各类中断 处理各类中断 的过程,该过程主要包括以下5个步骤 个步骤: 的过程,该过程主要包括以下 个步骤: (1)取中断的中断类型号 ) (2)计算中断向量地址 ) 字节单元中的内容, (3)取出中断向量 字节单元中的内容,将其中两字节代 )取出中断向量4字节单元中的内容 表中断处理程序段地址的内容送入CS寄存器 寄存器, 表中断处理程序段地址的内容送入 寄存器,两字节代 表中断处理程序偏移量的内容送入IP寄存器 表中断处理程序偏移量的内容送入 寄存器 (4)转向相应的中断处理程序 ) (5)中断返回到原中断指令的下一条指令处 )

南开大学 朱耀庭
13.1.3
中断源及中断源的识别
1
查询中断识别法
2
向量中断识别法

南开大学 朱耀庭
1.
查询中断识别法
查询中断识别法主要是软件查询法, 查询中断识别法主要是软件查询法,在接受中断请求信号 之后,中断识别程序逐个查询连接到系统上的每个设备。 之后,中断识别程序逐个查询连接到系统上的每个设备。 当被检查设备的中断请求触发器被置位时, 当被检查设备的中断请求触发器被置位时,中断识别程序 便转向相应的中断服务程序的入口地址处。 便转向相应的中断服务程序的入口地址处。 对于中断源较多的大系统来说, 对于中断源较多的大系统来说,查询中断花费在查询上的 时间就太多了,并且还需要有附加的中断识别程序, 时间就太多了,并且还需要有附加的中断识别程序,因此 多数系统采用另一种更加方便、快速的中断识别方法—— 多数系统采用另一种更加方便、快速的中断识别方法 向量中断识别法。 向量中断识别法。

南开大学 朱耀庭
2. 向量中断识别法
向量中断识别法要求输入/输出设备提供中断信号和设备 向量中断识别法要求输入 输出设备提供中断信号和设备 的标识码,即中断向量, 的标识码,即中断向量,或者提供中断服务程序的入口地 响应了某设备的中断请求后, 址。当CPU响应了某设备的中断请求后,控制逻辑就将该 响应了某设备的中断请求后 设备的中断服务程序的地址传送至CPU,使CPU跳转到相 设备的中断服务程序的地址传送至 , 跳转到相 应的中断服务程序,进而完成中断服务。 应的中断服务程序,进而完成中断服务。 向量中断识别虽然识别中断源十分快捷, 向量中断识别虽然识别中断源十分快捷,但它需要增加硬 件的开销,因此将查询中断识别法和向量中断识别法结合 件的开销, 起来使用效果会更好。 起来使用效果会更好。目前有许多计算机系统就是这样做 的。

南开大学 朱耀庭
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 中断的含义 BIOS中断向量 中断向量 DOS中断向量 中断向量 扩充BIOS中断向量 中断向量 扩充 用户中断向量 保留 I/O设备中断向量 设备中断向量 保留 BASIC 保留

南开大学 朱耀庭
13.1.2
中断向量表
在中断发生后, 在中断发生后,中断处理程序需要对因各种原因触发的相应中断进行 处理。 处理。 80X86中断系统能处理 中断系统能处理256种类型的中断,同时给每种中断安排了一 种类型的中断, 中断系统能处理 种类型的中断 个中断类型号, 号中断, 个中断类型号,即0H~0FFH号中断,每种类型的中断都有相应的中 号中断 断处理程序。 断处理程序。 如何有效地管理和保存如此多的中断及其对应的中断处理程序呢?那 如何有效地管理和保存如此多的中断及其对应的中断处理程序呢? 就是利用中断向量表。 就是利用中断向量表。 中断向量表是一个特殊的线性表, 中断向量表是一个特殊的线性表,它保存着系统所有中断服务程序的 入口地址。 入口地址。 微机系统中, 个中断向量分别对应于256种中 在80X86微机系统中,该表保存的 微机系统中 该表保存的256个中断向量分别对应于 个中断向量分别对应于 种中 断类型,每个表项占4个字节 个字节, 断类型,每个表项占 个字节,其中两个字节存放中断处理程序的段 地址,另两个字节存放中断处理程序的段内偏移量, 地址,另两个字节存放中断处理程序的段内偏移量,所以中断向量表 字节, 所示: 为1K字节,它起止于存储器中地址 字节 它起止于存储器中地址0000H~3FFH处,如图 处 如图13-1所示 所示

南开大学 朱耀庭
13.,引入中断的最初目的是为了提高系统的 输入输出性能 随着计算机应用的发展, 随着计算机应用的发展,中断技术也应用到计算机系统的 许多领域, 多道程序、分时系统、实时处理、 许多领域,如:多道程序、分时系统、实时处理、程序监 视和跟踪等领域。 视和跟踪等领域。 中断就是使中央处理器暂时挂起当前正在进行的工作程序, 中断就是使中央处理器暂时挂起当前正在进行的工作程序, 转向某紧急事件的服务与处理程序, 转向某紧急事件的服务与处理程序,并在执行完该服务与 处理程序后, 处理程序后,再返回到曾经被其中止和挂起的原有程序处 继续完成原有工作的整个过程。 继续完成原有工作的整个过程。
相关文档
最新文档