Z80 NMI 是可重入的吗?

Is the Z80 NMI reentrant?

据我所知,Z80 NMI 中断 (0x66) 是由 NMI 引脚的边沿检测触发的。当仍在 NMI 处理程序代码内(RETN 尚未执行)检测到另一个边沿时会发生什么?

NMI 是可重入的吗?Z80 是否只是将当前地址压入堆栈并再次从 0x66 开始?

我的解读是第二个 NMI 会中断第一个 NMI 的处理。 NMI 处理为避免额外中断所做的唯一特殊事情是将 IFF1 备份到 IFF2,然后设置 IFF1(RETNs 的特殊功能是在另一个方向上恢复)。但这不会禁止 NMI。所以没有机制可以忽略未来的 NMI。

这在文献中得到了轻微的支持,尽管是微妙的 — e.g. "This negative edge triggered interrupt cannot be disabled under program control and will be accepted at any time by the CPU to be honored at the completion of the current instruction (if Bus Request not pending)";添加了强调,但也请注意,总线请求已作为特例删除,没有提及现有的 NMI。