R800の命令表

凡例
A{7}レジスターAの最上位ビット
A{4..7}レジスターAのビット4-7
;動作の区切り
DE:HL上位16ビットがDE、下位16ビットがHLにはいる、32ビット整数
(IX+d)IXに8ビットの符号つき変位を足した値が示すアドレス
Cキャリーフラグ
Zゼロフラグ
P/Vパリティー・オーバーフローフラグ
Sサインフラグ
N減算フラグ
Hハーフキャリーフラグ
●フラグは変化無しません
↕フラグは結果が反映されます
0フラグは0
1フラグは1
?不定になる
Vオーバーフローフラグとして使われます
Pパリティーフラグとして使われます
IFF割り込みフリップフロップの値が入ります
r,r'8ビットレジスター、A,B,C,D,E,H,L
u,u'8ビットレジスター、A,B,C,D,E,IXH,IXL
v,v'8ビットレジスター、A,B,C,D,E,IYH,IYL
p8ビットレジスター、IXH,IXL
q8ビットレジスター、IYH,IYL
ss16ビットレジスター、BC,DE,HL,SP
pp16ビットレジスター、BC,DE,IX,SP
rr16ビットレジスター、BC,DE,IY,SP
qq16ビットレジスター、BC,DE,HL,AF
ejr系の命令の飛び先アドレスへの差分、8ビットの符号つき即値(+127~-128)
kRST命令の飛び先アドレス、00h,08h,10h,18h,20h,28h,30h,38h
nn16ビットの即値、もしくは絶対アドレス
n8ビットの即値
bビット演算命令の第何ビットかを示す値
NOTビットを反転します
∨ビットのORをとります
∨ビットのXORをとります
∧ビットのANDをとります
tmp一時的に値を退避します
B命令のバイト数
C命令の実行に必要な最小クロック数

 分岐命令、コール命令でクロック数が2つかいてあるものは
上が条件が成立しない時、下が条件が成立したときです
 入出力命令でクロック数が2つかいてあるものは
上がまだ転送がおわらない時、下が転送がおわった時です
ニーモニックはZilog表記に変更しています
8ビット移動命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
LD r,r'r←r'●●●●●●01rr'11
LD r,nr←n●●●●●●00r11022
←n→
LD r,(HL)r←(HL)●●●●●●01r11012
LD r,(IX+d)r←(IX+d)●●●●●●11011101DD35
01r110
←d→
LD r,(IY+d)r←(IY+d)●●●●●●11111101FD35
01r110
←d→
LD (HL),r(HL)←r●●●●●●01110r12
LD (IX+d),r(IX+d)←r●●●●●●11011101DD35
01110r
←d→
LD (IY+d),r(IY+d)←r●●●●●●11111101FD35
01110r
←d→
LD u,u'u←u'●●●●●●11011101DD22
01uu'
LD v,v'v←v'●●●●●●11111101FD22
01vv'
LD u,nu←n●●●●●●11011101DD33
00u110
←n→
LD v,nv←n●●●●●●11111101FD33
00v110
←n→
LD (HL),n(HL)←n●●●●●●001101103623
←n→
LD (IX+d),n(IX+d)←n●●●●●●11011101DD
36
45
00110110
←d→
←n→
LD (IX+d),n(IX+d)←n●●●●●●11011101DD
36
45
00110110
←d→
←n→
LD A,IA←I↕↕0IFF0●11101101ED
57
22
01010111
LD A,RA←R↕↕0IFF0●11101101ED
5F
22
01011111
LD I,AI←A●●●●●●11101101ED
47
22
01000111
LD R,AR←A●●●●●●11101101ED
4F
22
01000111
LD A,(BC)A←(BC)●●●●●●000010100A12
LD A,(DE)A←(DE)●●●●●●000110101A12
LD A,(nn)A←(nn)●●●●●●001110103A34
←nnl→
←nnh→
LD (BC),A(BC)←A●●●●●●000000100212
LD (DE),A(DE)←A●●●●●●000100101212
LD (nn),A(nn)←A●●●●●●001100103234
←nnl→
←nnh→
 
 000001010011100101110111
