Z380資料


1.定義命令

 ザイログニーモニック。
 Z380で追加定義された命令は、背景色を変えて記述。

#1#2#3
BC
DE
HL
IXIX
IXHIXL
IYIY
IYHIYL
A’F’
BC’B’C’
DE’D’E’
HL’H’L’
IX’IX’
IXH’IXL’
IY’IY’
IYH’IYL’
レジスタセット
SPSP
PCPC
SR

略称フラグ名称
サインフラグ(sf)
ゼロフラグ(zf)
ハーフキャリーフラグ
パリティ・オーバーフローフラグ(pf)
Pはパリティフラグとして
Vはオーバーフローフラグとして動作した事を示す
減算フラグ
キャリーフラグ(cf)
表記説明
 11に変化
 00に変化
 #演算結果に沿った変化
 ?不定
 -変化しない

 命令の増加により、一部命令の書式が変更されているものがある。

 IXレジスタを使用した命令のオペコードDDに色がついている場合、IYレジスタを使用した同一命令が存在する。オペコードはそのDDをFDに読み換える事。

8ビットロード命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
LD r,sr←s ------ 01   r     s  12 r,s Reg.
000 B 001 C
010 D 011 E
100 H 101 L
111 A
 
t Reg. u Reg.
000 B 100 IXH
001 C 101 IXL
010 D
011 E
100 IXH
101 IXL

111 A
LD t,ut←u ------ 11 011 101
01   t     u
DD
 
22
LD u,tu←t ------ 11 011 101
01   u     t
DD
 
22
LD r,nr←n ------ 00   r   110
--- n ---
 22
LD u,nu←n ------ 11 011 101
00   t   110
--- n ---
DD
 
 
32
LD r,(HL)r←(HL) ------ 01   r   110 12+r
LD r,(IX+d)r←(IX+d) ------ 11 011 101
01   r   110
--- d ---
DD34+r
LD (HL),r(HL)←r ------ 01 110   r 13+w
LD (IX+d),r(IX+d)←r ------ 11 011 101
01 110   r
--- d ---
DD35+w
LD (HL),n(HL)←n ------ 00 110 110
--- n ---
36
 
23+w
LD (IX+d),n(IX+d)←n ------ 11 011 101
00 110 110
--- d ---
--- n ---
DD
36
45+w
LD A,(BC)A←(BC) ------ 00 001 0100A12+r
LD A,(DE)A←(DE) ------ 00 011 0101A12+r
LD A,(mn)A←(mn) ------ 00 111 010
--- n ---
--- m ---
3A33+r
LD (BC),A(BC)←A ------ 00 000 0100213+w
LD (DE),A(DE)←A ------ 00 010 0101213+w
LD (mn),A(mn)←A ------ 00 110 010
--- n ---
--- m ---
3234+w
LD I,AI←A ------ 11 101 101
01 000 111
ED
47
22  
LD R,AR←A ------ 11 101 101
01 001 111
ED
4F
22
LD A,IA←I ##0IFF0- 11 101 101
01 010 111
ED
57
22
LD A,RA←R ##0IFF0- 11 101 101
01 011 111
ED
5F
22
LDCTL A,xsA←xs ------ 11 xs1 101
11 010 000
 
D0
24 xs Sys Reg.
01 XSR
10 DSR
11 YSR
LDCTL SR,ASR←A ------ 11 011 101
11 001 000
DD
C8
24
LDCTL xs,Axs←A ------ 11 xs1 101
11 011 000
 
D8
24
LDCTL SR,nSR←n ------ 11 011 101
11 001 010
--- n ---
DD
CA
 
34
LDCTL xs,nxs←n ------ 11 xs1 101
11 011 010
--- n ---
 
DA
 
34

16ビットロード命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
LD rs,rd
LDW rs,rd
rs←rd ------ 11 rs1 101
00 rd0 110
 22 rd,rr Reg. rs Reg.
00 BC   01 DE
01 DE   10 BC
11 HL   11 HL
 
rp Reg.
00 BC
01 DE
10 HL
11 SP
LD rd,IX
LDW rd,IX
rd←IX ------ 11 011 101
00 rd1 011
DD
 
22
LD IX,rd
LDW IX,rd
IX←rd ------ 11 011 101
00 rd0 111
DD
 
22
LD IX,IY
LDW IX,IY
IX←IY ------ 11 011 101
00 100 111
DD
27
22
LD IY,IX
LDW IY,IX
IY←IX ------ 11 111 101
00 100 111
FD
27
22
LD rp,mnrp←mn ------ 00 rp0 001
--- n ---
--- m ---
 32
LD IX,mnIX←mn ------ 11 011 101
00 100 001
--- n ---
--- m ---
DD
21
42
LD HL,(mn)L←(mn)
H←(mn+1)
------ 00 101 010
--- n ---
--- m ---
2A33+r
LD rp,(mn)rpL←(mn)
rpH←(mn+1)
------ 11 101 101
01 rp1 011
--- n ---
--- m ---
ED43+r
LD IX,(mn)IXL←(mn)
IXH←(mn+1)
------ 11 011 101
00 101 010
--- n ---
--- m ---
DD
2A
43+r
LD (mn),HL(mn)←L
(mn+1)←H
------ 00 100 010
--- n ---
--- m ---
2234+w
LD (mn),rp(mn)←rpL
(mn+1)←rpH
------ 11 101 101
01 rp0 011
--- n ---
--- m ---
ED44+w
LD (mn),IX(mn)←IXL
(mn+1)←IXH
------ 11 011 101
00 100 010
--- n ---
--- m ---
DD
22
44+w
LD rd,(rr)
LDW rd,(rr)
rdL←(rr)
rdH←(rr+1)
------ 11 011 101
00 rd1 1rr
DD
 
