内中断:当CPU内部发生了特定的事件就会产生特殊的信息,CPU在处理完当前的指令后,暂时放弃处理接下来的指令从而去处理这个特殊的信息。特定的事件叫做中断源,特殊的信息叫做中断信息。中断信息中有一个字节的数据标识了产生这个中断信息的中断源,这一字节的数据称为中断类型码。CPU要处理中断信息首先要引发中断过程,此过程由硬件自动执行。
中断过程:
1:取得中断类型码
2:pushf
3:tf=0,if=0
4:push cx
5:push ip
6:指向中断处理程序的入口
中断源产生中断信息,中断信息包含了中断类型码。CPU根据中断类型码找到中断向量表中的表项,表项里的数据就是中断处理程序的入口地址。
iret:iret指令能恢复执行中断处理程序前的现场,即恢复flag,cs,ip
在有一些情况下CPU不会响应中断信息,比如向ss寄存器传送数据后。以为中断过程会改变栈中的数据