任何一个通用的CPU,都具备一种能力,可以在执行完当前正在执行的指令后,检测到从CPU内部或外部送过来的一种特殊信息,并且可以立即对所接收到的信息进行处理。这种特殊的信息,称为中断信息。中断的意思是,CPU不再接着(刚执行完的指令)向下执行,而是转去处理这个特殊的信息。中断信息是要求CPU马上进行某种处理,并向所要进行的该处理提供了必备的通知信息。中断信息可以来自CPU 内部和外部。
内中断的产生
1. 除法错误
2. 单步执行
3. 执行into指令
4. 执行int 指令
当CPU收到中断信息后,从中提取中断类型码,利用中断类型码在中断向量表中找到中断处理程序的入口地址,然后用入口地址设置CS 和IP,使CPU 执行中断处理程序。用中断类型码找到中断向量,并用它设置CS和IP, 这个工作是由CPU的硬件自动完成的,这个过程称为中断过程。中断向量表指定放在内存地址0处,从内存0000:0000到0000:03FF的1024个单元中存放,这是规定。
8086CPU中断过程如下
1. (从中断信息中)取得中断类型码
2. 把标志寄存器入栈(中断过程要改变标志位,为了恢复现场)
3. 设置标志寄存器的第8位TF和第9位IF的值为0
4. CS入栈
5. IP入栈
6. 从内存地址为中断类型码*4和中断类型码*4+2的两个字单元中读取中断处理程序的入口地址设置IP和CS;