rBCDEHL A
uBCDEIXHIYH A
vBCDEIYHIYL A
 
16ビット移動命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
LD ss,nnss←nn●●●●●●00ss000133
←nnl→
←nnh→
LD IX,nnIX←nn●●●●●●11011101DD
21
44
00100001
←nnl→
←nnh→
LD IY,nnIY←nn●●●●●●11111101FD
21
44
00100001
←nnl→
←nnh→
LD sp,HLsp←HL●●●●●●11111001F911
LD sp,IXsp←IX●●●●●●11011101DD
F9
22
11111011
LD sp,IYsp←IY●●●●●●11111101FD
F9
22
11111011
LD ss,(nn)ssh←(nn+1)
ssl←(nn)
●●●●●●11101101ED46
01ss1011
←nnl→
←nnh→
LD HL,(nn)H←(nn+1)
L←(nn)
●●●●●●001010102A35
←nnl→
←nnh→
LD IX,(nn)IXH←(nn+1)
IXL←(nn)
●●●●●●11011101DD
2A
46
00101010
←nnl→
←nnh→
LD IY,(nn)IYH←(nn+1)
IYL←(nn)
●●●●●●11111101FD
2A
46
00101010
←nnl→
←nnh→
LD (nn),ss(nn+1)←ssh
(nn)←ssl
●●●●●●11101101ED46
01ss0011
←nnl→
←nnh→
LD (nn),HL(nn+1)←H
(nn)←L
●●●●●●001000102235
←nnl→
←nnh→
LD (nn),IX(nn+1)←IXH
(nn)←IXL
●●●●●●11011101DD
22
46
00100010
←nnl→
←nnh→
LD (nn),IY(nn+1)←IYH
(nn)←IYL
●●●●●●11111101FD
22
46
00100010
←nnl→
←nnh→
 
 00011011
ssBCDEHLSP
 
交換命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
EX DE,HLDE←→HL●●●●●●11101011EB11
EX AF,AF'AF←→AF'↕↕↕↕↕↕000010000811
EX (sp),HLL←→(sp);H←→(sp+1)●●●●●●11100011E315
EX (sp),IXIXL←→(sp);IXH←→(sp+1)●●●●●●11011101DD
E3
26
11100011
EX (sp),IYIYL←→(sp);IYH←→(sp+1)●●●●●●11111101FD
E3
26
11100011
EXXBC←→BC';DE←→DE';HL←→HL'●●●●●●11011001D911
 
スタック操作命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
PUSH qq(sp-2)←qql;(sp-1)←qqh
sp←sp-2
●●●●●●11qq010114
PUSH IX(sp-2)←IXL;(sp-1)←IXH
sp←sp-2
●●●●●●11011101DD
E5
25
11100101
PUSH IY(sp-2)←IYL;(sp-1)←IYH
sp←sp-2
●●●●●●11111101FD
E5
25
11100101
POP qqqql←(sp);qqh←(sp+1)
sp←sp+2
●●●●●●11qq000113
POP IXIXL←(sp);IXH←(sp+1)
sp←sp+2
●●●●●●11011101DD
E1
24
11100001
POP IYIYL←(sp);IYH←(sp+1)
sp←sp+2
●●●●●●11011101DD
E1
24
11100001
 
 00011011
qqBCDEHLAF
POP AFの時はflagsはすべて変化します
 
