您的位置:首页 > 其它

中断异常的处理

2013-02-18 18:02 232 查看
当处理器执行一个对异常或中断处理例程的调用时:

如果将要执行的处理例程特权级数值较小,就进行栈切换。当栈切换发生时:

a.处理程序使用的栈的段选择子和栈指针是从当前运行任务的TSS 中获取的。

处理器把被中断例程的栈段选择子和栈指针压入新的栈中。

b.处理器随后把EFLAGS 寄存器、CS 寄存器、EIP 寄存器的当前值保存进新栈



c.如果异常同时产生了一个错误码,则把它压入栈中,位于EIP 之后。

如果将要执行的处理例程与被中断的例程特权级相同:

a.处理器在当前栈中保存当前EFLAGS 寄存器、CS 寄存器和EIP 寄存器的值  

b.如果异常的错误码也保存在那里,则把它保存在当前栈的EIP 值之后。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: