第二回目の機械語とニーモニックの対照表は、主に算術演算・論理演算関連の命令を中心として構成されている。ただし、個々の表自体は同類となっているが、全体では余白を活用してその他の命令群も含まれているので、誤解のなきよう。
16ビット算術演算表を見ると、インデックスレジスタ(IX,IY)を除く16ビットレジスタ(HL,BC,DE)のうち、BCとDEはHLをサポートするための脇役であることが明白になる。数値を一時的に記憶するという機能は同じでも、自らが変化を伴う演算対象となっていないのだ。
もちろん、ブロック転送/サーチ命令(前回に掲載)などで固有の役割は担っているが、BCとDEに対する算術演算には、HLへの置換が必要となるなど不便な側面があるのは否めない。といっても、そういった設計思想下でのヤリクリこそが、Z80マシン語プログラミングの醍醐味なのである。
ニーモニック⇔機械語対照表(その2) |
n :8ビットの数値
nn:16ビットの数値
d :8ビットの数値
e :相対アドレシングの変位置
x :上部に並んでいるレジスタ名や条件を示す
|
8ビット算術論理演算
|
x→
| A
| B
| C
| D
| E
| H
| L
| (HL)
| (IX+d)
| (IY+d)
| n
|
ADD A,x
| 87
| 80
| 81
| 82
| 83
| 84
| 85
| 86
| DD
86
d
| FD
86
d
| C6
n
|
ADC A,x
| 8F
| 88
| 89
| 8A
| 8B
| 8C
| 8D
| 8E
| DD
8E
d
| FD
8E
d
| CE
n
|
SUB x
| 97
| 90
| 91
| 92
| 93
| 94
| 95
| 96
| DD
96
d
| FD
96
d
| D6
n
|
SBC A,x
| 9F
| 98
| 99
| 9A
| 9B
| 9C
| 9D
| 9E
| DD
9E
d
| FD
9E
d
| DE
n
|
AND x
| A7
| A0
| A1
| A2
| A3
| A4
| A5
| A6
| DD
A6
d
| FD
A6
d
| E6
n
|
XOR x
| AF
| A8
| A9
| AA
| AB
| AC
| AD
| AE
| DD
AE
d
| FD
AE
d
| EE
n
|
OR x
| B7
| B0
| B1
| B2
| B3
| B4
| B5
| B6
| DD
B6
d
| FD
B6
d
| F6
n
|
CP x
| BF
| B8
| B9
| BA
| BB
| BC
| BD
| BE
| DD
BE
d
| FD
BE
d
| FE
n
|
INC x
| 3C
| 04
| 0C
| 14
| 1C
| 24
| 2C
| 34
| DD
34
d
| FD
34
d
|
|
DEC x
| 3D
| 05
| 0D
| 15
| 1D
| 25
| 2D
| 35
| DD
35
d
| FD
35
d
|
|
16ビット算術演算
|
x→
| BC
| DE
| HL
| SP
| IX
| IY
|
ADD HL,x
| 09
| 19
| 29
| 39
|
|
|
ADD IX,x
| DD
09
| DD
19
|
| DD
39
| DD
29
|
|
ADD IY,x
| FD
09
| FD
19
|
| FD
39
| FD
29
|
|
ADC HL,x
| ED
4A
| ED
5A
| ED
6A
| ED
7A
|
|
|
SBC HL,x
| ED
42
| ED
52
| ED
62
| ED
72
|
|
|
INC x
| 03
| 13
| 23
| 33
| DD
23
| FD
23
|
DEC x
| 0B
| 1B
| 2B
| 3B
| DD
2B
| FD
2B
|
|
エクスチェンジ
|
EX AF,AF'
| 08
|
EX DE,HL
| EB
|
EX (SP),HL
| E3
|
EX (SP),IX
| DD
E3
|
EX (SP),IY
| FD
E3
|
EXX
| D9
|
|
アキュムレータ操作
|
DAA
| 27
|
CPL
| 2F
|
NEG
| ED
44
|
CCF
| 3F
|
SCF
| 37
|
|
CPUコントロール
|
NOP
| 00
|
HALT
| 76
|
DI
| F3
|
EI
| FB
|
IM 0
| ED
46
|
IM 1
| ED
56
|
EM 2
| ED
5E
|
|
|