22+r
LD IX,(rr)
LDW IX,(rr)
IXL←(rr)
IXH←(rr+1)
------ 11 011 101
00 rr0 011
DD
 
22+r
LD rd,(IX+d)
LDW rd,(IX+d)
rdL←(IX+d)
rdH←(IX+d+1)
------ 11 011 101
11 001 011
--- d ---
00 rd0 011
DD
CB
 
 
44+r
LD IX,(IY+d)
LDW IX,(IY+d)
IXL←(IY+d)
IXH←(IY+d+1)
------ 11 111 101
11 001 011
--- d ---
00 100 011
FD
CB
 
23
44+r
LD IY,(IX+d)
LDW IY,(IX+d)
IYL←(IX+d)
IYH←(IX+d+1)
------ 11 011 101
11 001 011
--- d ---
00 100 011
DD
CB
 
23
44+r
LD rd,(SP+d)
LDW rd,(SP+d)
rdL←(SP+d)
rdH←(SP+d+1)
------ 11 011 101
11 001 011
--- d ---
00 rd0 001
DD
CB
 
 
44+r
LD IX,(SP+d)
LDW IX,(SP+d)
IXL←(SP+d)
IXH←(SP+d+1)
------ 11 011 101
11 001 011
--- d ---
00 100 001
DD
CB
 
21
44+r
LD (rr),rd
LDW (rr),rd
(rr)←rdL
(rr+1)←rdH
------ 11 111 101
00 rd1 1rr
FD
 
23+w
LD (rr),IX
LDW (rr),IX
(rr)←IXL
(rr+1)←IXH
------ 11 011 101
00 rr0 001
DD
 
23+w
LDW (rd),mn(rd)←n
(rd+1)←m
------ 11 101 101
00 rd0 110
--- n ---
--- m ---
ED43+w
LD (IX+d),rd
LDW (IX+d),rd
(IX+d)←rdL
(IX+d+1)←rdH
------ 11 011 101
11 001 011
--- d ---
00 rd1 011
DD
CB
 
 
45+w
LD (IY+d),IX
LDW (IY+d),IX
(IY+d)←IXL
(IY+d+1)←IXH
------ 11 111 101
11 001 011
--- d ---
00 101 011
FD
CB
 
2B
45+w
LD (IX+d),IY
LDW (IX+d),IY
(IX+d)←IYL
(IX+d+1)←IYH
------ 11 011 101
11 001 011
--- d ---
00 101 011
DD
CB
 
2B
45+w
LD (SP+d),rd
LDW (SP+d),rd
(SP+d)←rdL
(SP+d+1)←rdH
------ 11 011 101
11 001 011
--- d ---
00 rd1 001
DD
CB
 
 
45+w
LD (SP+d),IX
LDW (SP+d),IX
(SP+d)←IXL
(SP+d+1)←IXH
------ 11 011 101
11 001 011
--- d ---
00 101 001
DD
CB
 
29
45+w
LD SP,HLSP←HL ------ 11 111 001F912 
LD SP,IXSP←IX ------ 11 011 101
11 111 001
DD
F9
22
PUSH rqSP←SP-2
(SP)←rqL
(SP+1)←rqH
------ 11 rq0 101 13+w rq Reg.
00 BC
01 DE
10 HL
11 AF
PUSH IXSP←SP-2
(SP)←IXL
(SP+1)←IXH
------ 11 101 101
11 100 101
DD
E5
23+w
PUSH mnSP←SP-2
(SP)←n
(SP+1)←m
------ 11 111 101
11 110 101
--- n ---
--- n ---
FD
F5
43+w
PUSH SRSP←SP-2
(SP)←SRL
(SP+1)←SRH
------ 11 101 101
11 000 101
ED
C5
23+w
POP AFF←(SP)
A←(SP+1)
SP←SP+2
###### 11 110 001F112+r
POP rqrqL←(SP)
rqH←(SP+1)
SP←SP+2
------ 11 rq0 001 11+r
POP IXIXL←(SP)
IXH←(SP+1)
SP←SP+2
------ 11 101 101
11 101 001
DD
E1
21+r
POP SRSRL←(SP)
SRH←(SP+1)
SP←SP+2
------ 11 101 101
11 000 001
ED
C1
23+r
LD I,HL
LDW I,HL
I←HL ------ 11 011 101
01 000 111
DD
47
22  
LD HL,I
LDW HL,I
HL←I ------ 11 011 101
01 010 111
DD
57
22
LDCTL HL,SRHL←SR ------ 11 101 101
11 000 000
ED
C0
22  
LDCTL SR,HLSR←HL ------ 11 101 101
10 001 000
ED
C8
24

8ビット算術論理演算命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
ADD A,rA←A+r ###V0# 10 000   r 12 r Reg.
000 B 001 C
010 D 011 E
100 H 101 L
111 A
 
u Reg.
100 IXH
101 IXL
ADD A,uA←A+u ###V0# 11 011 101
10 000   u
DD
 
22
ADD A,nA←A+n ###V0# 11 000 110
--- n ---
 22
