2.4. 中断和异常,陷阱的区别和联系

对于中断,异常和陷阱的各种关系,总结如下:

表 2.1. 中断,异常和陷阱的区别和联系

 对CPU来说是和当前CPU所执行的指令的关系CPU接下来的事情程序员和用户的态度
中断被动的异步的没关系跳转到对应的ISR希望有对应的中断,以使得CPU可以响应对应的中断,执行对应的ISR
异常被动的同步的有关系,因为就是当前指令执行出问题,才有的异常跳转到对应的异常处理不希望出现异常,如果出现了,那往往是指令执行出现某些错误了
陷阱主动的同步的有关系,就是执行当前软中断指令,才进入的软中断执行对应的软中断处理函数对于想要实现调试功能的程序员,有需要此陷阱的必要,其他人不用关心此点


下面,用图表总结了,中断,陷阱和异常的区别:

图 2.1. 中断,陷阱和异常的区别

中断,陷阱和异常的区别


[注意]注意

无论是中断,还是异常和陷阱,对应的处理函数,一般都可以称其为中断服务程序ISR,都只是一个函数

具体函数里面要做什么事情,是由你写程序的人决定的

比如中断中处理对应的事情,异常中自己决定如何响应出现的异常,陷阱中决定做什么事情。