GameBoy将16位加载到8位内存中

Max*_*ich 6 emulation machine-code gameboy

我已经开始为Gameboy经典编写一个模拟器,这是我在成功的Chip 8模拟器之后的下一个项目.

作为参考,我使用GameBoy CPU手册.

现在在第66页它说:

LD  A,(HL)  7E  8
Run Code Online (Sandbox Code Playgroud)

基本上,将值HL加载到寄存器A.

但是,据我所知,这会将16位值HL加载到8位寄存器A中.这当然不合适.

你知道这是怎么回事吗?所有其他参考文献只是简单的表格,没有解释,但说同样的事情.

谢谢你的回答!

the*_*112 7

使用该指令,(HL)指向的值被加载到A而不是HL本身的值.例如,如果HL的值为0xABCD且地址0xABCD的存储器值为0x50,则将0x50加载到寄存器A.

伪实现

register.A = memory.ReadByte(register.HL);
Run Code Online (Sandbox Code Playgroud)

  • @Saibot似乎没有提到大括号'(XX)'表示大括号内的值是一个内存地址. (5认同)