ADD A,(HL)A←A+(HL) ###V0# 10 000 110 12+r
ADD A,(IX+d)A←A+(IX+d) ###V0# 11 011 101
10 000 110
--- d ---
DD
 
 
34+r
ADC A,sA←A+s+cf ###V0# ** 001 ***    ADD命令と同様の
繰り返し
s=r,u,n,(HL),(IX+d),(IY+d)
SUB A,sA←A-s ###V1# ** 010 ***
SBC A,sA←A-s-cf ###V1# ** 011 ***
AND A,sA←A and s ##1P00 ** 100 ***
XOR A,sA←A xor s ##0P00 ** 101 ***
OR A,sA←A or s ##0P00 ** 110 ***
CP A,sA-s ###V1# ** 111 ***
INC AA←A+1 ###V0- 00 111 100 12 
INC rr←r+1 ###V0- 00   r   100 13
INC uu←u+1 ###V0- 11 011 101
00   u  100
DD
 
22
INC (HL)(HL)←(HL)+1 ###V0- 00 110 100 12+r+w
INC (IX+d)(IX+d)←
 (IX+d)+1
###V0- 11 011 011
00 110 100
--- d ---
DD34+r+w
DEC ss←s-1 ###V1- ** *** 101    INC命令と同様の
繰り返し
s=A,r,u,(HL),(IX+d),(IY+d)
TST rA and r ##1P00 11 101 101
00   r   100
ED
 
22 
TST (HL)A and (HL) ##1P00 11 101 101
00 110 100
ED
34
22
TST nA and n ##1P00 11 101 101
01 100 100
--- n ---
ED
64
 
32+r

論理演算の場合 偶数パリティ pf=1、奇数パリティ pf=0
算術演算の場合 オーバーフロー有り pf=1、オーバーフロー無し pf=0

16ビット算術論理演算命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
ADD HL,rpHL←HL+rp --#-0# 00 rp1 001 12 rp Reg.
00 BC
01 DE
10 HL
11 SP
 
rx Reg.
00 BC
01 DE
10 IX
11 SP
ADD IX,rxIX←IX+rx --#-0# 11 011 101
00 rx1 001
DD
 
22
ADD SP,mnSP←SP+mn --#-0# 11 101 101
10 000 010
--- n ---
--- m ---
ED
82
 
 
42
ADD HL,(mn)HL←HL+(mn) --#-0# 11 101 101
11 000 110
--- n ---
--- m ---
ED
C6
 
 
42+r
ADC HL,rpHL←
 HL+rp+cf
###V0# 11 101 101
01 rp1 010
ED
 
22
SUB SP,mnSP←SP-mn --#-1# 11 101 101
10 010 010
--- n ---
--- m ---
ED
92
 
 
42
SUB HL,(mn)HL←HL-(mn) --#-1# 11 101 101
11 010 110
--- n ---
--- m ---
ED
D6
 
 
42+r
SBC HL,rpHL←
 HL-rp-cf
###V1# 11 101 101
01 rp0 010
ED
 
22
ADDW HL,rd
ADDW rd
HL←HL+rd ###V0# 11 101 101
10 000 1rd
ED
 
22 rd Reg.
00 BC
01 DE
11 HL
ADDW HL,IX
ADDW IX
HL←HL+IX ###V0# 11 011 101
10 000 111
DD
 
22
ADDW HL,mn
ADDW mn
HL←HL+mn ###V0# 11 101 101
10 000 110
--- n ---
--- m ---
ED42
ADDW HL,(IX+d)
ADDW (IX+d)
HL←HL+(IX+d) ###V0# 11 011 101
11 000 110
--- d ---
DD
 
 
34+r
ADCW HL,ss
ADCW ss
HL←HL+ss+cf ###V0# ** 001 ***    ADDW命令と同様の
繰り返し
ss=rd,IX,IY,mn,(IX+d),(IY+d)
SUBW HL,ss
SUBW ss
HL←HL-ss ###V1# ** 010 ***
SBCW HL,ss
SBCW ss
HL←HL-ss-cf ###V1# ** 011 ***
ANDW HL,ss
ANDW ss
HL←HL and ss ##1P00 ** 100 ***
XORW HL,ss
XORW ss
HL←HL xor ss ##0P00 ** 101 ***
ORW HL,ss
ORW ss
HL←HL or ss ##0P00 ** 110 ***
CPW HL,ss
CPW ss
HL-ss ###V1# ** 111 ***
INC rp
INCW rp
rp←rp+1 ------ 00 rp0 011 12 
INC IX
INCW IX
IX←IX+1 ------ 11 011 101
00 100 011
DD
23
22
DEC rp
DECW rp
rp←rp-1 ------ 00 rp1 011 12
DEC IX
DECW IX
IX←IX-1 ------ 11 011 101
00 101 011
DD
2B
22

乗除算命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
MLT rprp←rpH×rpL ------ 11 101 101
01 rp1 100
ED
 
27 rp Reg.
00 BC 01 DE
10 HL 11 SP
MULTW HL,rd
MULTW rd
HLz←HL×rd ##-0-# 11 101 101
11 001 011
10 010 0rd
ED
CB
 
310 rd Reg.
00 BC
01 DE
11 HL
 
word pointer
MULTW HL,IX
MULTW IX
HLz←HL×IX ##-0-# 11 101 101
11 001 011
10 010 100
ED
CB
 
310
MULTW HL,IY
MULTW IY
HLz←HL×IY ##-0-# 11 101 101
11 001 011
10 010 101
ED
CB
 
