如果'中断'会发生什么?并且'陷阱'标志位是否都设置在微处理器中?

时间:2018-01-13 09:44:48

标签: x86 interrupt cpu-registers flags microprocessors

在x86微处理器中,有一个带有“陷阱”位的标志寄存器 - 当置位时,它会使微处理器在每条指令后陷入异常处理程序。然后有一个'中断位'设置时,启用中断并重定向到ISR。当两个设备同时设置并收到中断时会发生什么?

2 个答案:

答案 0 :(得分:2)

英特尔SDM第3卷第6.9节列出了同时异常和中断的相对优先级。对于您询问的情况,Debug Trap Exceptions为优先级4,可屏蔽硬件中断为优先级6.因此将调试调试陷阱。

如果IDT中的调试异常描述符是陷阱门,则挂起的中断将在下一个指令边界处得到服务。如果描述符是中断门,则IF标志在异常处理过程中被清除,因此中断将保持挂起状态,直到IF设置为1。

在任何情况下,陷阱标志都会被清除,作为中断或异常处理的一部分,因此在中断或异常处理程序期间不会发生调试陷阱。

答案 1 :(得分:-2)

关于进程本身,陷阱将会因为停止进程对话而击败中断。但是在开始时它们同时被调用。唯一的区别是中断允许进程继续执行。