Z-8681 Microcomputer
Technical Manual
November 1984


Chapter V : Instruction set

5.5 Instruction summary.

Instruction Op1 Op2 Operation Addr mode
dst   src
Opcode
 byte
Flags affected
 C Z S V D H
ADC dst src dst := dst + src + C Note 1 1+  * * * * 0 *
ADD dst src dst := dst + src Note 1 0+  * * * * 0 *
AND dst src dst := dst AND src Note 1 5+  - * * 0 - -
CALL dst SP := SP - 2
[SP] := PC
PC := dst
DA
IRR
D6
D4
 - - - - - -
CCF C := NOT C   EF  * - - - - -
CLR dst dst := 0 R
IR
B0
B1
 - - - - - -
COM dst dst := NOT dst R
IR
60
61
 - * * 0 - -
CP dst src FLAGS := (dst - src) Note 1 A+  * * * * - -
DA dst Correct BCD math R
IR
40
41
 * * * X - -
DEC dst dst := dst - 1 R
IR
00
01
 - * * * - -
DECW dst dst := dst - 1 RR
IRR
80
81
 - * * * - -
DI Disable interrupts   8F  - - - - - -
DJNZ r dst r := r - 1
IF r # 0 THEN PC := PC + dst
dst = [-128..127]
RA rA
r=[0..F]
 - - - - - -
EI Enable interrupts   9F  - - - - - -
INC dst dst := dst + 1 r
 
R
IR
nE
n=[0..F]
20
21
 - * * * - -
INCW dst dst := dst + 1 RR
IR
A0
A1
 - * * * - -
IRET FLAGS := [SP]
SP := SP + 1
PC := [SP]
SP := SP + 2
  BF  * * * * * *
JP cc dst IF cc=TRUE THEN PC := dst DA
 
IRR
nD
n=[0..F]
30
 - - - - - -
JR cc dst IF cc=TRUE THEN PC := PC + dst
dst = [-128..127]
RA nB
n=[0..F]
 - - - - - -
LD dst src dst := SRC r     IM
r     R
R     r

r     X
X     r
r     Ir
Ir    r
R     R
R     IR
R     IM
IR    IM
IR    R
rC
r8
r9
r=[0..F]
C7
D7
E3
F3
E4
E5
E6
E7
F5
 - - - - - -
LDC dst src dst := src r     Irr
Irr   r
C2
D2
 - - - - - -
LDCI dst src dst := src
r := r + 1
rr := rr + 1
Ir    Irr
Irr   Ir
C3
D3
 - - - - - -
LDE dst src dst := src r     Irr
Irr   r
82
92
 - - - - - -
LDEI dst src dst := src
r := r + 1
rr := rr + 1
Ir    Irr
Irr   Ir
83
93
 - - - - - -
NOP do nothing   FF  - - - - - -
OR dst src dst := dst OR src Note 1 4+  - * * 0 - -
POP dst dst := [SP]
SP := SP + 1
R
IR
50
51
 - - - - - -
PUSH src SP := SP - 1
[SP] := src
      R
      IR
70
71
 - - - - - -
RCF C := FALSE   CF  0 - - - - -
RET PC := [SP]
SP := SP + 2
AF    - - - - - -
RL dst Rotate left dst
Carry := dst (7)
R
IR
90
91
 * * * * - -
RLC dst Rotate left dst
dst (0) := Carry
Carry := dst (7)
R
IR
10
11
 * * * * - -
RR dst Rotate right dst
Carry := dst (0)
R
IR
E0
E1
 * * * * - -
RRC dst Rotate right dst
Carry := dst (0)
dst (7) := Carry
R
IR
C0
C1
 * * * * - -
SBC dst src dst := dst - src - C Note 1 3+  * * * * 1 *
SCF C := TRUE   DF  1 - - - - -
SRA dst dst (7) := dst (7)
dst ([6..0]) := dst ([7..6])
R
IR
D0
D1
 * * * 0 - -
SRP src RP := src       Im    - - - - - -
SUB dst src dst := dst - src Note 1 2+  * * * * 1 *
SWAP dst dst tmp := dst ([0..3])
dst ([0..3]) := dst ([4..7])
dst ([4..7]) := tmp
R
IR
 
F0
F1
 
 X * * X - -
TCM dst src FLAGS := ( (NOT dst) AND src) Note 1 6+  - * * 0 - -
TM dst src FLAGS := dst AND src Note 1 7+  - * * 0 - -
XOR dst src dst := dst XOR src Note 1 B+  - * * 0 - -

Note 1:

These instructions have an identical set of addressing modes which are encoded for brevity. The first opcode nibble is found in the instruction table above. The second nibble is expressed symbolically as a '+' in this table and its value is found in the following table to the right of the applicable addressing mode pair.
For example, to determine the opcode of an 'ADC' instruction using the addressing modes 'r' (destination) and Ir (source) is 13H.

Addr mode
dst   src
Lower
Opcode byte
r      r 2
r      Ir 3
R      R 4
R      IR 5
R      IM 6
IR     IM 7

Page equipped with FroogleBuster technology