310
MULTW HL,mn
MULTW mn
HLz←HL×mn ##-0-# 11 101 101
11 001 011
10 010 111
--- n ---
--- m ---
ED
CB
510
MULTW HL,(IX+d)
MULTW (IX+d)
HLz←
 HL×(IX+d)
##-0-# 11 011 101
11 001 011
--- d ---
10 010 010
DD
CB
 
 
412+r
MULTUW HL,ss
MULTUW ss
HLz←HL×ss 0#-0-# ** 011 ***  MULTW
+1
MULTW命令と同様の
繰り返し
ss=rd,IX,IY,mn,
 (IX+d),(IY+d)
DIVUW HL,ss
DIVUW ss
HL←HL÷ss
HL31-16←余り
0#-V-- ** 111 ***MULTW
+10

ジャンプ命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
JP mnPC←mn ------ 11 000 011
--- n ---
--- m ---
C3
 
 
32 cc 条件
000 NZ non zero
001 Z zero
010 NC non carry
011 C carry
100 PO parity odd
101 PE parity even
110 P sign positive
111 M sign negative
JP cc,mn条件がccなら
PC←mn
そうでなければ
何もしない
------ 11 cc  010
--- n ---
--- m ---
 32
JP (HL)PC←HL ------ 11 101 001E912
JP (IX)PC←IX ------ 11 011 101
11 101 001
DD
E9
22
JR ePC←PC+e ------ 00 011 000
-- e-2 --
18
 
22  
JR eePC←PC+ee ------ 11 011 101
00 011 000
-- ee-4 --
-- ee --
DD
18
 
 
42
JR eeePC←PC+eee ------ 11 111 101
00 011 000
- eee-5 -
-- eee --
-- eee --
FD
18
52
JR cr,e条件がcrなら
PC←PC+e
そうでなければ
何もしない
------ 00 1cr 000
-- e-2 --
 22 cr 条件
00 NZ non zero
01 Z zero
10 NC non carry
11 C carry
JR cr,ee条件がcrなら
PC←PC+ee
そうでなければ
何もしない
------ 11 011 101
00 1cr 000
-- ee-4 --
--- ee ---
DD42
JR cr,eee条件がcrなら
PC←PC+eee
そうでなければ
何もしない
------ 11 111 101
00 1cr 000
- eee-5 -
-- eee --
-- eee --
FD52
DJNZ eB←B-1
B≠0なら
PC←PC+e
そうでなければ
何もしない
------ 00 010 000
-- e-2 --
10
 
24
B≠0
 
3
B=0
DJNZ eeB←B-1
B≠0なら
PC←PC+ee
そうでなければ
何もしない
------ 11 011 101
00 010 000
-- ee-4 --
--- ee ---
DD
10
 
 
44
B≠0
3
B=0
DJNZ eeeB←B-1
B≠0なら
PC←PC+eee
そうでなければ
何もしない
------ 11 111 101
00 010 000
- eee-5 -
-- eee --
-- eee --
FD
10
54
B≠0
3
B=0

e 相対アドレッシングモードにおける変位値(符号付き2の補数-128〜+127)
ee 相対アドレッシングモードにおける変位値(同-32768〜+32767)
eee 相対アドレッシングモードにおける変位値(同-8388608〜+8388607)
e-2 eの実効変位値(オペランド即値)
ee-4 eeの実効変位値(オペランド即値)
eee-5 eeeの実効変位値(オペランド即値)

コール命令/リターン命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
CALL mnSP←SP-2
(SP)←PCL
(SP+1)←PCH
PC←mn
------ 11 001 101
--- n ---
--- m ---
CD
 
 
34+w cc 条件
000 NZ non zero
001 Z zero
010 NC non carry
011 C carry
100 PO parity odd
101 PE parity even
110 P sign positive
111 M sign negative
CALL cc,mn条件がccなら
CALL mnに同じ
そうでなければ
何もしない
------ 11 cc  100
--- n ---
--- m ---
 34+w
True
2
False
CALR eSP←SP-2
(SP)←PCL
(SP+1)←PCH
PC←PC+e
------ 11 101 101
11 001 101
-- e-3 --
ED
CD
 
34+w
CALR eeSP←SP-2
(SP)←PCL
(SP+1)←PCH
PC←PC+ee
------ 11 101 101
11 001 101
-- ee-4 --
-- ee --
DD
CD
 
 
44+w
CALR eeeSP←SP-2
(SP)←PCL
(SP+1)←PCH
PC←PC+eee
------ 11 101 101
11 001 101
- eee-5 -
-- eee --
-- eee --
FD
CD
54+w
CALR cc,e条件がccなら
CALR eに同じ
そうでなければ
何もしない
------ 11 101 101
11 cc  100
-- e-3 --
ED
 
 
34+w
True
2
False
CALR cc,ee条件がccなら
CALR eeに同じ
そうでなければ
何もしない
------ 11 011 101
11 cc  100
-- ee-4 --
--- ee ---
DD44+w
True
2
False
CALR cc,eee条件がccなら
CALR eeeに同じ
そうでなければ
何もしない
------ 11 111 101
11 cc  100
- eee-5 -
-- eee --
-- eee --
FD54+w
True
2
False
RETPCL←(SP)
PCH←(SP+1)
SP←SP+2
------ 11 001 001C912
RET cc条件がccなら
RETに同じ
そうでなければ
何もしない
------ 11 cc  000 12+r
True
2
False
RETI割り込み処理
からのRET
------ 11 101 101
01 001 101
ED
4D
22+r 
RETNマスク不可
割り込み処理
からのRET
------ 11 101 101
01 000 101
ED
45
22+r
RETBブレークポイント
割り込み処理
からのRET
------ 11 101 101
01 010 101
ED
55
22
RST pSP←SP-2
(SP)←PCL
(SP+1)←PCH
PCH←0
PCL←p
------ 11   t   111 14+wt=p÷8

