GameBoy ISA(编写模拟器)

时间:2014-01-05 02:56:31

标签: assembly emulation cpu-registers z80 gameboy

我正在使用C中的GameBoy模拟器。现在我正在处理CPU.c文件,我对我在此处列出的一些说明感到有些困惑:

http://realboyemulator.files.wordpress.com/2013/01/gbcpuman.pdf

如果您参考上述PDF的第66页,并查看与操作码0x7E - LD,R1,R2对应的指令,我很好奇这个问题。

GB有8个8位寄存器,A,B,C,D,E,F,H,L。 16位寄存器可以通过连接两个来实现:AF,BC,DE,HL。

我对操作码0x7E感到困惑,因为它似乎试图将16位值(HL)存储到8位寄存器(A)中。

LD,A,(HL)

我是否误解了这份文件?有人可以解释为什么这样的指令会存在吗?难道它不能被LD,A,L?

取代

1 个答案:

答案 0 :(得分:4)

地址为16位,但它指向1个字节(8位),它放入寄存器A,(下例中的寄存器D)。

LD D, (HL)

该指令用位于寄存器对HL中的地址的字节加载D.

http://gameboy.mongenel.com/dmg/lesson1.html

找到了这个

以下是所有课程 http://gameboy.mongenel.com/asmschool.html