内中断
在执行完当前正在执行的指令之后,检测到从CPU内部发过来的或内部产生的一种特殊信息,并且可以立即对所接收到的信息进行处理
中断信息可以来源于CPU外部和内部
内中断的产生
1除法错误 0
2单步执行 1
3执行into指令 4 (into 溢出中断)
4执行int指令,该指令格式 int n 指令中的n是字节型数据,是提供给CPU的中断代码类型码
中断向量表
中断向量的列表,存放中断处理程序的入口地址cs:ip
中断处理
1保存用到的寄存器
2处理中断
3恢复用到的寄存器
4用 iret指令返回 (iret指令:将ip ,cs,标志寄存器的数据 , 依次出栈)
处理过程
获取中断码,
将cs:ip 和标志寄存器压栈 TF,IF设置为0(if=0,在进入中断处理后,禁止可屏蔽中断)
找到中断向量表中的程序地址(设置cs:ip)
处理中断
返回原程序继续执行 (将cs:ip和标志寄存器出栈)