入出力命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
IN A,(n)A←(n) ------ 11 011 011
--- n ---
DB
 
23+i nがAB0〜AB7
AccがAB8〜AB15
r Reg.
000 B
001 C
010 D
011 E
100 H
101 L
111 A
 
ior Reg.
000 BC
010 DE
111 HL
TSTIO n(C)p and n ##1P00 11 101 101
01 110 100
--- n ---
ED
74
 
33+i CがAB0〜AB7
0がAB8〜AB15
IN0 r,(n)r←(n) ##0P0- 11 101 101
00   r   000
--- n ---
ED
 
 
33+i nがAB0〜AB7
0がAB8〜AB15
IN0 (n)F←(n) ##0P0- 11 101 101
00 110 000
--- n ---
ED
30
 
33+i
INA A,(mn)A←(mn) ------ 11 101 101
11 011 011
--- n ---
--- m ---
ED
DB
 
 
43+i nがAB0〜AB7
mがAB8〜AB15
INAW HL,(mn)L←(mn)
H←(mn+1)
------ 11 111 101
11 011 011
--- n ---
--- m ---
FD
DB
 
 
43+i
IN r,(C)r←(BC)p ##0P0- 11 101 101
01   r   000
ED
 
22+i CがAB0〜AB7
BがAB8〜AB15
INW ior,(C)iorL←(BC)p
iorH←(BC+1)p
##0P0- 11 011 101
01 ior 000
DD
 
22+i
INI(HL)m←(BC)p
HL←HL+1
B←B-1
-*2--1- 11 101 101
10 100 010
ED
A2
22+i+w
INIRINI命令を
B=0まで繰り返し
-1--1- 11 101 101
10 110 010
ED
B2
2(2+i+w)n
IND(HL)m←(BC)p
HL←HL-1
B←B-1
-*2--1- 11 101 101
10 101 010
ED
AA
22+i+w
INDRIND命令を
B=0まで繰り返し
-1--1- 11 101 101
10 111 010
ED
BA
2(2+i+w)n
INIW(HL)m←(DE)p
(HL+1)m←(DE+1)p
HL←HL+2
BC←BC-1
-*6--1- 11 101 101
11 100 010
ED
E2
22+i+w EがAB0〜AB7
DがAB8〜AB15
INIRWINIW命令を
BC=0まで繰り返し
-1--1- 11 101 101
11 110 010
ED
F2
2(2+i+w)n
INDW(HL)m←(DE)p
(HL+1)m←(DE+1)p
HL←HL-2
BC←BC-1
-*6--1- 11 101 101
11 101 010
ED
EA
22+i+w
INDRWINDW命令を
BC=0まで繰り返し
-1--1- 11 101 101
11 111 010
ED
FA
2(2+i+w)n
OUT (n),A(n)←A ------ 11 010 011
--- n ---
D3
 
23+o nがAB0〜AB7
AccがAB8〜AB15
OUT0 (n),r(n)←r ------ 11 101 101
00   r   001
--- n ---
ED
 
 
33+o nがAB0〜AB7
0がAB8〜AB15
OUTA (mn),A(mn)←A ------ 11 101 101
11 010 011
--- n ---
--- m ---
ED
D3
 
 
42+o nがAB0〜AB7
mがAB8〜AB15
OUTAW (mn),HL(mn)←L
(mn+1)←H
------ 11 111 101
11 010 011
--- n ---
--- m ---
FD
D3
 
 
42+o
OUT (C),r(BC)p←r ------ 11 101 101
01   r   001
ED
 
23+o CがAB0〜AB7
BがAB8〜AB15
OUT (C),n(BC)p←n ------ 11 101 101
01 110 001
--- n ---
ED
71
 
33+o
OUTW (C),ior(BC)p←iorL
(BC+1)p←iorH
------ 11 011 101
01 ior 001
DD
 
