Z80Aメモ: 命令一覧・説明付き

この記事は作成中です。

00〜0F

  • 00: NOP
    なにもしない。いわゆる「スルー」。
  • 01 n2 n1: LD BC,n1n2
    BCレジスタに任意の数値n1n2を入れる。n2とn1の順序に注意。
  • 02: LD (BC), A
    メモリアドレスBCに、Aレジスタの値(8ビット)を記憶させる。
  • 03: INC BC
    BCレジスタの値を1増やす。
  • 04: INC B
    Bレジスタの値を1増やす。
  • 05: DEC B
    Bの値を1減らす。
  • 06 n: LD B,n
    Bレジスタに任意の数値nを入れる。
  • 09: ADD HL,BC
    HLレジスタの値とBCレジスタの値の和を、HLレジスタに入れる。
  • 0A: LD A,(BC)
    Aレジスタに、メモリアドレスBCに記憶された8ビットデータを読み込む。
  • 0B: DEC BC
    BCレジスタの値を1減らす。
  • 0C: INC C
    Cレジスタの値を1増やす。
  • 0D: DEC C
    Cレジスタの値を1減らす。
  • 0E n: LD B,n
    Bレジスタに任意の数値nを入れる。

10〜1F

  • 11 n2 n1: LD DE,n1n2
    DEレジスタに任意の数値n1n2を入れる。n2とn1の順序に注意。
  • 12: LD (DE), A
    メモリアドレスDEに、Aレジスタの値(8ビット)を記憶させる。
  • 13: INC DE
    DEレジスタの値を1増やす。
  • 14: INC D
    Dレジスタの値を1増やす。
  • 15: DEC D
    Dレジスタの値を1減らす。
  • 16: 16 n: LD D,n
    Dレジスタに任意の数値nを入れる。
  • 19: ADD HL, DE
    HLレジスタの値とDEレジスタの値の和を、HLレジスタに入れる。
  • 1A: LD A,(DE)
    Aレジスタに、メモリアドレスDEに記憶された8ビットデータを読み込む。
  • 1B: DEC DE
    DEレジスタの値を1減らす。
  • 1C: INC E
    Eレジスタの値を1増やす。
  • 1D: DEC E
    Eレジスタの値を1減らす。
  • 1E n: LD E,n
    Eレジスタに任意の数値nを入れる。

20〜2F

  • 21 n2 n1: LD HL,n1n2
    HLレジスタに任意の数値n1n2を入れる。n2とn1の順序に注意。
  • 22 n2 n1: LD (n1n2),HL
    任意のメモリアドレスn1n2に、HLレジスタの値(16ビット)記憶させる。n2とn1の順序に注意。
  • 23: INC HL
    HLレジスタの値を1増やす。
  • 24: INC H
    Hレジスタの値を1増やす。
  • 25 DEC H
    Hレジスタの値を1減らす。
  • 26 n: LD H,n
    Hレジスタに任意の数値nを入れる。
  • 29: ADD HL,HL
    HLレジスタの値とHLレジスタの値の和を、HLレジスタに入れる。つまり、HLレジスタの値を2倍にする。
  • 2A n2 n1: LD HL,(n1n2)
    HLレジスタに、任意のメモリアドレスn1n2に記憶された16ビットの値を読み込む。n2とn1の順序に注意。
  • 2B: DEC HL
    HLレジスタの値を1減らす。
  • 2C: INC L
    Lレジスタの値を1増やす。
  • 2D: DEC L
    Lレジスタの値を1減らす。
  • 2E n: LD L,n
    Lレジスタに任意の数値nを入れる。2バイトで1セット。

