不可屏蔽中断是否优先于当前指令?
Do non-maskable interrupts have priority over the current instruction?
我正在学习一个装配课程,下面的问题一直困扰着我。我试图在代码中复制它,但很难在模拟器中重现这种情况。
A value of 5 is stored at 0x0000100. At the exact same moment when the processor is evaluating a INCB 0x0000100 instruction, an NMI interrupt is raised calling a sub-routine which multiplies the value at 0x0000100 by 2. What would be the final value at 0x0000100?
我有点困惑当前指令是否会在处理中断之前完成,或者是否立即取消。
NMI 处理程序使用与任何其他代码完全相同的获取、处理、写入周期,而它们是 运行(您不想不必要地复制门)。它只是保存处理器状态,将当前程序计数器压入堆栈并将 PC 更改为中断处理程序。当调用中断中的 return 时,它会从中断处继续。
如果它允许部分指令,它如何做到这一点?
(不是刻薄的意思 - 我只是觉得 "why" 比 "what" 更有趣)
我正在学习一个装配课程,下面的问题一直困扰着我。我试图在代码中复制它,但很难在模拟器中重现这种情况。
A value of 5 is stored at 0x0000100. At the exact same moment when the processor is evaluating a INCB 0x0000100 instruction, an NMI interrupt is raised calling a sub-routine which multiplies the value at 0x0000100 by 2. What would be the final value at 0x0000100?
我有点困惑当前指令是否会在处理中断之前完成,或者是否立即取消。
NMI 处理程序使用与任何其他代码完全相同的获取、处理、写入周期,而它们是 运行(您不想不必要地复制门)。它只是保存处理器状态,将当前程序计数器压入堆栈并将 PC 更改为中断处理程序。当调用中断中的 return 时,它会从中断处继续。
如果它允许部分指令,它如何做到这一点?
(不是刻薄的意思 - 我只是觉得 "why" 比 "what" 更有趣)