22+o
OUTW (C),mn(BC)p←n
(BC+1)p←m
------ 11 111 101
01 111 001
--- n ---
--- m ---
FD
79
 
 
42+o
OUTI(BC)p←(HL)m
HL←HL+1
B←B-1
-*2--1- 11 101 101
10 100 011
ED
A3
22+r+o
OTIROUTI命令を
B=0まで繰り返し
-1--1- 11 101 101
10 110 011
ED
B3
2(2+r+o)n
OUTD(BC)p←(HL)m
HL←HL-1
B←B-1
-*2--1- 11 101 101
10 101 011
ED
AB
22+r+o
OTDROUTD命令を
B=0まで繰り返し
-1--1- 11 101 101
10 111 011
ED
BB
2(2+r+o)n
OTIM(C)p←(HL)m
HL←HL+1
C←C+1
B←B-1
*1*2*3P*5*4 11 101 101
10 000 011
ED
83
22+r+o nがAB0〜AB7
0がAB8〜AB15
OTIMROTIM命令を
B=0まで繰り返し
0101*50 11 101 101
10 010 011
ED
93
2(2+r+o)n
OTDM(C)p←(HL)m
HL←HL-1
C←C-1
B←B-1
*1*2*3P*5*4 11 101 101
10 001 011
ED
8B
22+r+o
OTDMROTDM命令を
B=0まで繰り返し
0101*50 11 101 101
10 011 011
ED
9B
2(2+r+o)n
OUTIW(DE)p←(HL)m
(DE+1)p←(HL+1)m
HL←HL+2
BC←BC-1
-*6--1- 11 101 101
11 100 011
ED
E3
22+r+o EがAB0〜AB7
DがAB8〜AB15
OTIRWOUTIW命令を
BC=0まで繰り返し
-1--1- 11 101 101
11 110 011
ED
F3
2(2+r+o)n
OUTDW(DE)p←(HL)m
(DE+1)p←(HL+1)m
HL←HL-2
BC←BC-1
-*6--1- 11 101 101
11 101 011
ED
EB
22+r+o
OTDRWOUTDWを
BC=0まで繰り返し
-1--1- 11 101 101
11 111 011
ED
FB
2(2+r+o)n

(**)mはメモリアドレス、(**)pはI/Oアドレスを表わす。
*1 Bレジスタの最上位ビット
*2 Bレジスタ=0なら1
*3 Bレジスタの下位4ビット=1111bなら1
*4 Bレジスタ=255なら1
*5 HLレジスタの最上位ビット
*6 BCレジスタ=0なら1

CPU制御命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
NOPNo OPeration ------ 00 000 0000012  
HALTCPU halted ------ 01 110 1107612  
SLPCPU halted ------ 11 101 101
01 110 110
ED
76
22
DISR5←0 ------ 11 110 011F312  
DI n  ------ 11 011 101
11 110 011
--- n ---
DD
F3
 
32
EISR5←1 ------ 11 111 011FB12
EI n  ------ 11 011 101
11 111 011
--- n ---
DD
FB
 
32
IM 0割り込みモード
設定
------ 11 101 101
01 000 110
ED
46
22 IMFa←0
IMFb←0
IM 1 ------ 11 101 101
01 010 110
ED
56
22 IMFa←1
IMFb←0
IM 2 ------ 11 101 101
01 011 110
ED
5E
22 IMFa←1
IMFb←1
IM 3 ------ 11 101 101
01 001 110
ED
4E
22 IMFa←0
IMFb←1
SETC LWSR6←1 ------ 11 011 101
11 110 111
DD
F7
24 set Long Word mode
SETC LCKSR1←1 ------ 11 101 101
11 110 111
ED
F7
24  
SETC XMSR7←1 ------ 11 111 101
11 110 111
FD
F7
24 goto Extended mode
Can't return Native mode
RESC LWSR6←0 ------ 11 011 101
11 111 111
DD
FF
24 set Word mode
RESC LCKSR1←0 ------ 11 101 101
11 111 111
ED
FF
24  

アキュムレータ操作命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
DAAパックト10進加減算の
結果補正
###P-# 00 100 1112712 Decimal Adjust Accumulator
CPL
CPL A
A←not A
Aの1の補数をとる
--1-1- 00 101 1112F12 ComPLement accumulator
CPLW
CPLW HL
HL←not HL
HLの1の補数をとる
--1-1- 11 011 101
00 101 111
DD
2F
22 ComPLement HL
NEG
NEG A
A←0-A
Aの2の補数をとる
###V1# 11 101 101
01 000 100
ED
44
22 NEGate Accumulator
NEGW
NEGW HL
HL←0-HL
HLの2の補数をとる
###V1# 11 101 101
01 010 100
ED
54
22 NEGate HL
CCFcf←not cf --#-0# 00 111 1113F12 Complement Carry Flag
SCFcf←1 --0-01 00 110 1113712 Set Carry Flag
EXTS
EXTS A
L←A
H7…0←A7
------ 11 101 101
01 100 101
ED
65
23 符号拡張
EXTSW
EXTSW HL
HL31…16←H15 ------ 11 101 101
01 110 101
ED
75
23
BTESTsf←SR16
zf←SR24
pf←SR0
cf←SR8
##-#-# 11 101 101
11 001 111
ED
CF
22 セレクトレジスタのビットを
フラグにコピーする
MTESTsf←SR7
zf←SR6
cf←SR1
##---# 11 011 101
11 001 111
DD
CF
22

エクスチェンジ命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
EX DE,HLDE←→HL ------ 11 101 011EB13  
EX BC,DEBC←→DE ------ 11 101 101
00 000 101
ED
05
23
EX BC,HLBC←→HL ------ 11 101 101
00 001 101
ED
0D
23
EX rd,IXrd←→IX ------ 11 101 101
00 rd0 011
ED
 
23
EX rd,IYrd←→IY ------ 11 101 101
00 rd1 011
ED
 
23
EX IX,IYIX←→IY ------ 11 101 101
00 101 011
ED
2B
23
EX (SP),HLH←→(SP-1)
L←→(SP)
------ 11 100 011E313+r+w  
EX (SP),IXIXH←→(SP-1)
IXL←→(SP)
------ 11 011 101
11 100 011
DD
E3
23+r+w  
EX A,rA←→r ------ 11 101 101
00   r   111
ED
 
23 r Reg.
000 B 001 C
010 D 011 E
100 H 101 L
111 A
 