ブロック転送命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
LDI(DE)←(HL);DE←DE+1
HL←HL+1;BC←BC-1
●●0↕
*1
0●11101101ED
A0
24
10100000
LDD(DE)←(HL);DE←DE-1
HL←HL-1;BC←BC-1
●●0↕
*1
0●11101101ED
A8
24
10101000
LDIRrepeat;(DE)←(HL);DE←DE+1
HL←HL+1;BC←BC-1;until BC=0
●●000●11101101ED
B0
24
10110000
LDDRrepeat;(DE)←(HL);DE←DE-1
HL←HL+-;BC←BC-1;until BC=0
●●000●11101101ED
B8
24
10111000
*1 (減算後の)BC=0のとき0、その他1
 
ブロックサーチ命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
CPIA-[HL];HL←HL+1
BC←BC-1
↕↕
*2
↕↕
*1
1●11101101ED
A1
24
11100001
CPDA-(HL);HL←HL-1
BC←BC-1
↕↕
*2
↕↕
*1
1●11101101ED
A9
24
10101001
CPIRrepeat;A-(HL);HL←HL+1
BC←BC-1;until BC=0 OR A=(HL)
↕↕
*2
↕↕
*1
1●11101101ED
B1
25
10110001
CPDRrepeat;A-(HL);HL←HL-1
BC←BC-1;until BC=0 OR A=(HL)
↕↕
*2
↕↕
*1
1●11101101ED
B9
25
10111001
*1 (減算後の)BC=0のとき0、その他1
*2 A=(HL)のとき1、その他0
 
加算命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
ADD A,rA←A+r↕↕↕v0↕10000r11
ADD A,pA←A+p↕↕↕v0↕11011101DD22
10000p
ADD A,qA←A+q↕↕↕v0↕11111101FD22
10000q
ADD A,(HL)A←A+(HL)↕↕↕v0↕100001108612
ADD A,(IX+d)A←A+(IX+d)↕↕↕v0↕11011101DD
86
35
10000110
←d→
ADD A,(IY+d)A←A+(IY+d)↕↕↕v0↕11111101FD
86
35
10000110
←d→
ADD A,nA←A+n↕↕↕v0↕11000110C622
←n→
ADC A,rA←A+r+C↕↕↕v0↕10001r11
ADC A,pA←A+p+C↕↕↕v0↕11011101DD22
10001p
ADC A,qA←A+q+C↕↕↕v0↕11111101FD22
10001q
ADC A,(HL)A←A+(HL)+C↕↕↕v0↕100011108E12
ADC A,(IX+d)A←A+(IX+d)+C↕↕↕v0↕11011101DD
8E
35
10001110
←d→
ADC A,(IY+d)A←A+(IY+d)+C↕↕↕v0↕11111101FD
8E
35
10001110
←d→
ADC A,nA←A+n+C↕↕↕v0↕11001110CE22
←n→
ADC HL,ssHL←HL+ss+C↕↕?v0↕11101101ED22
01ss1010
ADD HL,ssHL←HL+ss●●?●0↕00ss100111
ADD IX,ppIX←IX+pp●●?●0↕11011101DD22
00pp1001
ADD IY,rrIY←IY+rr●●?●0↕11111101FD22
00rr1001
INC rr←r+1↕↕↕v0●00r10011
INC pp←p+1↕↕↕v0●11011101DD22
00p100
INC qq←q+1↕↕↕v0●11111101FD22
00q100
INC (HL)(HL)←(HL)+1↕↕↕v0●001101003414
INC (IX+d)(IX+d)←(IX+d)+1↕↕↕v0●11011101DD
34
37
00110100
←d→
INC (IY+d)(IY+d)←(IY+d)+1↕↕↕v0●11111101FD
34
37
00110100
←d→
INC ssss←ss+1●●●●●●00ss001111
INC IXIX←IX+1●●●●●●11011101DD
23
22
00100011
INC IYIY←IY+1●●●●●●11111101FD
23
22
00100011
 
 00011011
ssBCDEHLSP
ppBCDEIXSP
rrBCDEIYSP
 000001010011100101110111
p    IXHIXL  
q    IYHIYL  
 
