Z80の命令セット(http://d.hatena.ne.jp/propella/20080616/p1より)

正確には8080命令セットなのですが、ザイログ表記の方がなじみ深いのでこちらで。


ロード命令だけに絞って話を進めます。
Z80では、8ビットレジスタ(もしくはアドレッシング)のロードは以下として表記します。

LD r,R
01rrrRRR
rrr:000から111の値でB,C,D,E,H,L,(HL),Aを表す
RRR:同上

命令はビットで表現しているものと見てください。すると、

LD B,B 0x40
LD B,C 0x41
LD B,D 0x42
LD C,B 0x48
LD C,C 0x49

といった感じの表が出来上がります。ニーモニックと16進表記の間にはあまり関連が見えません。
これを8進表記にすると、

LD B,B 0100
LD B,C 0101
LD B,D 0102
LD C,B 0110
LD C,C 0111

と非常にわかりやすくなります。レジスタのアドレッシングが3ビットごとに分かれているので16進(4ビット)よりも8進(3ビット)の方が命令デコードの実際に即しているのです。
何よりも、いきなり出てくる

HALT 0x76

HALT 0166 (LD (HL),(HL)というあり得ない命令)

と解釈することができるのです。
命令コードの内側からCPUの設計が透けて見えますよね。