中断定义

来源:互联网 发布:linux下安装eclipse 编辑:程序博客网 时间:2024/05/18 02:40
 1、中断和中断源

所谓中断就是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。在此,称引起紧急事务的事件为中断源,称处理紧急事务的程序为中断服务程序或中断处理程序。   计算机系统还根据紧急事务的紧急程度,把中断分为不同的优先级,并规定:高优先级的中断能暂停低优先级的中断服务程序的执行。

计算机系统有上百种可以发出中断请求的中断源,但最常见的中断源是:外设的输入输出请求,如:键盘输入引起的中断,通信端口接受信息引起的中断等;还有一些计算机内部的异常事件,如:0作除数、奇偶校验错等。

CPU在执行程序时,是否响应中断要取决于以下三个条件能否同时满足:

(1)、有中断请求;
(2)、允许CPU接受中断请求;
(3)、一条指令执行完,下一条指令还没有开始执行。

条件(1)是响应中断的主体。除用指令INT所引起的软件中断之外,其它中断请求信号是随机产生的,程序员是无法预见的。

程序员可用程序部分地控制条件(2)是否满足,即可用指令STI和CLI来允许或不允许CPU响应可屏蔽的外部中断。而对于不可屏蔽中断和内部中断,CPU一定会响应它们的,程序员是无控制权的。CPU一定会执行这些中断的中断服务程序
 
中断处理程序基本上是系统程序员编写好的,是为操作系统或用户程序服务的。为了在应用程序中使用中断服务程序,程序员必须能够在程序中有目的地安排中断的发生。为此,指令系统提供了各种引起中断的指令。

1、中断指令INT

中断指令INT的一般格式如下:

INT   Imm

其中:立即数Imm是一个0~0FFH范围内的整数。

指令执行的步骤:
 
  ◆、把标志寄存器压栈,清除标志位IF和TF;  
◆、把代码段寄存器CS的内容压栈,并把中断服务程序入口地址的高字部分送CS;  
◆、32位段,压32位IP。
 

在该指令执行完后,CPU将转去执行中断服务程序。由于有了指令INT,程序员就能为满足某种特殊的需要,在程序中有目的地安排中断的发生,也就是说,该中断不是随机产生的,而是完全受程序控制的。


在C里你可以把中断理解为一组系统提供的函数
INT   13H表示13H号函数