1. 中断(zhong duan)
(1) 是由由CPU外部产生的,对CPU来说,是被动的。
(2) 当中断发生时,CPU将下一条指令,也就是接下来要执行的指令的地址压入栈作为中断服务的返回地址。
2. 陷入 (xian ru)
(1) 是由CPU本身在执行程序过程中产生的。它是由专设的指令,如X86中的“INT n”,在程序中有意产生的,是主动的。
(2) 同中断一样,当陷入发生时,CPU将下一条指令,也就是接下来要执行的指令的地址压入栈,作为中断服务的返回地址。
3. 异常(yi chang)
(1) 是由于CPU因无法完成一些指令而产生的,如除以0、映射失败,等等。
(2) 当异常发生时,CPU将当前指令的地址(而不是下一条指令的地址)压入栈,作为异常服务的返回地址。这样,就可以在异常处理返回时完成未竟完成的事业。
(3) 这个特殊性是在CPU的内部电路实现的,而不需由软件干预。即是由Intel实现的,和微软没关系。