rd Reg.
00 BC
01 DE
11 HL
EX A,(HL)A←→(HL) ------ 11 101 101
00 110 111
ED
37
23+r+w
EX r,r'r←→r' ------ 11 001 011
00 110   r  
CB
 
23
EX AF,AF'AF←→AF' ###### 00 001 0000813
EX rd,rd'rd←→rd' ------ 11 101 011
11 001 011
00 110 0rd
ED
CB
 
33
EX IX,IX'IX←→IX' ------ 11 101 011
11 001 011
00 110 100
ED
CB
34
33
EX IY,IY'IY←→IY' ------ 11 101 011
11 001 011
00 110 101
ED
CB
35
33
SWAP rdrd31-16←→rd15-0 ------ 11 101 101
00 rd1 110
ED
 
22
SWAP IXIX31-16←→IX15-0 ------ 11 011 101
00 111 110
DD
3E
22
EXXBC←→BC'
DE←→DE'
HL←→HL'
------ 11 011 001D912 32bit operation only
EXXXIX←→IX' ------ 11 011 101
11 011 001
DD
D9
23
EXXYIY←→IY' ------ 11 111 101
11 011 001
FD
D9
23
EXALLBC←→BC'
DE←→DE'
HL←→HL'
IX←→IX'
IY←→IY'
------ 11 101 101
11 011 001
ED
D9
23

ブロック転送命令/ブロックサーチ命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
LDI(DE)←(HL)
HL←HL+1
DE←DE+1
BC←BC-1
--0*10- 11 101 101
10 100 000
ED
A0
23+r+w 
LDIRLDI命令を
BC=0まで繰り返し
--000- 11 101 101
10 110 000
ED
B0
2(3+r+w)n
LDD(DE)←(HL)
HL←HL-1
DE←DE-1
BC←BC-1
--0*10- 11 101 101
10 101 000
ED
A8
23+r+w
LDDRLDD命令を
BC=0まで繰り返し
--000- 11 101 101
10 111 000
ED
B8
2(3+r+w)n
CPIA-(HL)
HL←HL+1
BC←BC-1
#*2#*11- 11 101 101
10 100 001
ED
A1
23+r
CPIRCPI命令をA=(HL)または
BC=0まで繰り返し
#*2#*11- 11 101 101
10 110 001
ED
B1
2(3+r)n
CPDA-(HL)
HL←HL-1
BC←BC-1
#*2#*11- 11 101 101
10 101 001
ED
A9
23+r
CPDRCPD命令をA=(HL)または
BC=0まで繰り返し
#*2#*11- 11 101 101
10 111 001
ED
B9
2(3+r)n
LDIW(DE)←(HL)
(DE+1)←(HL+1)
HL←HL+2
DE←DE+2
BC←BC-2
--0*10- 11 101 101
11 100 000
ED
E0
23+r+w
LDIRWLDIW命令を
BC=0まで繰り返し
--000- 11 101 101
11 110 000
ED
F0
2(3+r+w)n
LDDW(DE)←(HL)
(DE+1)←(HL+1)
HL←HL-2
DE←DE-2
BC←BC-2
--0*10- 11 101 101
11 101 000
ED
E8
23+r+w
LDDRWLDDW命令を
BC=0まで繰り返し
--000- 11 101 101
11 111 000
ED
F8
2(3+r+w)n

*1 BCレジスタ=0なら0
*2 A=(HL)なら1

ビット操作命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
BIT b,rzf←not rb -#1-0- 11 001 011
01   b     r
CB
 
22 r Reg.
000 B 001 C
010 D 011 E
100 H 101 L
111 A
 
b Bit tested
000 0
  |    |
111 7
BIT b,(HL)zf←not (HL)b -#1-0- 11 001 011
01   b  110
CB
 
22+r
BIT b,(IX+d)zf←not (IX+d)b -#1-0- 11 011 101
11 001 011
--- d ---
01   b  110
DD
CB
44+r
SET b,rrb←1 ------ 11 001 011
11   b     r
CB
 
22
SET b,(HL)(HL)b←1 ------ 11 001 011
11   b  110
CB
 
22+r
SET b,(IX+d)(IX+d)b←1 ------ 11 011 101
11 001 011
--- d ---
11   b  110
DD
CB
44+r
RES b,ssb←0 ------ 10 *** ***    RES命令はSET命令と
同様の繰り返し
s=r,(HL),(IX+d),(IY+d)

ローテイト・シフト命令

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
RLCA
A
A7A6 A5…2 A1A0
cf
cf
A6A5 A4…1 A0A7
A7
--0-0# 00 000 1110712 Rotate Left Circular
Accumulator
RRCA
A
A7A6 A5…2 A1A0
cf
cf
A0A7 A6…3 A2A1
A0
--0-0# 00 001 1110F12 Rotate Right Circular
Accumulator
RLA
A
A7A6 A5…2 A1A0
cf
cf
A6A5 A4…1 A0cf
A7
--0-0# 00 010 1111712 Rotate Left
Accumulator
RRA
A
A7A6 A5…2 A1A0
cf
cf
cfA7 A6…3 A2A1
A0
--0-0# 00 011 1111F12 Rotate Right
Accumulator
RLC r
r,(HL),(IX+d)
s7s6 s5…2 s1s0
cf
cf
s6s5 s4…1 s0s7
s7
##0P0# 11 001 011
00 000   r
CB
 