減算命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
SUB A,rA←A-r↕↕↕v1↕10010r11
SUB A,pA←A-p↕↕↕v1↕11011101DD22
10010p
SUB A,qA←A-q↕↕↕v1↕11111101FD22
10010q
SUB A,(HL)A←A-(HL)↕↕↕v1↕100101109612
SUB A,(IX+d)A←A-(IX+d)↕↕↕v1↕11011101DD
96
35
10010110
←d→
SUB A,(IY+d)A←A-(IY+d)↕↕↕v1↕11111101FD
96
35
10010110
←d→
SUB A,nA←A-n↕↕↕v1↕11010110D622
←n→
SBC A,rA←A-r-C↕↕↕v1↕10011r11
SBC A,pA←A-p-C↕↕↕v1↕11011101DD22
10011p
SBC A,qA←A-q-C↕↕↕v1↕11111101FD22
10011q
SBC A,(HL)A←A-(HL)-C↕↕↕v1↕100111109E12
SBC A,(IX+d)A←A-(IX+d)-C↕↕↕v1↕11011101DD
9E
35
10011110
←d→
SBC A,(IY+d)A←A-(IY+d)-C↕↕↕v1↕11111101FD
9E
35
10011110
←d→
SBC A,nA←A-n-C↕↕↕v1↕11011110DE22
←n→
SBC HL,ssHL←HL-ss-C↕↕?v1↕11101101ED22
01ss0010
DEC rr←r-1↕↕↕v1●00r10111
DEC pp←p-1↕↕↕v1●11011101DD22
00p101
DEC qq←q-1↕↕↕v1●11111101FD22
00q101
DEC (HL)(HL)←(HL)-1↕↕↕v1●001101013514
DEC (IX+d)(IX+d)←(IX+d)-1↕↕↕v1●11011101DD
35
37
00110101
←d→
DEC (IY+d)(IY+d)←(IY+d)-1↕↕↕v1●11111101FD
35
37
00110101
←d→
DEC ssss←ss-1●●●●●●00ss101111
DEC IXIX←IX-1●●●●●●11011101DD
2B
22
00101011
DEC IYIY←IY-1●●●●●●11111101FD
2B
22
00101011
 
論理演算命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
AND A,rA←A∧r↕↕1P0010100r11
AND A,pA←A∧p↕↕1P0011011101DD22
10100p
AND A,qA←A∧q↕↕1P0011111101FD22
10100q
AND A,(HL)A←A∧(HL)↕↕1P0010100110A612
AND A,(IX+d)A←A∧(IX+d)↕↕1P0011011101DD
A6
35
10100110
←d→
AND A,(IY+d)A←A∧(IY+d)↕↕1P0011111101FD
A6
35
10100110
←d→
AND A,nA←A∧n↕↕1P0011100110E622
←n→
OR A,rA←A∨r↕↕0P0010110r11
OR A,pA←A∨p↕↕0P0011011101DD22
10110p
OR A,qA←A∨q↕↕0P0011111101FD22
10110q
OR A,(HL)A←A∨(HL)↕↕0P0010110110B612
OR A,(IX+d)A←A∨(IX+d)↕↕0P0011011101DD
B6
35
10110110
←d→
OR A,(IY+d)A←A∨(IY+d)↕↕0P0011111101FD
B6
35
10110110
←d→
OR A,nA←A∨n↕↕0P0011110110F622
←n→
XOR A,rA←A∨r↕↕0P0010101r11
XOR A,pA←A∨p↕↕0P0011011101DD22
10101p
XOR A,qA←A∨q↕↕0P0011111101FD22
10101q
XOR A,(HL)A←A∨(HL)↕↕0P0010101110AE12
XOR A,(IX+d)A←A∨(IX+d)↕↕0P0011011101DD
AE
35
10101110
←d→
XOR A,(IY+d)A←A∨(IY+d)↕↕0P0011111101FD
AE
35
10101110
←d→
XOR A,nA←A∨n↕↕0P0011101110EE22
←n→
CMP A,rA-r↕↕↕v1↕10111r11
CMP A,pA-p↕↕↕v1↕11011101DD22
10111p
CMP A,qA-q↕↕↕v1↕11111101FD22
10111q
CMP A,(HL)A-(HL)↕↕↕v1↕10111110BE12
CMP A,(IX+d)A-(IX+d)↕↕↕v1↕11011101DD
BE
35
10111110
←d→
CMP A,(IY+d)A-(IY+d)↕↕↕v1↕11111101FD
BE
35
10111110
←d→
CMP A,nA-n↕↕↕v1↕11111110FE22
←n→
 
