命令長
|
|
| 0x | 1x | 2x | 3x | 4x | 5x | 6x | 7x | |
| x0 | HLT | INC | INE | INL | JFC PPPP | JFS PPPP | JTC PPPP | JTS PPPP |
| x1 | - | DCC | DCE | DCL | INP 0 | OUT 10 | OUT 20 | OUT 30 |
| x2 | RLC | RAL | - | - | CFC PPPP | CFS PPPP | CTC PPPP | CTS PPPP |
| x3 | RFC | RFS | RTC | RTS | INP 1 | OUT 11 | OUT 21 | OUT 31 |
| x4 | ADI NN | SUI NN | NDI NN | ORI NN | JMP PPPP | - | - | - |
| x5 | RST 0 | RST 2 | RST 4 | RST 6 | INP 2 | OUT 12 | OUT 22 | OUT 32 |
| x6 | LAI NN | LCI NN | LEI NN | LLI NN | CAL PPPP | - | - | - |
| x7 | RET | - | - | - | INP 3 | OUT 13 | OUT 23 | OUT 24 |
| x8 | INB | IND | INH | - | JFZ PPPP | JFP PPPP | JTZ PPPP | JTP PPPP |
| x9 | DCB | DCD | DCH | - | INP 4 | OUT 14 | OUT 24 | OUT 34 |
| xA | RRC | RAR | - | - | CFZ PPPP | CFP PPPP | CTZ PPPP | CTP PPPP |
| xB | RFZ | RFP | RTZ | RTP | INP 5 | OUT 15 | OUT 25 | OUT 35 |
| xC | ACI NN | SBI NN | XRI NN | CPI NN | - | - | - | - |
| xD | RST 1 | RST 3 | RST 5 | RST 7 | INP 6 | OUT 16 | OUT 26 | OUT 36 |
| xE | LBI NN | LDI NN | LHI NN | LMI NN | - | - | - | - |
| xF | - | - | - | - | INP 7 | OUT 17 | OUT 27 | OUT 37 |
|
|
|
|
|
|
|
|
|
|
| x0 | ADA | SUA | NDA | ORA | LAA | LCA | LEA | LLA |
| x1 | ADB | SUB | NDB | ORB | LAB | LCB | LEB | LLB |
| x2 | ADC | SUC | NDC | ORC | LAC | LCC | LEC | LLC |
| x3 | ADD | SUD | NDD | ORD | LAD | LCD | LED | LLD |
| x4 | ADE | SUE | NDE | ORE | LAE | LCE | LEE | LLE |
| x5 | ADH | SUH | NDH | ORH | LAH | LCH | LEH | LLH |
| x6 | ADL | SUL | NDL | ORL | LAL | LCL | LEL | LLL |
| x7 | ADM | SUM | NDM | ORM | LAM | LCM | LEM | LLM |
| x8 | ACA | SBA | XRA | CPA | LBA | LDA | LHA | LMA |
| x9 | ACB | SBB | XRB | CPB | LBB | LDB | LHB | LMB |
| xA | ACC | SBC | XRC | CPC | LBC | LDC | LHC | LMC |
| xB | ACD | SBD | XRD | CPD | LBD | LDD | LHD | LMD |
| xC | ACE | SBE | XRE | CPE | LBE | LDE | LHE | LME |
| xD | ACH | SBH | XRH | CPH | LBH | LDH | LHH | LMH |
| xE | ACL | SBL | XRL | CPL | LBL | LDL | LHL | LML |
| xF | ACM | SBM | XRM | CPM | LBM | LDM | LHM | HLT |
| w=B..L , r=A..L , M=(HL) , I=Immidiate Byte : W1,W2,W3=バスサイクル1〜3におけるwait数 | ||||||||
|
命令 |
動作 |
|
|
イミーディエイト |
説明 |
|||
|
|
|
|
|
|
|
|||
| Lrop | r<-(op) | r1 | 10+ 2*W1 |
M | 16+ 2*W1+ 2*W2 |
|
16+ 2*W1+ 2*W2 |
opからレジスタへの転送 |
| LMop | (HL)<-(op) | r | 14+ 2*W1+ 2*W2 |
- |
|
|
18+ 2*W1+ 2*W2+ 2*W3 |
opからメモリへの転送 |
| INop | op<-(op)+1 | w | 10+ 2*W1 |
- |
|
|
|
レジスタをインクリメント |
| DCop | op<-(op)-1 | w |
|
- |
|
|
|
レジスタをデクリメント |
| ADop | A<-(A)+(op) | r | 10+ 2*W1 |
M | 16+ 2*W1+ 2*W2 |
|
16+ 2*W1+ 2*W2 |
AにopをAdd |
| ACr | A<-(A)+(op)+(Carry) | r |
|
M |
|
|
|
AにopとcarryをAdd |
| SUr | A<-(A)-(op) | r |
|
M |
|
|
|
AからopをSub |
| SBr | A<-(A)-(op)-(Carry) | r |
|
M |
|
|
|
AからopとborrowをSub |
| NDr | A<-(A)and(op) | r |
|
M |
|
|
|
Aとopをbit単位でand |
| XRr | A<-(A)eor(op) | r |
|
M |
|
|
|
Aとopをbit単位でeor |
| ORr | A<-(A)or(op) | r |
|
M |
|
|
|
Aとopをbit単位でor |
| CPr | (A)-(op) | r |
|
M |
|
|
|
AとopをCompair(flagのみ変化) |
| W1,W2,W3=バスサイクル1〜3におけるwait数 | |||
|
|
|
|
|
| RLC |
|
10+ 2*W1 |
Carryを含まない左ローテート |
| RRC |
|
|
Carryを含まない右ローテート |
| RAL |
|
|
Carryを含む左ローテート |
| RAR |
|
|
Carryを含む右ローテート |
| INP op | A<-IO(op) | 16+ 2*W1+ 2*W2 |
I/Oからの入力 |
| OUT op | IO(op)<-A | 12+ 2*W1+ 2*W2 |
I/Oへ出力 |
| HLT | PC<-(PC)+1;命令実行の停止 | 8+ 2*W1 |
停止 |
| W1,W2,W3=バスサイクル1〜3におけるwait数 | |||
|
|
|
|
|
| JMP op | PC<-op | 22+2*W1+2*W2+2*W3 | 無条件分岐 |
| JFC op | if C=0 : PC<-op | 22+2*W1+2*W2+2*W3 | 条件分岐 C=0 |
| if C=1 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| JFZ op | if Z=0 : PC<-op | 22+2*W1+2*W2+2*W3 | 条件分岐 Z=0 |
| if Z=1 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| JFS op | if S=0 : PC<-op | 22+2*W1+2*W2+2*W3 | 条件分岐 S=0 |
| if S=1 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| JFP op | if P=0 : PC<-op | 22+2*W1+2*W2+2*W3 | 条件分岐 P=0 |
| if P=1 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| JTC op | if C=1 : PC<-op | 22+2*W1+2*W2+2*W3 | 条件分岐 C=1 |
| if C=0 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| JTZ op | if Z=1 : PC<-op | 22+2*W1+2*W2+2*W3 | 条件分岐 Z=1 |
| if Z=0 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| JTS op | if S=1 : PC<-op | 22+2*W1+2*W2+2*W3 | 条件分岐 S=1 |
| if S=0 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| JTP op | if P=1 : PC<-op | 22+2*W1+2*W2+2*W3 | 条件分岐 P=1 |
| if P=0 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| W1,W2,W3=バスサイクル1〜3におけるwait数 | |||
|
|
|
|
|
| CAL op | PC->Stack;PC<-op | 22+2*W1+2*W2+2*W3 | サブルーチンコール |
| CFC op | if C=0 : PC->Stack;PC<-op | 22+2*W1+2*W2+2*W3 | 条件コール C=0 |
| if C=1 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| CFZ op | if Z=0 : PC->Stack;PC<-op | 22+2*W1+2*W2+2*W3 | 条件コール Z=0 |
| if Z=1 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| CFS op | if S=0 : PC->Stack;PC<-op | 22+2*W1+2*W2+2*W3 | 条件コール S=0 |
| if S=1 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| CFP op | if P=0 : PC->Stack;PC<-op | 22+2*W1+2*W2+2*W3 | 条件コール P=0 |
| if P=1 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| CTC op | if C=1 : PC->Stack;PC<-op | 22+2*W1+2*W2+2*W3 | 条件コール C=1 |
| if C=0 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| CTZ op | if Z=1 : PC->Stack;PC<-op | 22+2*W1+2*W2+2*W3 | 条件コール Z=1 |
| if Z=0 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| CTS op | if S=1 : PC->Stack;PC<-op | 22+2*W1+2*W2+2*W3 | 条件コール S=1 |
| if S=0 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| CTP op | if P=1 : PC->Stack;PC<-op | 22+2*W1+2*W2+2*W3 | 条件コール P=1 |
| if P=0 : PC<-(PC)+3 | 18+2*W1+2*W2+2*W3 | ||
| RST no | PC->Stack;PC<-no*8 | 10+2*W1 | 特定アドレスコール |
| W1,W2,W3=バスサイクル1〜3におけるwait数 | |||
|
|
|
|
|
| RET | PC<-(Stack) | 10+2*W1 | サブルーチンリターン |
| RFC | if C=0 : PC<-(Stack) | 10+2*W1 | 条件リターン C=0 |
| if C=1 : PC<-(PC)+3 | 6+2*W1 | ||
| RFZ | if Z=0 : PC<-(Stack) | 10+2*W1 | 条件リターン Z=0 |
| if Z=1 : PC<-(PC)+3 | 6+2*W1 | ||
| RFS | if S=0 : PC<-(Stack) | 10+2*W1 | 条件リターン S=0 |
| if S=1 : PC<-(PC)+3 | 6+2*W1 | ||
| RFP | if P=0 : PC<-(Stack) | 10+2*W1 | 条件リターン P=0 |
| if P=1 : PC<-(PC)+3 | 6+2*W1 | ||
| RTC | if C=1 : PC<-(Stack) | 10+2*W1 | 条件リターン C=1 |
| if C=0 : PC<-(PC)+3 | 6+2*W1 | ||
| RTZ | if Z=1 : PC<-(Stack) | 10+2*W1 | 条件リターン Z=1 |
| if Z=0 : PC<-(PC)+3 | 6+2*W1 | ||
| RTS | if S=1 : PC<-(Stack) | 10+2*W1 | 条件リターン S=1 |
| if S=0 : PC<-(PC)+3 | 6+2*W1 | ||
| RTP | if P=1 : PC<-(Stack) | 10+2*W1 | 条件リターン P=1 |
| if P=0 : PC<-(PC)+3 | 6+2*W1 | ||