任何一个CPU,都有处理中断的能力。中断的意思是,CPU不再接着(刚执行完的指令)向下执行,而是转去处理这个特殊信息。
根据中断信息的来源,中断分为内中断和外中断两种。
中断向量表是保存中断处理程序入口地址的列表。
中断过程指的是在找到中断向量后,CPU的硬件自动完成设置CS和IP的过程。
当CPU接收到中断信息后,整个的过程如下:
- CPU接收中断信息
- 根据中断类型码在中断向量表中找相应的中断向量
- 引发中断过程——CS:IP指向中断处理程序的入口
- 开始执行中断处理程序
中断处理程序一般需要以下几个步骤:
- 保存用到的寄存器
- 处理中断
- 恢复用到的寄存器
- 用iret指令返回
iret指令的功能用汇编语法描述为:
POP IP
POP CS
POPF