“中断”这个概念,如果从理解的角度来看,书上的定义是很好理解的,但从开发者的角度来看就很不一样了。看了N多资料后,终于才对“中断”有了些理解了。原来所谓的DOS下的“中断”其实就是我们在 Windows 中所说的“事件”和消息。当我们的某个操作或者是程序的某一条指令产生了一个中断后,CPU 就会停下当前的工作来处理这个中断。就像在Windows中发生了一个事件而产生了一条消息,系统就会来处理这条消息一样(当然,这都涉及到优先级的问题,具体还要看操作系统)。
在DOS下的中断有软件中断和硬件中断之分。软件中断是由我们的程序或者是操作系统发出的,而硬件的中断则是由硬件的状态改变产生的。我们的程序可以使用“系统调用中断”来调用系统的各项功能(这就像我们在 Windows 中使用 API 函数一样),我们也可以通过改写中断处理函数来实现我们想要的操作(这就像我们在 Windows 里写消息处理函数一样)。