30〜3F

  • 31 n1 n1: LD SP,n1n2
    SPレジスタに任意の数値n1n2を入れる。n2とn1の順序に注意。
  • 32 n2 n1: LD (n1n2),A
    任意のメモリアドレスn1n2に、Aレジスタの値(8ビット)記憶させる。n2とn1の順序に注意。
  • 33: INC SP
    SPレジスタの値を1増やす。
  • 34: INC (HL)
    メモリアドレスHLに記憶されている値を1増やす。
  • 35: DEC (HL)
    メモリアドレスHLに記憶されている値を1減らす。
  • 36 n: LD (HL), n
    メモリアドレスHLに、任意の数値n(8ビット)を記憶させる。
  • 39: ADD HL,SP
    HLレジスタの値とSPレジスタの値の和を、HLレジスタに入れる。
  • 3A n2 n1: LD A,(n1n2)
    Aレジスタに、任意のメモリアドレスn1n2に記憶されている値(8ビット)を入れる。n2とn1の順序に注意。
  • 3B: DEC SP
    SPレジスタの値を1減らす。
  • 3C: INC A
    Aレジスタの値を1増やす。
  • 3D: DEC A
    Aレジスタの値を1減らす。
  • 3E n: LD A,n
    Aレジスタに任意の数値nを入れる。

40〜4F

  • 40: LD B,B
    BレジスタにBレジスタの値を入れる。
  • 41: LD B,C
    BレジスタにCレジスタの値を入れる。
  • 42: LD B,D
    BレジスタにDレジスタの値を入れる。
  • 43: LD B,E
    BレジスタにEレジスタの値を入れる。
  • 44: LD B,H
    BレジスタにHレジスタの値を入れる。
  • 45: LD B,L
    BレジスタにLレジスタの値を入れる。
  • 46: LD B,(HL)
    Bレジスタに、メモリのアドレスHLに記憶されている値(8ビット)を入れる。
  • 47: LD B,A
    Bレジスタに Aレジスタの値を入れる。
  • 48: LD C,B
    CレジスタにBレジスタの値を入れる。
  • 48: LD C,B
    CレジスタにBレジスタの値を入れる。
  • 49: LD C,C
    CレジスタにCレジスタの値を入れる。
  • 4A: LD C,D
    CレジスタにDレジスタの値を入れる。
  • 4B: LD C,E
    CレジスタにEレジスタの値を入れる。
  • 4C: LD C,H
    CレジスタにHレジスタの値を入れる。
  • 4D: LD C,L
    CレジスタにLレジスタの値を入れる。
  • 4E: LD C,(HL)
    Cレジスタに、メモリのアドレスHLに記憶されている値(8ビット)を入れる。
  • 4F: LD C,A
    Cレジスタに Aレジスタの値を入れる。

50〜5F

  • 50: LD D,B
    DレジスタにBレジスタの値を入れる。
  • 51: LD D,C
    DレジスタにCレジスタの値を入れる。
  • 52: LD D,D
    DレジスタにDレジスタの値を入れる。
  • 53: LD D,E
    DレジスタにEレジスタの値を入れる。
  • 54: LD D,H
    DレジスタにHレジスタの値を入れる。
  • 55: LD D,L
    DレジスタにLレジスタの値を入れる。
  • 56: LD D,(HL)
    Dレジスタに、メモリのアドレスHLに記憶されている値(8ビット)を入れる。
  • 57: LD D,A
    Dレジスタに Aレジスタの値を入れる。
  • 58: LD E,B
    EレジスタにBレジスタの値を入れる。
  • 59: LD E,C
    EレジスタにCレジスタの値を入れる。
  • 5A: LD E,D
    EレジスタにDレジスタの値を入れる。
  • 5B: LD E,E
    EレジスタにEレジスタの値を入れる。
  • 5C: LD E,H
    EレジスタにHレジスタの値を入れる。
  • 5D: LD E,L
    EレジスタにLレジスタの値を入れる。
  • 5E: LD E,(HL)
    Eレジスタに、メモリのアドレスHLに記憶されている値(8ビット)を入れる。
  • 5F: LD E,A
    Eレジスタに Aレジスタの値を入れる。