乗算命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
mulub A,rHL←A*r0↕●0●↕11101101ED214
11r001
muluw HL,ssDE:HL←HL*ss0↕●0●↕11101101ED236
11ss0011
mulubではrがb,c,d,eのとき以外は動作が保証されない
 ZはHL=0のとき1、その他は0
 Cは結果が8BITに収まらない(h!=0)とき1、その他0
muluwではssがBC,spのとき以外は動作が保証されない
 ZはDE:HL=0のとき1、その他は0
 Cは結果が16BITに収まらない(DE!=0)とき1、その他0
 
ビット操作命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
BIT b,rz←NOT r{b}?↕1?0●11001011CB22
01br
BIT b,(HL)z←NOT (HL){b}?↕1?0●11011011CB23
01b110
BIT b,(IX+d)z←NOT (IX+d){b}?↕1?0●11011101DD
CB
45
11001011
←d→
01b110
BIT b,(IY+d)z←NOT (IY+d){b}?↕1?0●11111101FD
CB
45
11001011
←d→
01b110
SET b,rr{b}←1●●●●●●11001011CB22
11br
SET b,(HL)(HL){b}←1●●●●●●11001011CB25
11b110
SET b,(IX+d)(IX+d){b}←1●●●●●●11011101DD
CB
47
11001011
←d→
11b110
SET b,(IY+d)(IY+d){b}←1●●●●●●11111101FD
CB
47
11001011
←d→
11b110
RES b,rr{b}←0●●●●●●11001011CB22
10br
RES b,(HL)(HL){b}←0●●●●●●11001011CB25
10b110
RES b,(IX+d)(IX+d){b}←0●●●●●●11011101DD
CB
47
11001011
←d→
10b110
RES b,(IY+d)(IY+d){b}←0●●●●●●11111101FD
CB
37
11001011
←d→
10b110
 
ローテイト命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
RLAC←A{7};A←A*2;A{0}←c●●0●0↕000001110711
RRAC←A{0};A←A/2;A{7}←c●●0●0↕000011110F11
RLCAtmp←C;C←A{7};A←A*2;A{0}←tmp●●0●0↕000101111711
RRCAtmp←c;c←A{0};A←A/2;A{7}←tmp●●0●0↕000111111F11
RLC rC←r{7}
r←r*2;r{0}←C
●●0●0↕11001011CB22
00000r
RLC (HL)C←(HL){7}
(HL)←(HL)*2;(HL){0}←C
●●0●0↕11001011CB
06
25
00000110
RLC (IX+d)C←(IX+d){7}
(IX+d)←(IX+d)*2;(IX+d){0}←C
●●0●0↕11011101DD
CB

06
47
11001011
←d→
00000110
RLC (IY+d)C←(IY+d){7}
(IY+d)←(IY+d)*2;(IY+d){0}←C
●●0●0↕11111101FD
CB

06
47
11001011
←d→
00000110
RRC rC←r{0}
r←r/2;r{7}←c
↕↕0P0↕11001011CB22
00001r
RRC (HL)C←(HL){0}
(HL)←(HL)/2;(HL){7}←c
↕↕0P0↕11001011CB
0E
25
00001110
RRC (IX+d)C←(IX+d){0}
(IX+d)←(IX+d)/2;(IX+d){7}←c
↕↕0P0↕11011101DD
CB

