Z80 NMI是否可以重入?

obi*_*obi 6 z80

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

NMI是否可以重入,Z80是否会将当前地址推入堆栈并再次从0x66开始?

Tom*_*mmy 5

我的理解是第二个 NMI 会中断第一个 NMI 的处理。NMI 处理为避免额外中断所做的唯一特殊操作是将 IFF1 备份到 IFF2,然后设置 IFF1(其RETN特殊功能是在另一个方向上恢复)。但这并不会禁止 NMI。因此,不存在任何机制可以忽略未来的 NMI。

\n\n

这一点在文献中得到了轻微的支持,尽管很微妙 \xe2\x80\x94例如“这个下降沿触发的中断不能在程序控制下禁用,并且将随时被 CPU 接受,在当前指令完成时兑现”(如果总线请求未待处理)”;添加了重点,但也请注意,巴士请求已作为特殊情况取消,未提及现有的 NMI。

\n