HALT模式被以下事件取消,这些事件具有指示的起始地址。
到/ RESET端子的低电平信号起始地址:0x0000
- 醇>
设置中断使能标志及其对应的中断请求标志
IME = 0(禁用中断主控启用标志) 起始地址:HALT指令后面的地址
IME = 1(启用中断主控启用标志) 起始地址:每个中断起始地址
假设一个程序进入HALT
模式,启用中断主控启用标志IME = 1
并且对任何中断0xFF0F = 0
禁用中断启用,会发生什么?实际的Gameboy设备的预期行为是什么?
答案 0 :(得分:3)
我不确定我是否理解你的问题,但无论如何:
根据引用的手册,IE
(中断使能)寄存器地址FFFF
确定启用了5种中断类型中的哪一种。如果1
(中断主控启用)设置为IME
,则只接受设置为1
的那些。
IF
(中断标志)寄存器,地址FF0F
,仅提供请求中断的信息
因此,如果某个程序处于HALT
状态且IME
= 1
,则会接受IE
中启用的任何中断。当然,有人必须生成将由IF
寄存器中的(或更多)1指示的中断。
编辑:
现在也许这会回答你的问题:
如果程序进入HALT模式,则允许中断主控使能(IME = 1),但禁止所有特定的中断类型(IE = 0),不接受中断,也不保留HALT模式。这是设备上的预期行为。