0E
47
11001011
←d→
00001110
RRC (IY+d)C←(IY+d){0}
(IY+d)←(IY+d)/2;(IY+d){7}←c
↕↕0P0↕11111101FD
CB

0E
47
11001011
←d→
00001110
RL rtmp←C;C←r{7}
r←r*2;r{0}←tmp
↕↕0P0↕11001011CB22
00010r
RL (HL)tmp←C;C←(HL){7}
(HL)←(HL)*2;(HL){0}←tmp
↕↕0P0↕11001011CB
16
25
00010110
RL (IX+d)tmp←C;C←(IX+d){7}
(IX+d)←(IX+d)*2;(IX+d){0}←tmp
↕↕0P0↕11011101DD
CB

16
47
11001011
←d→
00010110
RL (IY+d)tmp←C;C←(IY+d){7}
(IY+d)←(IY+d)*2;(IY+d){0}←tmp
↕↕0P0↕11111101FD
CB

16
47
11001011
←d→
00010110
RR rtmp←C;C←r{0}
r←r/2;r{7}←tmp
↕↕0P0↕11001011CB22
00011r
RR (HL)tmp←C;C←(HL){0}
(HL)←(HL)/2;(HL){7}←tmp
↕↕0P0↕11001011CB
1E
25
00011110
RR (IX+d)tmp←C;C←(IX+d){0}
(IX+d)←(IX+d)/2;(IX+d){7}←tmp
↕↕0P0↕11011101DD
CB

1E
47
11001011
←d→
00011110
RR (IY+d)tmp←C;C←(IY+d){0}
(IY+d)←(IY+d)/2;(IY+d){7}←tmp
↕↕0P0↕11111101FD
CB

1E
47
11001011
←d→
00011110
RLD (HL)tmp←A{0..3};A{0..3]←(HL){4..7}
(HL){4..7}←(HL){0..3};(HL){0..3}←tmp
↕↕0P0●11101101ED
6F
25
11101111
RRD (HL)tmp←A{0..3};A{0..3}←(HL){0..3}
(HL){0..3)←(HL){4..7);(HL){4..7)←tmp
↕↕0P0●11101101ED
67
25
11100111
 
シフト命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
SLA rC←r{7}
r←r*2
↕↕0P0↕11001011CB22
00100r
SLA (HL)C←(HL){7}
(HL)←(HL)*2
↕↕0P0↕11001011CB
26
25
00100110
SLA (IX+d)C←(IX+d){7}
(IX+d)←(IX+d)*2
↕↕0P0↕11011101DD
CB

26
47
11001011
←d→
00100110
SLA (IY+d)C←(IY+d){7}
(IY+d)←(IY+d)*2
↕↕0P0↕11111101FD
CB

26
47
11001011
←d→
00100110
SRL rC←r{0}
r←r/2
↕↕0P0↕11001011CB22
00111r
SRL (HL)C←(HL){0}
(HL)←(HL)/2
↕↕0P0↕11001011CB
3E
25
00111110
SRL (IX+d)C←(IX+d){0}
(IX+d)←(IX+d)/2
↕↕0P0↕11011101DD
CB

3E
47
11001011
←d→
00111110
SRL (IY+d)C←(IY+d){0}
(IY+d)←(IY+d)/2
↕↕0P0↕11111101FD
CB

3E
47
11001011
←d→
00111110
SRA rtmp←r;C←r{0}
r←r/2;r{7}←tmp
↕↕0P0↕11001011CB22
00101r
SRA (HL)tmp←(HL);C←(HL){0}
(HL)←(HL)/2;(HL){7}←tmp
↕↕0P0↕11001011CB
2E
25
00101110
SRA (IX+d)tmp←(IX+d);C←(IX+d){0}
(IX+d)←(IX+d)/2;(IX+d){7}←tmp
↕↕0P0↕11011101DD
CB

