中断是指CPU在执行程序时,遇到优先级更高的事件需要处理时,暂时中断正在执行的程序,并转去执行相应的事件处理程序。在微机中,中断可以分为内部中断和外部中断。
内部中断是指CPU执行特殊指令时引发的中断。例如,在执行特权指令时,为了防止普通用户执行,CPU会引发特权指令中断。
外部中断是指和CPU无关的设备发生事件时引发的中断。例如,键盘输入时,键盘控制器向CPU发送中断请求,通知CPU处理输入事件。
中断可以提高系统的响应速度。在不使用中断时,CPU需要不停地轮询设备的状态,这样会使得CPU的利用率降低。而使用中断后,CPU可以在合适的时候去处理相应的事件,充分利用CPU的时间。
中断可以实现多任务处理。通过不同的中断优先级,可以使得CPU在处理不同的事件时进行切换,达到多任务的效果。
中断可以按照处理方式进行分类。有硬件中断和软件中断两种。
硬件中断是由外部设备引起的中断。例如,硬盘读写操作完成后,硬盘控制器会向CPU发送中断请求。
软件中断是由CPU执行特殊指令时引起的中断。例如,在DOS系统中,我们可以使用INT 21H指令来调用DOS系统的各种服务,这时就会引发软件中断。
中断处理包含以下几个基本步骤:
1、引发中断。当某个设备发生中断事件时,它会向CPU发送中断请求,并将中断号发送给CPU。
2、保存现场。CPU在收到中断请求后,会将当前程序的状态保存到内存中,并把中断处理程序的入口地址保存到程序计数器(PC)中。
3、执行中断处理程序。CPU会跳转到中断处理程序的入口地址,并开始执行相应的中断处理程序。
4、恢复现场。当中断处理程序执行完毕后,CPU会将程序计数器和其他寄存器恢复到之前的状态,接着回到原来被中断的程序中继续执行。