汇编语言程序设计》第十三章中断及中断处理程序培训课件
- 格式:ppt
- 大小:1.08 MB
- 文档页数:72
《汇编语言程序设计》第十三章中断及中断处理程序汇编语言程序设计第十三章中断及中断处理程序中断是计算机系统中的重要概念,它可以打断正在执行的程序,并在一段时间后恢复执行。
在汇编语言程序设计中,了解中断及中断处理程序的概念和实现方法十分重要。
本文将介绍《汇编语言程序设计》第十三章中断及中断处理程序的内容。
一、中断的概念及分类中断是计算机系统的一种基本机制,它可以让计算机在执行程序的过程中,暂时停下来去处理一些紧急事件。
根据中断的来源和性质,中断可以分为硬件中断和软件中断两种类型。
硬件中断是由硬件设备发出的信号,用于向处理器发出请求,以引起处理器对该事件进行处理。
典型的硬件中断包括时钟中断、外部设备中断等。
软件中断是由程序中的中断指令引起的中断。
软件中断可以通过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中断处理程序在操作系统和嵌入式系统中起着重要的作用。
它可以实现多任务处理、设备驱动程序、异常处理等功能。
在操作系统中,中断处理程序负责处理硬件设备的中断请求、时钟中断等,以实现多任务切换和设备驱动等功能。
总结起来,中断处理程序是汇编语言程序设计中重要的内容之一、掌握中断处理程序的编写方法,能够使程序能够响应外部事件,提高程序的实时性和可靠性。
184 往下执行。
这种方式避免了CPU反复查询外设的状态而浪费时间,可以使多台外设与CPU并行工作。
中断方式的一个典型例子是时钟中断,例如很多应用程序在运行阶段都有动态显示时间,如每隔一秒就显示一次当前时间。
这里就把定时器作为一个外设,应用程序的开始设置定时器初值后,定时器就自行作减法计数,CPU则继续执行自己的程序,此时定时器和CPU并行工作。
当定时器计数为0时,就会发出一个中断信号,该中断信号就会被CPU及时捕获,于是CPU就暂停正在执行的程序,转而执行一段时钟中断处理程序,该中断处理程序再次设置定时器初值后,又返回到先前被暂停的应用程序继续执行。
显然这里只能使用中断方式。
在很多集散型计算机生产过程多测点实时监控系统中,以中断和查询方式相结合,每隔一定时间或某个事件发生就启动后台程序,后台程序以查询方式进行多个测点的轮询访问,实现中心计算机与测点的数据传送。
(3)直接存储器传送(DMA)前面介绍的数据传送方式都是使用程序进行外部设备与CPU之间的数据交换。
而直接存储器传送方式是外部设备与主存储器之间直接进行数据交换而不通过CPU。
这种传送方式适用于高速I/O设备,如磁盘、模数转换器等设备。
这种设备数据传输速度很快,例如硬盘的数据传输速率约为每秒200 000字节(随着硬盘数据密度的提高和转速的提高,数据传输速率越来越高),也就是说传输一个字节只需5微秒,如果采用指令一个字节一个字节地传输,则会造成数据的丢失。
而DMA方式能使硬盘和主存储器进行成批数据的交换,每个字节一到达端口,就直接送到存储器,同样,接口和它的DMA控制器也能直接从存储器取出字节并把它送到硬盘。
DMA控制器(8237A)主要包括控制寄存器、状态寄存器、地址寄存器、字节计数器。
地址寄存器设置要传送的数据块首地址,字节计数器设置要传送的数据字节数,控制寄存器设置控制字,用以指出输入或输出,并启动DMA操作。
系统执行DMA操作的过程如下。