不可屏蔽中断是否优先于当前指令?

时间:2015-04-26 12:43:24

标签: assembly x86 interrupt

我正在参加大会课程,以下问题困扰着我。我试图在代码中复制它,但很难在模拟器中重现这种情况。

  

值5存储在0x0000100。在处理器正在评估 INCB 0x0000100 指令的同一时刻,会引发一个NMI中断,调用一个子程序,它将0x0000100的值乘以2. 0x0000100的最终值是多少?

在处理中断之前,当前指令是否完成,或者是否立即取消,我感到有点困惑。

1 个答案:

答案 0 :(得分:2)

NMI处理程序在运行时使用与任何其他代码完全相同的提取,处理和写入周期(您不希望不必要地复制门)。它只是保存处理器状态,将当前程序计数器压入堆栈并将PC更改为中断处理程序。当从中断返回时,它会继续从中断处继续。

如果它允许部分指示怎么办呢?

(并不意味着讽刺 - 我只是找到"为什么"比#34更有趣;")