2E
47
11001011
←d→
00101110
SRA (IY+d)tmp←(IY+d);C←(IY+d){0}
(IY+d)←(IY+d)/2;(IY+d){7}←tmp
↕↕0P0↕11111101FD
CB

2E
47
11001011
←d→
00101110
SHL(zilog表記:SLA)命令とSHLA命令はまったく同じものなのでオペランドは同一
 
分岐命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
JP nnpc←nn●●●●●●11000011C333
←nnl→
←nnh→
JP NZ,nnif Z==0;pc←nn●●●●●●11000010C233
←nnl→
←nnh→
JP Z,nnif Z==1;pc←nn●●●●●●11001010CA33
←nnl→
←nnh→
JP NC,nnif C==0;pc←nn●●●●●●11010010D233
←nnl→
←nnh→
JP C,nnif C==1;pc←nn●●●●●●11011010DA33
←nnl→
←nnh→
JP PO,nnif PV==0;pc←nn●●●●●●11100010E233
←nnl→
←nnh→
JP PE,nnif PV==1;pc←nn●●●●●●11101010EA33
←nnl→
←nnh→
JP P,nnif S==0;pc←nn●●●●●●11110010F233
←nnl→
←nnh→
JP M,nnif S==1;pc←nn●●●●●●11111010FA33
←nnl→
←nnh→
JP (HL)pc←HL●●●●●●11101001E911
JP (IX)pc←IX●●●●●●11011101DD
E9
22
11101001
JP (IY)pc←IY●●●●●●11111101FD
E9
22
11101001
JR epc←pc+e●●●●●●000110001823
←e-2→
JR nz,eif z==0;
pc←pc+e
●●●●●●001000002022
3
←e-2→
JR z,eif z==1;
pc←pc+e
●●●●●●001010002822
3
←e-2→
JR nc,eif C==0;
pc←pc+e
●●●●●●001100003022
3
←e-2→
JR c,eif C==1;
pc←pc+e
●●●●●●001110003822
3
←e-2→
DJNZ eb←b-1;if b≠0
pc←pc+e
●●●●●●000100001022
←e-2→
 
コール命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
CALL nn(sp-2)←pcl;(sp-1)←pch
sp←SP-2;pc←nn
●●●●●●11001101CD35
←nnl→
←nnh→
CALL nz,nnif Z==0
(sp-2)←pcl;(sp-1)←pch
sp←SP-2;pc←nn
●●●●●●11000100C433
5
←nnl→
←nnh→
CALL z,nnif Z==1
(sp-2)←pcl;(sp-1)←pch
sp←SP-2;pc←nn
●●●●●●11001100CC33
5
←nnl→
←nnh→
CALL nc,nnif C==0
(sp-2)←pcl;(sp-1)←pch
sp←SP-2;pc←nn
●●●●●●11010100D433
5
←nnl→
←nnh→
CALL c,nnif C==1
(sp-2)←pcl;(sp-1)←pch
sp←SP-2;pc←nn
●●●●●●11011100DC33
5
←nnl→
←nnh→
CALL po,nnif PV==0
(sp-2)←pcl;(sp-1)←pch
sp←SP-2;pc←nn
●●●●●●11100100E433
5
←nnl→
←nnh→
CALL pe,nnif PV==1
(sp-2)←pcl;(sp-1)←pch
sp←SP-2;pc←nn
●●●●●●11101100EC33
5
←nnl→
←nnh→
CALL p,nnif S==0
(sp-2)←pcl;(sp-1)←pch
sp←SP-2;pc←nn
●●●●●●11110100F433
5
←nnl→
←nnh→
CALL m,nnif S==1
(sp-2)←pcl;(sp-1)←pch
sp←SP-2;pc←nn
●●●●●●11111100FC33
5
←nnl→
←nnh→
RETpcl←(sp);pch←(sp+1);sp←sp+2●●●●●●11001001C913
RET nzif Z==0
pcl←(sp);pch←(sp+1);sp←sp+2
●●●●●●11000000C011
3
RET zif Z==1
pcl←(sp);pch←(sp+1);sp←sp+2
●●●●●●11001000C811
3
RET ncif C==0
pcl←(sp);pch←(sp+1);sp←sp+2
●●●●●●11010000D011
3
RET cif C==1
pcl←(sp);pch←(sp+1);sp←sp+2
●●●●●●11011000D811
3
RET poif PV==0
pcl←(sp);pch←(sp+1);sp←sp+2
●●●●●●11100000E011
3
RET peif PV==1
pcl←(sp);pch←(sp+1);sp←sp+2
●●●●●●11101000E811
3
RET pif S==0
pcl←(sp);pch←(sp+1);sp←sp+2
●●●●●●11110000F011
3
RET mif S==1
pcl←(sp);pch←(sp+1);sp←sp+2
●●●●●●11111000F811
3
RETIinterrupt RETurn●●●●●●11101101ED
4D
25
01001101
RETNNon Maskable Interruput RETurn●●●●●●11101101ED
45
25
01000101
RST k(sp-2)←pcl;(sp-1)←pch
sp←sp-2;pc;←k;pch←0
●●●●●●11k/811114
 
