ゲームボーイの命令セットを調べていると、次のような命令に出くわしました。
LD A, A
LD B, B
LD C, C
LD D, D
...
これらの各命令には、この表に独自のオペコードがあります。これは、可能なオペコードの数の制限により、それらがある程度重要であると私に思わせます。
私は最初、そのレジスタ内のポインターを逆参照し、そのポインターに値を格納している可能性があると考えました (この質問のように) が、エミュレーターでLD A, A
は次のように実装されています。
Z80._r.a = Z80._r.a
それらはプロセッサの状態に影響を与えないようで(レジスタを独自の値に設定するだけです)、NOP
実行するのに a と同じサイクル数を要します。
これらのオペコードが命令セットに含まれているのはなぜですか? また、それらはどのような目的に役立ちますか?