在主中断使能但没有中断使能(0xFF0F = 0)的情况下进入HALT模式?

Gab*_*iro 10 interrupt emulation halt device-emulation gameboy

根据Gameboy编程手册,

HALT模式被以下事件取消,这些事件具有指示的起始地址.

  1. 到/ RESET端子的低电平信号起始地址:0x0000

  2. 中断使能标志及其对应的中断请求标志置位

    • IME = 0(禁止中断主器件使能标志)起始地址:低于HALT指令的地址

    • IME = 1(允许中断主控使能标志)起始地址:每个中断起始地址

假设一个程序进入HALT模式,中断主器件使能标志被使能IME = 1,中断使能被禁止任何中断0xFF0F = 0,会发生什么?实际的Gameboy设备的预期行为是什么?

Rei*_*ner 2

我不确定我是否理解你的问题,但无论如何:
根据引用的手册,IE(中断启用)寄存器,地址FFFF,确定启用5种中断类型中的哪一种。1如果(中断主机启用)设置为 ,则仅接受那些设置IME为 的设置1IF(中断标志)寄存器地址仅FF0F提供请求中断的信息。
因此,如果程序处于=HALT状态,则接受在 中启用的任何中断。当然,有人必须生成中断,该中断将在中断中用(或多个)1 表示。IME1IEIF

编辑:

也许这现在回答了你的问题:
如果程序进入HALT模式,则中断主使能被使能(IME = 1),但所有特定中断类型被禁用(IE = 0),不会接受任何中断,并且不会离开HALT模式。这是设备上的预期行为。