| 00 | NOP | |
| 01 0203 | LXI B,0302 | |
| 02 | STAX B | store X だからメモリ書き込み命令じゃね? |
| 03 | INX B | IncrimentX B だから BC <= BC+1 じゃね? |
| 04 | INR B | B <= B+1 じゃね? |
| 05 | DCR B | B <= B-1 じゃね? |
| 06 07 | MVI B,07 | B <= 0x07 |
| 07 | RLC | Aを左ローテートじゃね? |
| 08 | ??? | 対応アセンブラなし |
| 09 | DAD B | なんだろこれ。 |
| 0a | LDAX B | A <= (BC) |
| 0b | DCX B | DecrimentX B, BC <= BC-1じゃないかな |
| 0c | INR C | Incriment C, C <= C+1じゃないかな |
| 0d | DCR C | Decriment C, C <= C-1じゃないかな |
| 0e 0f | MVI C,0F | C <= 0x0fじゃないかな |
| 0f | RRC | A <= A >> 1bitシフト |
| 10 11 | DJNZ C013 | 特殊条件ジャンプ命令? DJNZ e の事かな? Bをデクリメントして、 B=0ならジャンプするらしい |
| 11 1917 | LXI D,1917 | |
| 12 | stax D | (DE) <- A メモリ書き込み |
| 13 | INX D | Incriment(16bit) DE, DE <- DE+1かな? |
| 14 | INR D | Incriment D, D <- D+1かな? |
| 15 | DCR D | D <= D-1 |
| 16 17 | MVI D,17 | D <= 0x17 |
| 17 | RAL | A <= A << 1 A[0] <= 0? |
| 16 17 | MVI D,17 | D <- 0x17 かな? |
| 17 | RAL | Rotate A To Left?左論理シフト命令かな?? |
| 18 19 | JMPR C023 | PC <= PC + 0x19 + 2。相対ジャンプ |
| 19 | DAD D | なんだろこれ??? |
| 1a | LDAX D | A <= (DE) |
| 1b | DCX D | DE <= DE-1 |
| 1c | INR E | E <= E+1 |
| 1d | DCR E | E <= E-1 |
| 1e 1f | MVI E,1F | E <= 0x1f |
| 1f | RAR | A <= A>>1 |
| 20 21 | JRNZ C023 | PC <=if NC, PC + 0x21 + 2(相対ジャンプ) |
| 21 23 22 | LXI H,2322 | HL <= 0x2322 |
| 22 24 23 | SHLD 2423 | (2423) <= L, (2423+1) <= H |
| 23 | INX H | HL <= HL+1 |
| 24 | INR H | H <= H+1 |
| 25 | DCR H | H <= H-1 |
| 26 27 | MVI H,27 | H <= 0x27 |
| 27 | DAA | for decimal packed BCD演算関係らしいけど |
| 28 29 | JRZ C033 | PC <= PC + 0x29+2 c008からc033への相対ジャンプ |
| 29 | DAD H | (BCD演算関係???) |
| 2A 2C2B | LHLD 2c2b | 0x2c2b番地からLHレジスタに読み込み、らしい |
| 2B | DCX H | decriment HL |
| 2C | INR L | incriment L |
| 2D | DCR L | decriment L |
| 2e 2f | MVI L,2f | L <- 0x2f じゃね? |
| 2f | CMA | Complement acc. A 補数をA に入れる |
| 30 31 | JRNC C133 | If NC, PC<= 0x31 x 2 + 0x2 じゃないの? |
| 31 c7c4 | LXI SP,c7c4 | SP <= 0xc7c4 じゃないの? |
| 32 3433 | STA 3433 | 0x3433番地にAを書き込む |
| 33 | INX SP | |
| 34 | INR M | |
| 35 | DCR M | |
| 36 37 | MVI M,37 | |
| 37 | STC | Set Cary Flag。 |
| 38 39 | JRC C143 | |
| 39 | DAD SP | |
| 3a 3c3b | LDA 3c3b | |
| 3b | DCX SP | |
| 3c | INR A | |
| 3d | DCR A | |
| 3e 3f | MVI A,3f | |
| 3f | CMC | Complement CarryFlag キャリーフラグの1の補数をキャリーフラグに入れる |
| 40-47 | MOV B, B/C/D/E/H/L/M/A | |
| 48-4f | MOV C, B/C/D/E/H/L/M/A | |
| 50-57 | MOV D, B/C/D/E/H/L/M/A | |
| 58-5F | MOV E, B/C/D/E/H/L/M/A | |
| 60-67 | MOV H, B/C/D/E/H/L/M/A | |
| 68-6F | MOV L, B/C/D/E/H/L/M/A | |
| 70-75 | MOV M,B/C/D/E/H/L | |
| 76 | HLT | |
| 77 | MOV M,A | |
| 78-7F | MOV A,B/C/D/E/H/L/M/A | |
| 88-8f | ADD B/C/D/E/H/L/M/A | |
| 80-87 | ADC B/C/D/E/H/L/M/A | |
| 90-97 | SUB B/C/D/E/H/L/M/A | |
| 98-9F | SBB B/C/D/E/H/L/M/A | |
| A0-A7 | ANA B/C/D/E/H/L/M/A | Aレジスタと各レジスタをの論理積を取る、らしい |
| A8-AF | XRA B/C/D/E/H/L/M/A | Aレジスタと各レジスタをの排他的論理積を取る、らしい |
| B0-B7 | ORA B/C/D/E/H/L/M/A | Aレジスタと各レジスタをのORを取る、らしい |
| B8-BF | CMP B/C/D/E/H/L/M/A | |
| C0 | RNZ | return NZ の事じゃね? |
| C1 | POP B | |
| C2 C4C3 | JNZ C4C3 | Z=1の時ジャンプ? |
| C3 C7C4 | JMP C7C4 | 無条件絶対アドレス指定分岐かな? |
| C4 c7c7 | CNZ C7C4 | ジャンプ系命令だろうけど何だろこれ… |
| C5 | PUSH B | |
| C6 C7 | ADI C7 | たぶんAレジスタに即値 C7 を足すって意味じゃね? |
| C7 | RST 0 | |
| C8 | RZ | return Z の事じゃね? |
| C9 | RET | |
| CA CCCB | JZ CCCB | |
| CB xx | BIT b,(HL) Z ← (IX+d)b | |
| CB 00 07 | RLC A with carry, left rotate, C< = A[0] |
|
| CB 00 01-06 | RLC B/C/D/E/H/L/(HL) with carry, left rotate, C <= A[0] |
|
| CB 00 0f | RRC A, right rotate, A[7] <= A[0] A[n] <= A[n+1] C <= A[0] CB 00 (0000 1sss) sss=111:A, 000:B,001:C,010:D,011:E,100:H,101:L |
|
| CB 00 08-0F | RRC B/C/D/E/H/L/M/A | |
| CC 23CB | CZ 23cb | Call when Z の事じゃね? |
| CD CFCE | CALL CFCE | |
| CE CF | ACI CF | |
| CF | RST 1 | |
| D0 | RNC | return NC の事じゃね? |
| D1 | POP D | |
| D2 D4D3 | JNC D4D3 | |
| D3 D4 | OUT D4 | |
| D4 E3DC | CNC E3DC | call when C=1じゃね? |
| D5 | push D | |
| D6 D7 | SUI D7 | sub r の事らしい A <- A - 0xXX |
| D7 | RST 2 | |
| D8 | RC | return When C=1 の事じゃね? |
| D9 | exx, BC<->BC',DE<->DE',HL<->HL' を行う。非公開命令じゃん? |
|
| DA DCDB | JC DCDB | |
| db dc | IN DC | JC DCDB |
| DC c4e3 | CC c4e3 | call when C=1じゃないの? |
| DD 21 nn MM | LD IX,MMnn | レジスタIX <=固定値 0xMMnn IX <= 0xMMnn |
| DD 22 nn MM | LD IX,MMnn | メモリ(アドレス直接指定)<=レジスタの値 (0xMMnn) <= IX[7:0] (0xMMnn+1) <= IX[15:8] ちょっと変わってるなぁコレ。レジスタIXの値を メモリ 0xMMnn に書き込むらしい |
| DD 2A nn MM | LD IX,(MMnn) | レジスタ <= メモリ(アドレス直接指定) IX[7:0] <= (MMnn) IX[15:8] <= (MMnn+1) |
| DD 36 dd nn | LD (IX+0xdd),nn | メモリ(IX+オフセット指定) <= 即値 0xnn (IX+0xdd) <= 0xnn |
| DD 70-75/77 dd | LD (IX+0xdd),B/C/D/E/H/L/A | メモリ(IX+オフセット指定) <= レジスタ (IX + 0xdd) <= A |
| DE | (調査ミス、抜け) | |
| DF | SBI DF(調査ミス) | |
| E0 | RPO | Return POじゃね? |
| E1 | POP H | |
| E2 E4E3 | JPO E4E3 | jmp when PO |
| E3 | (調査ミス、抜け) | |
| E4 | CPO e7e3 | Call when PO の事じゃね? |
| E5 | PUSH H | |
| E6 e7 | ANI e7 | And n. A <- A and n |
| E7 | RST 4 | |
| E8 | RPE | return PE の事じゃね? |
| E9 | PCHL | jmp hl. PC <- HLのこと |
| Ea eceb | jpe eceb | |
| EB | XCHG | H<->D,L<->E |
| E9 | PCHL | jmp hl PC <- HLのこと |
| Ea eceb | jpe eceb | jump when PE=1 じゃね? |
| EB | XCHG | H<->D,L<->E |
| ec efeb | CPE efeb | CALL when PE=1 じゃね? |
| Ed xx | ??? | IN r,(C)相当らしい 11101101 01DDD000 |
| ee ef | xri ef | xor xx. A <- A xor xx |
| EF | RST 5 | |
| f0 | RP | return when P...じゃないのかな? |
| F1 | POP PSW | pop AF という事らしい。 |
| F2 F4F3 | JP F4F3 | |
| F3 | DI | Disable Interrpt flag(I<=0) |
| f4 F7F3 | CP f7f3 | |
| F5 | PUSH PSW | push AF という事らしい。 |
| F6 f7 | ORI F7 | |
| F7 | RST 6 | restart命令 |
| f8 | RM | なんだろこれw多分 returns memory(HL)って事だろうね |
| F9 | SPHL | exchange SP <-> HL って事じゃないの |
| fa fcfb | JM FCFB | Jamp memory's address って事だろうね |
| FB | EI | |
| fc fffb | CM fffb | call memory fffb 番地に書いてあるアドレス >って事じゃないの |
| FD 2A | ??? | LD IY,nnmm IY <= nnmm あってんのかなこれ・・・怪しいw |
| FD 21 nn MM | ??? | LD IY,MMnn レジスタIY <=固定値 0xMMnn IY <= 0xMMnn |
| FD 22 nn MM | ??? | LD (MMnn),IY メモリ(アドレス直接指定)<=レジスタの値 (0xMMnn) <= IY[7:0] (0xMMnn+1) <= IY[15:8] |
| FD 2A nn MM | ??? | LD IY,(MMnn) レジスタ <= メモリ(アドレス直接指定) IY[7:0] <= (MMnn) IY[15:8] <= (MMnn+1) |
| FD 36 dd nn | ??? | (IY+0xdd),nn メモリ(IY+オフセット指定) <= 即値 0xnn (IY+0xdd) <= 0xnn |
| FD 77/70-75 dd | ??? | LD (IY+0xdd),A/B/C/D/E/H/L メモリ(IY+オフセット指定) <= レジスタ (IY + 0xdd) <= A/B/C/D/E/H/L |
| FD 7e nn | ??? | LD A,(IY+0xnn) レジスタ<= メモリ(IY+オフセット指定) A <= (IY + 0xnn) |
| FD 46/4e/56/5e/66/6e nn | ??? | LD B/C/D/E/H/L,(IY+0xnn) (IY系未検証) |
| FE ff | CPI ff | |
| FF | RST 7 | restart命令。int命令だけどフラグは保存しないらしい SPにはPCを保存するらしい ジャンプ先は8かけるn? |
| mov | a, m | (HL) -> a の事らしいw |
| mov | m, a | a -> (HL) の事らしいw |
| LDA | 0000 | 0000番地をAに読み込む、という事らしいw |
| LXI | H,0 | HL <= 0000 となるらしい。 |
| LXI | D,ffff | DE <= ffff |
| LHLD | 2c2b | 0x2c2b番地からLHレジスタに読み込み、らしいw |
| mvi | a,12 | A <= 12 /td> |
| INR | A | A <= A + 1 |
| DCR | A | A <= A - 1 |
| ANA | B | A <= A and B |
| cpi | 34 | A - 34 の結果をフラグレジスタにセット |
| jmp | XXXX | XXXX番地にジャンプ |
|
レジスタ <= 数値セット 命令 |
MVI B/C/D/E/H/L/M/A,12 | B/C/D/E/H/L/(HL)/A <= 0x12 |
| LXI B/D/H/SP,0302 | BC/DE/HL/SP <= 0x0302 16bit | |
|
レジスタ <= メモリ、 ロード命令 |
LDA 0000 | 0000番地からAに読み込む、という事らしい |
| LHLD 2c2b | 0x2c2b番地からLHレジスタに読み込み、らしい | |
| LDAX B/D | A <= (BC)/(DE) | |
| SHLD 2423 | (2423) <= L, (2423+1) <= H | |
|
メモリ <= レジスタ、 ストア命令 |
STA 1234 | 0x1234番地にAレジスタの値を書き込む |
| STAX B/D | (BC)/(DE) <= A | |
|
インクリメント デクリメント命令 |
INR B/C/D/E/H/L/M/A | B/C/D/E/H/L/(HL)/A <= B/C/D/E/H/L/(HL)/A+1 | DCR B/C/D/E/H/L/M/A | B/C/D/E/H/L/(HL)/A <= B/C/D/E/H/L/(HL)/A-1 |
| INX B/D/H/SP | BC/DE/SP <= BC/DE/HL/SP+1 | |
| DCX B/D/H/SP | BC/DE/SP <= BC/DE/HL/SP-1 | |
| シフト命令 | RAL | A <= A<<1 |
| RAR | A <= A>>1 | RRC | A <= A>>1 | Carry8かな… |
| mvi | a,12 | |
| cpi | 11 | |
| jnc | 7ffc | 7ffc に飛ぶ。 |
| rst 7 | 7 |
| mvi | a,11 | |
| cpi | 12 | |
| jnc | 7ffc | |
| jmp | c007 | c007 の無限ループになる。 |
|
mon ac000 mvi b,40 in 9 ana b cpi 40 jnz c002 rst 7 (リターンで入力モード抜ける) gc000 |