在查看Gameboy的指令集时,我遇到了如下指令:
LD A, A
LD B, B
LD C, C
LD D, D
...
Run Code Online (Sandbox Code Playgroud)
每条指令中有自己的操作码此表,这让我觉得他们是一些重要的,由于可能的操作码的数量限制.
我首先想到它可能是在该寄存器中取消引用指针并将值存储在该指针处(就像在这个问题中一样),但是在模拟器中,LD A, A实现为:
Z80._r.a = Z80._r.a
Run Code Online (Sandbox Code Playgroud)
它们似乎对处理器的状态没有影响(只是将寄存器设置为它们自己的值)并且NOP执行与a相同的周期数.
为什么这些操作码包含在指令集中,它们的用途是什么?