60〜6F

  • 60: LD H,B
    HレジスタにBレジスタの値を入れる。
  • 61: LD H,C
    HレジスタにCレジスタの値を入れる。
  • 62: LD H,D
    HレジスタにDレジスタの値を入れる。
  • 63: LD H,E
    HレジスタにEレジスタの値を入れる。
  • 64: LD H,H
    HレジスタにHレジスタの値を入れる。
  • 65: LD H,L
    HレジスタにLレジスタの値を入れる。
  • 66: LD H,(HL)
    Hレジスタに、メモリのアドレスHLに記憶されている値(8ビット)を入れる。
  • 67: LD H,A
    Hレジスタに Aレジスタの値を入れる。
  • 68: LD L,B
    LレジスタにBレジスタの値を入れる。
  • 69: LD L,C
    LレジスタにCレジスタの値を入れる。
  • 6A: LD L,D
    LレジスタにDレジスタの値を入れる。
  • 6B: LD L,E
    LレジスタにEレジスタの値を入れる。
  • 6C: LD L,H
    LレジスタにHレジスタの値を入れる。
  • 6D: LD L,L
    LレジスタにLレジスタの値を入れる。
  • 6E: LD L,(HL)
    Lレジスタに、メモリのアドレスHLに記憶されている数値(8ビット)を入れる。
  • 6F: LD L,A
    Lレジスタに Aレジスタの値を入れる。

70〜7F

  • 70: LD (HL),B
    メモリアドレスHLに、Bレジスタの値(8ビット)を記憶させる。
  • 71: LD (HL),C
    メモリアドレスHLに、Cレジスタの値(8ビット)を記憶させる。
  • 72: LD (HL),D
    メモリアドレスHLに、Dレジスタの値(8ビット)を記憶させる。
  • 73: LD (HL),E
    メモリアドレスHLに、Eレジスタの値(8ビット)を記憶させる。
  • 74: LD (HL),H
    メモリアドレスHLに、Bレジスタの値(8ビット)を記憶させる。
  • 75: LD (HL),L
    メモリアドレスHLに、Lレジスタの値(8ビット)を記憶させる。
  • 76: HALT
    命令の実行を停止する。
  • 77: LD (HL),A
    メモリのアドレスHLに Aレジスタの値を記憶させる。
  • 78: LD A,B
    AレジスタにBレジスタの値を入れる。
  • 79: LD A,C
    AレジスタにCレジスタの値を入れる。
  • 7A: LD A,D
    AレジスタにDレジスタの値を入れる。
  • 7B: LD A,E
    AレジスタにEレジスタの値を入れる。
  • 7C: LD A,H
    AレジスタにHレジスタの値を入れる。
  • 7D: LD A,L
    AレジスタにLレジスタの値を入れる。
  • 7E: LD A,(HL)
    Aレジスタに、メモリのアドレスHLに記憶されている数値(8ビット)を入れる。
  • 7F: LD A,A
    AレジスタにAレジスタの値を入れる。

80〜8F

  • 80: ADD A,B
    Aレジスタの値とBレジスタの値の和を、Aレジスタに入れる。
  • 81: ADD A,C
    Aレジスタの値とCレジスタの値の和を、Aレジスタに入れる。
  • 82: ADD A,D
    Aレジスタの値とDレジスタの値の和を、Aレジスタに入れる。
  • 83: ADD A,E
    Aレジスタの値とEレジスタの値の和を、Aレジスタに入れる。
  • 84: ADD A,H
    Aレジスタの値とHレジスタの値の和を、Aレジスタに入れる。
  • 85: ADD A,L
    Aレジスタの値とLレジスタの値の和を、Aレジスタに入れる。
  • 86: ADD A,(HL)
    Aレジスタの値とメモリアドレスHLに記憶されている値の和を、Aレジスタに入れる。
  • 87: ADD A,A
    Aレジスタの値とAレジスタの値の和を、Aレジスタに入れる。つまり、Aを2倍にする。
  • 88: ADC A,B
    Aレジスタの値にBレジスタの値を加え、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を加えたものを、Aレジスタに入れる。
  • 89: ADC A,C
    Aレジスタの値にCレジスタの値を加え、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を加えたものを、Aレジスタに入れる。
  • 8A: ADC A,D
    Aレジスタの値にDレジスタの値を加え、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を加えたものを、Aレジスタに入れる。
  • 8B: ADC A,E
    Aレジスタの値にEレジスタの値を加え、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を加えたものを、Aレジスタに入れる。
  • 8C: ADC A,H
    Aレジスタの値にHレジスタの値を加え、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を加えたものを、Aレジスタに入れる。
  • 8D: ADC A,L
    Aレジスタの値にLレジスタの値を加え、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を加えたものを、Aレジスタに入れる。
  • 8E: ADC A,(HL)
    Aレジスタの値にメモリアドレスHLに記憶されている値を加え、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を加えたものを、Aレジスタに入れる。
  • 8F: ADC A,A
    Aレジスタの値にAレジスタの値を加え、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を加えたものを、Aレジスタに入れる。

