我正在使用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?
取代答案 0 :(得分:4)
地址为16位,但它指向1个字节(8位),它放入寄存器A,(下例中的寄存器D)。
LD D, (HL)
该指令用位于寄存器对HL中的地址的字节加载D.
找到了这个