命令長
|
|
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 |