中断的基本概念—中断源
中断源
8 s% J1 S7 B7 _# m2 l' r 凡是能引起中断的设备或事件均称为中断源。目前,微机中的中断源一般有以下几种: 8 E5 O3 P8 D1 {* ^- r$ j! N
(1)外设的服务请求 * m5 ]; [# `9 K* n
如键盘在用户敲了一个键后向CPU提出中断请求,请求CPU接收该按键的编码。又如打印机在打印完一个字符后向CPIJ提出中断请求,请求CPU输出下一个要打印的字符(有的打印机设有数据缓冲区,在缓冲区的数据都打印完后,才提出中断请求)。
4 T2 l2 K/ ]1 Z- M) S (2)CPU内部事件 , J4 C$ _% y; S; k1 ~' q# }( }7 l8 m5 T
如除法错,运算溢出、设置了单步执行方式等。
. t$ g7 y& ^3 g: E) h' f% S (3)硬件故障 ( }7 R, S1 ~* K) a# ^2 |
如电源掉电、内存出错等。 5 c4 p; m( n4 U* X
(4)软中断
7 O, ]% H0 m0 u% _$ P; @7 \ 软中断又称为软件中断,是用软件方法产生中断,即在程序中安排特定的指令:INT< 中断类型号>,当程序执行到该类指令时,进入到中断类型号所对应的中断服务程序。显然,软中断是人为安排的,而上面介绍的3种硬件中断源引起的中断是随机的。在PC系列机中,软中断是调用操作系统功能的一种方法。
! a: a) M$ |/ N0 x" e (5)软时钟
. Y) J1 F8 }7 v/ D! D 为了提供时间标志,早期的计算机在内存中开辟了几个单元,分别作年、月、日、时、分、秒计数器,并设置了一个定时信号发生器,大约55 ms输出一个脉冲,作为中断请求。CPU在软时钟中断服务程序中修改表示时钟的内存单元,例如,计满一秒,秒加1;计满60秒,秒清0,分加1;计满60分,分清0,小时加1,等等。对于这种机器,开机时要求用户输入日期、时间,以便作为软时钟的初值。
|0 [/ y/ _! V$ p' | {4 s 现代微机采用向上兼容的原则,保留了软时钟,但为了方便,设置了一个类似电子表的实时时钟。在关机后,该时钟电路靠内部的电池供电,继续工作。这样,开机时不再需要设置日期、时间。保留的软时钟可起两个作用:一是作为软盘驱动器计时用,记录软盘驱动器连续未使用的时间,以便停止其马达的转动。二是给用户提供一个软件接口(INT 1CH软中断),即让用户在不添加硬件的情况下很方便进行一些定时处理。这是因为,在软时钟中断处理过程中,要调用一次INT 1CH软中断,系统本身(指DOS)在1CH中断服务程序中仅安排了一条中断返回指令,即什么也没有做,直接返回。所以,用户可重新编写1CH的中断服务程序,在其中加入自己所需的定时处理。显然,每次处理占用CPU的时间应小于55 ms, 4 d; F. m) W- b
否则,会影响软时钟的计时。
点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