GB Test ROM仿真问题

时间:2014-04-12 23:41:36

标签: emulation gameboy

我一直在制作GameBoy模拟器,我目前正在通过位于here的测试ROM中运行它。

cpu_instrs.zip中的一项测试如下:

set_test 5,"POP AF"
ld   bc,$1200
.loop:
push bc
pop  af
push af
pop  de
ld   a,c
and  $F0
cp   e
jp   nz,test_failed
inc  b
inc  c
jr   nz,.loop

据我了解,似乎这个测试总会失败。在第一个循环中,零标志不会从inc c设置,然后代码最终将跳转到test_failed,因为在第二个循环中,e将等于1并且{{1}将是0.

我在这里缺少什么?

1 个答案:

答案 0 :(得分:5)

事实证明,标志寄存器上的最低有效半字节始终为零,并且向其写入非零值不应更改它。