Assembly 不可屏蔽中断是否比当前指令具有优先级?

Assembly 不可屏蔽中断是否比当前指令具有优先级?,assembly,x86,interrupt,Assembly,X86,Interrupt,我正在学习一门装配课程,下面的问题让我感到困惑。我曾尝试在代码中复制它,但很难在模拟器中复制这种情况 值5存储在0x0000100。在处理器评估INCB 0x0000100指令的同一时刻,调用将0x0000100处的值乘以2的子程序,引发NMI中断。0x00000100的最终值是多少 我有点困惑当前指令是在中断处理之前完成,还是立即取消。NMI处理程序在运行时使用与任何其他代码完全相同的获取、处理、写入周期(您不希望不必要地复制门)。它只是保存处理器状态,将当前程序计数器推送到堆栈上,并将PC更

我正在学习一门装配课程,下面的问题让我感到困惑。我曾尝试在代码中复制它,但很难在模拟器中复制这种情况

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


我有点困惑当前指令是在中断处理之前完成,还是立即取消。NMI处理程序在运行时使用与任何其他代码完全相同的获取、处理、写入周期(您不希望不必要地复制门)。它只是保存处理器状态,将当前程序计数器推送到堆栈上,并将PC更改为中断处理程序。当从中断返回被调用时,它将在中断处继续执行

如果允许部分指令,它怎么能做到这一点


(并不意味着尖刻——我只是觉得“为什么”比“什么”更有趣)

当前的说明将首先完成。手册上说:所有中断都保证在指令边界上进行。中断序列将在当前指令周期结束时开始。有些说明需要比其他说明更长的时间才能完成。从信号输入到中断开始所花费的时间称为延迟。因此,在NMI处理开始时,地址
0x0000100
处的值将为
6