第 3 章 中断的分类

目录

3.1. 内部中断和外部中断
3.2. 软件中断和硬件中断
3.3. 向量中断和非向量中断
3.3.1. 向量中断和非向量中断实例解析
3.4. 可屏蔽中断和非可屏蔽(NMI)中断

摘要

中断,从不同的角度来区分的话,可以有不同的分类。

下面就来从不同的方面,不同的角度,不同的侧重点,来对常见的分类,做个详细的解释。

3.1. 内部中断和外部中断

根据中断来源的方向不同,可分为内部中断和外部中断。

首先我们要搞懂,此处所说的内部中断和外部中断中的“内部”和“外部”,都是相对于CPU,或者说相对于CPU所执行的指令,来说的。

另外,广义上说,中断,就是中止,打断,即中止打断正在执行指令的CPU(而让其去执行别的ISR程序)的,都可以叫做中断。

所以,不论是狭义上的普通所说的中断,还是陷阱和异常,对于CPU执行正常的指令这个过程来说,都是会打断正常执行指令的顺序,所以都可以叫做中断。

所以,就很好理解这里的外部和内部的含义了:

针对于CPU执行指令来说,从外界过来干扰自己的,那种普通外设所产生的硬件的中断,就是外部中断;

而CPU本身执行的指令产生错误了或者本身就是执行的是INT等中断指令,那么就会产生异常或陷阱,就属于内部中断。

即对于广义上的中断的概念来说:

普通的硬件中断,属于外部中断;

陷阱和异常,属于内部中断。