10

根据Gameboy 编程手册

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

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

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

    • IME = 0(中断主机使能标志禁用) 起始地址:HALT 指令之后的地址

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

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

4

1 回答 1

2

我不确定我是否理解您的问题,但无论如何:
根据引用的手册,IE(中断启用)寄存器 addressFFFF确定启用了 5 种中断类型中的哪一种。如果(中断主机启用)设置为 ,1则仅接受设置为 的那些。(中断标志)寄存器 address仅提供请求中断的信息。 因此,如果程序处于=状态,则接受在 中启用的任何中断。当然,必须有人生成由寄存器中的(或更多)1 指示的中断。 IME1IFFF0F
HALTIME1IEIF

编辑:

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

于 2015-06-08T19:49:52.377 回答