90〜9F

  • 90: SUB B
    Aレジスタの値とBレジスタの値の差を、Aレジスタに入れる。
  • 91: SUB C
    Aレジスタの値とCレジスタの値の差を、Aレジスタに入れる。
  • 92: SUB D
    Aレジスタの値とDレジスタの値の差を、Aレジスタに入れる。
  • 93: SUB E
    Aレジスタの値とEレジスタの値の差を、Aレジスタに入れる。
  • 94: SUB H
    Aレジスタの値とHレジスタの値の差を、Aレジスタに入れる。
  • 95: SUB L
    Aレジスタの値とLレジスタの値の差を、Aレジスタに入れる。
  • 96: SUB (HL)
    Aレジスタの値とメモリアドレスHLに記憶されている値の差を、Aレジスタに入れる。
  • 97: SUB A
    Aレジスタの値とAレジスタの値の差(= 0)を、Aレジスタに入れる。
  • 98: SBC A,B
    Aレジスタの値からBレジスタの値を引き、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を引いたものを、Aレジスタに入れる。
  • 99: SBC A,C
    Aレジスタの値からCレジスタの値を引き、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を引いたものを、Aレジスタに入れる。
  • 9A: SBC A,D
    Aレジスタの値からDレジスタの値を引き、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を引いたものを、Aレジスタに入れる。
  • 9B: SBC A,E
    Aレジスタの値からEレジスタの値を引き、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を引いたものを、Aレジスタに入れる。
  • 9C: SBC A,H
    Aレジスタの値からHレジスタの値を引き、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を引いたものを、Aレジスタに入れる。
  • 9D: SBC A,L
    Aレジスタの値からLレジスタの値を引き、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を引いたものを、Aレジスタに入れる。
  • 9E: SBC A,(HL)
    Aレジスタの値からメモリアドレスHLに記憶されている値を引き、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を引いたものを、Aレジスタに入れる。
  • 9F: SBC A,A
    Aレジスタの値からAレジスタの値を引き、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を引いたものを、Aレジスタに入れる。

A0〜AF

  • A0: AND B
    Aレジスタの値とBレジスタの値の論理積を、Aレジスタに入れる。
  • A1: AND C
    Aレジスタの値とBレジスタの値の論理積を、Aレジスタに入れる。
  • A2: AND D
    Aレジスタの値とBレジスタの値の論理積を、Aレジスタに入れる。
  • A3: AND E
    Aレジスタの値とBレジスタの値の論理積を、Aレジスタに入れる。
  • A4: AND H
    Aレジスタの値とBレジスタの値の論理積を、Aレジスタに入れる。
  • A5: AND L
    Aレジスタの値とBレジスタの値の論理積を、Aレジスタに入れる。
  • A6: AND (HL)
    Aレジスタの値とメモリアドレスHLに記憶されている値の論理積を、Aレジスタに入れる。
  • A7: AND A
    Aレジスタの値とBレジスタの値の論理積を、Aレジスタに入れる。
  • A8: XOR B
    Aレジスタの値とBレジスタの値の排他的論理和を、Aレジスタに入れる。
  • A9: XOR C
    Aレジスタの値とCレジスタの値の排他的論理和を、Aレジスタに入れる。
  • AA: XOR D
    Aレジスタの値とDレジスタの値の排他的論理和を、Aレジスタに入れる。
  • AB: XOR E
    Aレジスタの値とEレジスタの値の排他的論理和を、Aレジスタに入れる。
  • AC: XOR H
    Aレジスタの値とHレジスタの値の排他的論理和を、Aレジスタに入れる。
  • AD: XOR L
    Aレジスタの値とLレジスタの値の排他的論理和を、Aレジスタに入れる。
  • AE: XOR (HL)
    Aレジスタの値とメモリアドレスHLに記憶されている値の排他的論理和を、Aレジスタに入れる。
  • AF: XOR A
    Aレジスタの値とAレジスタの値の排他的論理和を、Aレジスタに入れる。