22 r Reg.
000 B 001 C
010 D 011 E
100 H 101 L
111 A
RLC (HL) ##0P0# 11 001 011
00 000 110
CB
 
22+r
RLC (IX+d) ##0P0# 11 011 101
11 001 011
--- d ---
00 000 110
DD
CB
 
 
44+r
RRC s
r,(HL),(IX+d)
s7s6 s5…2 s1s0
cf
cf
s0s7 s6…3 s2s1
s0
##0P0# ** 001 ***    RLC s命令と同様の
繰り返し
s=r,(HL),(IX+d),(IY+d)
RL s
r,(HL),(IX+d)
s7s6 s5…2 s1s0
cf
cf
s6s5 s4…1 s0cf
s7
##0P0# ** 010 ***
RR s
r,(HL),(IX+d)
s7s6 s5…2 s1s0
cf
cf
cfs7 s6…3 s2s1
s0
##0P0# ** 011 ***
SLA s
r,(HL),(IX+d)
s7s6 s5…2 s1s0
cf
cf
s6s5 s4…1 s0 0
s7
##0P0# ** 100 ***
SRA s
r,(HL),(IX+d)
s7s6 s5…2 s1s0
cf
cf
s7s7 s6…3 s2s1
s0
##0P0# ** 101 ***
SRL s
r,(HL),(IX+d)
s7s6 s5…2 s1s0
cf
cf
0s7 s6…3 s2s1
s0
0#0P0# ** 111 ***
RRD
A
A7…4A3…0
(HL)
(HL)7…4(HL)3…0
A7…4(HL)3…0
A3…0(HL)7…4
##0P0- 11 101 101
01 100 111
ED
67
23+r 4ビット(ニブル)シフト
フラグは(HL)対象
RLD
A
A7…4A3…0
(HL)
(HL)7…4(HL)3…0
A7…4(HL)7…4
(HL)3…0A3…0
##0P0- 11 101 101
01 101 111
ED
6F
23+r
RLCW rd
rd,IX,IY,(HL),(IX+d)
ss15ss14 ss13…2 ss1ss0
cf
cf
ss14ss13 ss12…1 ss0ss15
ss15
##0P0# 11 101 101
11 001 011
00 000 0rd
ED
CB
 
32 rd Reg.
00 BC
01 DE
11 HL
RLCW IX ##0P0# 11 101 101
11 001 011
00 000 100
ED
CB
 
32
RLCW IY ##0P0# 11 101 101
11 001 011
00 000 101
ED
CB
 
32
RLCW (HL) ##0P0# 11 101 101
11 001 011
00 000 010
ED
CB
 
32+r
RLCW (IX+d) ##0P0# 11 011 101
11 001 011
--- d ---
00 000 010
DD
CB
 
 
44+r
RRCW ss
rd,IX,(HL),(IX+d)
ss15ss14 ss13…2 ss1ss0
cf
cf
ss0ss15 ss14…3 ss2ss1
ss0
##0P0# ** 001 ***    RLCW ss命令と
同様の繰り返し
ss=r,IX,IY,(HL),
 (IX+d),(IY+d)
RLW ss
rd,IX,(HL),(IX+d)
ss15ss14 ss13…2 ss1ss0
cf
cf
ss14ss13 ss12…1 ss0cf
ss15
##0P0# ** 010 ***
RRW ss
rd,IX,(HL),(IX+d)
ss15ss14 ss13…2 ss1ss0
cf
cf
cfss15 ss14…3 ss2ss1
ss0
##0P0# ** 011 ***
SLAW ss
rd,IX,(HL),(IX+d)
ss15ss14 ss13…2 ss1ss0
cf
cf
ss14ss13 ss12…1 ss0 0
ss15
##0P0# ** 100 ***
SRAW ss
rd,IX,(HL),(IX+d)
ss15ss14 ss13…2 ss1ss0
cf
cf
ss15ss15 ss14…3 ss2ss1
ss0
##0P0# ** 101 ***
SRLW ss
rd,IX,(HL),(IX+d)
ss15ss14 ss13…2 ss1ss0
cf
cf
0ss15 ss14…3 ss2ss1
ss0
0#0P0# ** 111 ***

デコーダ・ディレクティブ

ニーモニックオペレーションフラグOPコードバイトステートコメント
76 543 210Hex
DDIR Wno operation
decoder directive only
- 11 011 101
11 000 000
DD
C0
20 Word mode
DDIR IB,W - 11 011 101
11 000 001
DD
C1
20 immediate Byte
Word mode
DDIR IW,W - 11 011 101
11 000 010
DD
C2
20 immediate Word
Word mode
DDIR IB - 11 011 101
11 000 011
DD
C3
20 immediate Byte
DDIR LW - 11 111 101
11 000 000
FD
C0
20 Long Word mode
DDIR IB,LW - 11 111 101
11 000 001
FD
C1
20 immediate Byte
Long Word mode
DDIR IW,LW - 11 111 101
11 000 010
FD
C2
20 immediate Word
Long Word mode
DDIR IW - 11 111 101
11 000 011
FD
C3
20 immediate Word


2.削除命令

 Z280で追加された命令は、ほとんどの場合バイナリコードの互換性がないため動作しない。
 Z80のSLL r命令のオペコードは、Z280ではEX r,r'として定義されている。


3.未定義命令

 Z80の未定義命令のうち、第一、第二オペコードがそれぞれDDh,CBhまたはFDh,CBhのものは、Z380では別命令が定義されている。


μPD780余多話に戻る