凡例:n;実数 A〜E,H,L;レジスタ(二つ並ぶ時はレジスタペア) SP;スタックポインタ PC;プログラムカウンタ IX+d,IY+d;インデックスレジスタ+d F;フラグ(AFはアキュムレータレジスタとのペア) (nn);()で挟まれている場合、アドレスを示す。 X';’が付くと裏レジスタ。 (例)BC';裏レジスタペアを示す。 (注)まだ作成途中です。16進コードも付ける予 定です。 未定義命令について一部記載しました。
ニモニック | 第一オペランド | 第二オペランド | 備考 |
---|---|---|---|
ADC | A, HL |
(8ビット) n, A〜E, H, L, (HL), (IX+d), (IY+d) (16ビット) BC, DE, HL, SP |
8/16ビット加算命令(キャリー含む) |
ADD | A, HL, IX, IY |
(8ビット) n, A〜E , H, L, (HL), (IX+d), (IY+d) (16ビット) BC, DE, HL, SP, IX, IY |
8/16ビット加算命令(キャリー含まず) |
AND | n, A〜E, H, L, (HL), (IX+d), (IY+d) | - | アキュムレータと第一オペランドの論理積 |
BIT | 0〜7 | A〜E, H, L, (HL), (IX+d), (IY+d) | 特定のビットを調べ、Zフラグをセット/リセット |
CALL |
nn (条件分岐) NZ, Z, NC, C, PO, PE, P, M |
(条件分岐) nn | 無条件/条件分岐(RET命令参照) |
CCF | - | - | キャリーフラグ反転 |
CP | n, A〜E, H, L, (HL), (IX+d), (IY+d) | - | アキュムレータと第一オペランドの比較 |
CPD | - | - | (HL)とアキュムレータの比較 |
CPDR | - | - | (HL)とアキュムレータの比較 |
CPI | - | - | (HL)とアキュムレータの比較 |
CPIR | - | - | (HL)とアキュムレータの比較 |
CPL | - | - | アキュムレータの内容を反転 |
DAA | - | - | アキュムレータの内容を10進補正 |
DEC |
(8ビット) A〜E, H, L, (HL), (IX+d), (IY+d) (16ビット) BC, DE, HL, SP, IX, IY |
- | 第一オペランドから-1 |
DI | - | - | 割り込み処理禁止命令(EI参照) |
DJNZ | e | - | Bレジスタを0になるまで-1し、その度にeだけ相対ジャンプ |
EI | - | - | 割り込み禁止処理解除命令(DI参照) |
EX | (SP), AF, DE | HL, IX, IY, AF' | 8/16ビットデータ交換 |
EXX | - | - | BC, DE, HL レジスタペアを裏レジスタと交換 |
HALT | - | - | CPUを停止 |
IM | 0〜2 | - | 割り込みモードの設定 |
IN | A〜E, H, L | (n), (C) | 第二オペランドで指定したポートからデータ読み込み |
INC |
(8ビット) A〜E, H, L, (HL), (IX+d), (IY+d) (16ビット) BC, DE, HL, SP, IX, IY |
- | 第一オペランドに+1 |
IND | - | - | I/Oポートから読み込み |
INDR | - | - | I/Oポートから読み込み |
INI | - | - | I/Oポートから読み込み |
INIR | - | - | I/Oポートから読み込み |
JP |
nn, HL, (IX), (IY) (条件分岐) NZ, Z, NC, C, PO, PE, P, M |
nn | ジャンプ命令 |
JR |
e
(条件分岐) NZ, Z, NC, C |
e | 相対アドレスジャンプ |
LD |
(8ビット) nn, A〜E, H, L, (BC), (DE), (HL), (IX+d), (IY+d), I, R, IXh, IXl, IYh, IYl (16ビット) BC, DE, HL, SP, IX, IY, SP, (nn) |
(8ビット) n, (nn), A〜E, H, L, (BC), (DE), (HL), (IX+d), (IY+d), I, R, IXh, IXl, IYh, IYl (16ビット) BC, DE, HL, SP, IX, IY, nn, (nn) |
8/16ビット転送命令 |
LDD | - | - | データ転送命令 |
LDDR | - | - | データ転送命令 |
LDI | - | - | データ転送命令 |
LDIR | - | - | データ転送命令 |
NEG | - | - | アキュムレータの補数をとる |
NOP | - | - | 何もしない |
OR | n, A〜E, H, L, (HL), (IX+d), (IY+d) | - | アキュムレータと第一オペランドの論理和 |
OTDR | - | - | ポートへの出力を繰り返す |
OTIR | - | - | ポートへの出力を繰り返す |
OUT | (n), (C) | A〜E, H, L | I/Oポートへ出力 |
OUTD | - | - | I/Oポートへ出力 |
OUTI | - | - | I/Oポートへ出力 |
PUSH | AF, BC, DE, HL, IX, IY | - | レジスタペアの値を退避 |
POP | AF, BC, DE, HL, IX, IY | - | スタックポインタのアドレスからレジスタペアに値を読み込む |
RES | 0〜7 | A〜E, H, L, (HL), (IX+d), (IY+d) | 特定のビットをリセット |
RET | NZ, Z, NC, C, PO, PE, P, M | - | (条件により)サブルーチンからリターン |
RETI | - | - | 割り込みサブルーチンからのリターン |
RETN | - | - | ノンマスク割り込み処理用サブルーチンからのリターン命令 |
RL | A〜E, H, L, (HL), (IX+d), (IY+d) | - | レジスタの値を左に1ビットシフトする |
RLA | - | - | アキュムレータの値を1ビット左にシフトする |
RLC | A〜E, H, L, (HL), (IX+d), (IY+d) | - | レジスタの値を1ビット左にシフトする |
RLCA | - | - | アキュムレータの値を1ビット左にシフトする |
RLD | - | - | アキュムレータの値と(HL)の値の入れ替え |
RR | A〜E, H, L, (HL), (IX+d), (IY+d) | - | レジスタの値を1ビット右にシフトする |
RRA | - | - | アキュムレータの値を1ビット右にシフトする |
RRC | A〜E, H, L, (HL), (IX+d), (IY+d) | - | レジスタの値を1ビット右にシフトする |
RRCA | - | - | アキュムレータの値を1ビット右にシフトする |
RRD | - | - | アキュムレータの値と(HL)の値の入れ替え |
RST | 00, 08, 10, 18, 20, 28, 30, 38 | - | サブルーチン呼び出し |
SBC |
(8ビット) A (16ビット) HL |
(8ビット) n, A〜E, H, L, (HL), (IX+d), (IY+d) (16ビット) BC, DE, HL, SP |
8ビット/16ビット減算命令 |
SCF | - | - | キャリーフラグをセット |
SET | 0〜7 | A〜E, H, L, (HL), (IX+d), (IY+d) | 特定のビットをセット |
SLA | A〜E, H, L, (HL), (IX+d), (IY+d) | - | レジスタの値を左に1ビットシフトする |
SRA | A〜E, H, L, (HL), (IX+d), (IY+d) | - | レジスタの値を右に1ビットシフトする |
SRL | A〜E, H, L, (HL), (IX+d), (IY+d) | - | レジスタの値を右に1ビットシフトする |
SUB | n, A〜E, H, L, (HL), (IX+d), (IY+d) | - | 減算命令 |
XOR | n, A〜E, H, L, (HL), (IX+d), (IY+d) | - | 排他的論理和命令 |
SLL | A〜E, H, L, (HL) | - |
レジスタの値を左に1ビットシフトする ビット0をセットする |