入出力命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
IN A,(n)A←(n)●●●●●●11011011DB23
←n→
IN r,(c)r←(c)↕↕0P0●11101101ED23
01r000
IN F,(c)(c)↕↕0P0●11101101ED
70
23
01110000
INI(HL)←(c);b←b-1
HL←HL+1
?↕
*1
??1●11101101ED
A2
24
10100010
IND(HL)←c;b←b-1
HL←HL-1
?↕
*1
??1●11101101ED
AA
24
10101010
INIRrepeat;(HL)←(c);b←b-1
HL←HL+1;until b==0
?1??1●11101101ED
B2
24
3
10110010
INDRrepeat;(HL)←(c);b←b-1
HL←HL-1;until b==0
?1??1●11101101ED
BA
24
3
10111010
OUT (n),A(n)←A●●●●●●11010011D323
←n→
OUT (c),r(c)←r●●●●●●11101011ED23
01r001
OUTI(c)←(HL);b←b-1
HL←HL+1
?↕
*1
??1●11101101ED
A3
24
10100011
OUTD(c)←(HL);b←b-1
HL←HL-1
?↕
*1
??1●11101101ED
AB
24
10101011
OTIRrepeat;(c)←(HL);b←b-1
HL←HL+1;until b==0
?1??1●11101101ED
B3
24
3
10110011
OTDRrepeat;(c)←(HL);b←b-1
HL←HL-1;until b==0
?1??1●11101101ED
BB
24
3
10111011
*1 b-1==0のとき1、他は0
IN F,(c)はcレジスターが示すポートの内容によってフラグを変えるだけで、その内容はどこにも格納されません
 
CPU制御命令
ニーモニック命令動作flagsオペコードBC
SZHPNC76543210Hex
DAAAdjust to DECimal↕↕↕P●↕001001112711
CPLA←NOT A●●1●1●001011112F11
NEGA←NOT A+1↕↕↕V1↕11101101ED
44
22
01000100
CCFC←NOT C●●?●0↕001111113F11
SCFC←1●●0●01001101113711
NOPNO operAtion●●●●●●000000000011
HALTHALT●●●●●●011101107612
DIIFF←0●●●●●●11110011F312
EIIFF←1●●●●●●11111011FB11
IM 0interrupt mode 0●●●●●●11101101ED
46
23
01000110
IM 1interrupt mode 1●●●●●●11101101ED
56
23
01010110
IM 2interrupt mode 2●●●●●●11101101ED
5E
23
01011110

感想、要望、バグ報告、その他何かありましたら、メールもしくは掲示板にてご連絡ください。
裕之    
ホームに戻る