B0〜BF

  • B0: OR B
    Aレジスタの値とBレジスタの値の論理和を、Aレジスタに入れる。
  • B1: OR C
    Aレジスタの値とCレジスタの値の論理和を、Aレジスタに入れる。
  • B2: OR D
    Aレジスタの値とDレジスタの値の論理和を、Aレジスタに入れる。
  • B3: OR E
    Aレジスタの値とEレジスタの値の論理和を、Aレジスタに入れる。
  • B4: OR H
    Aレジスタの値とHレジスタの値の論理和を、Aレジスタに入れる。
  • B5: OR L
    Aレジスタの値とLレジスタの値の論理和を、Aレジスタに入れる。
  • B6: OR (HL)
    Aレジスタの値とメモリアドレスHLに記憶されている値の論理和を、Aレジスタに入れる。
  • B7: OR A
    Aレジスタの値とAレジスタの値の論理和を、Aレジスタに入れる。
  • B8: CP B
    Aレジスタの値とBレジスタの値が一致するかしないかを調べる。
  • B9: CP C
    Aレジスタの値とCレジスタの値が一致するかしないかを調べる。
  • BA: CP D
    Aレジスタの値とDレジスタの値が一致するかしないかを調べる。
  • BB: CP E
    Aレジスタの値とEレジスタの値が一致するかしないかを調べる。
  • BC: CP H
    Aレジスタの値とHレジスタの値が一致するかしないかを調べる。
  • BD: CP L
    Aレジスタの値とLレジスタの値が一致するかしないかを調べる。
  • BE: CP (HL)
    Aレジスタの値とメモリアドレスHLに記憶されている値が一致するかしないかを調べる。
  • BF: CP A
    Aレジスタの値とAレジスタの値が一致するかしないかを調べる。

C0〜CF

  • C6 n: ADD A,n
    Aレジスタの値と任意の数値nの和を、Aレジスタに入れる。
  • CE n: ADC A,n
    Aレジスタの値に任意の数値nを加え、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を加えたものを、Aレジスタに入れる。

D0〜DF

  • D6: SUB n
    Aレジスタの値と任意の数値nの差を、Aレジスタに入れる。
  • DE n: SBC A,n
    Aレジスタの値から任意の数値nを引き、さらにキャリーフラグ(2進数表示のフラグレジスタの1桁目)を引いたものを、Aレジスタに入れる。

E0〜EF

  • E6 n: AND n
    Aレジスタの値と任意の数値nの論理積を、Aレジスタに入れる。
  • EB: EX DE, HL
    DEレジスタの値とHLレジスタの値を交換する。
  • EE n: XOR n
    Aレジスタの値と任意の数値nの排他的論理和を、Aレジスタに入れる。

F0〜FF

  • F6 n: OR n
    Aレジスタの値と任意の数値nの論理和を、Aレジスタに入れる。
  • F9: LD SP,HL
    SPレジスタにHLレジスタの値を入れる。
  • FE n: CP n
    Aレジスタの値と任意の数値nが一致するかしないかを調べる。

 

Comments are closed.