Stereo System User Manual
Individual Instruction Descriptions
4-174
4.14.79 SUB Subtract
Syntax
[label] name dest, src
, 
src1
, [
next A
]] Clock, 
clk
Word, 
w
With RPT, 
clk
Class
SUB A
n
[~], A
n
, {
adrs
} [, 
next A
] Table 4–46 Table 4–46 1a
SUB A
n
[~], A
n
[~], 
imm16
 [,
 next A
] 2 2 N/R 2b
SUB A
n
[~], A
n
[~], PH [,
 next A
] 1 1 n
R
+3 3
SUB A
n
[~], A
n
, A
n
~ [,
 next A
] 1 1 n
R
+3 3
SUB A
n
[~], A
n
~, A
n
 [,
 next A
] 1 1 n
R
+3 3
SUB R
x
, 
imm16
2 2 N/R 4c
SUB R
x
, R5 1 1 N/R 4d
Execution [premodify AP if 
mod
 specified]
dest
 ⇐ 
dest
 – 
src1
(for two operands)
dest
 ⇐ 
src
 – 
src1
(for three operands)
PC ⇐ PC + 
w
Flags Affected
dest
 is A
n
: OF, SF, ZF, CF are set accordingly
dest
 is R
x
: RCF, RZF are set accordingly
src1
 is {
adrs
}: TAG bit is set accordingly
Opcode
Instructions 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SUB A
n
[~], A
n
, {
adrs
} [, 
next A
]
0 0 0 0 ~A
next A
A
n adrs
x
dma16
 (for direct) or 
offset16
 (long relative) [see section 4.13]
SUB A
n
[~], A
n
[~], 
imm16
 [,
 next A
] 1 1 1 0 0
next A
A
n
0 1 0 0 0 1 A~ ~A
SUB A
n
[~], A
n
[~], PH [,
 next A
] 1 1 1 0 0
next A
A
n
0 1 1 0 0 0 A~ ~A
SUB A
n
[~], A
n
, A
n
~ [,
 next A
] 1 1 1 0 0
next A
A
n
0 0 1 0 0 0 0 ~A
SUB A
n
[~], A
n
~, A
n
 [,
 next A
] 1 1 1 0 0
next A
A
n
0 0 1 0 0 0 1 ~A
SUB R
x
, 
imm16
1 1 1 1 1 1 1 0 0 0 0 1 R
x
0 0
SUB R
x
, R5 1 1 1 1 1 1 1 0 0 1 0 1 R
x
0 0
Description Subtract value of 
src
 from value of 
dest
 and store result in 
dest
. If three
operands are specified, then subtract value of 
src1
 from value of 
src
 (i.e.,
src
-
src1
) and store result in 
dest
 string. Premodification of accumulator
pointers is allowed with some operand types. Note that subtraction is
performed in 2’s complement and therefore the CF (carry flag) may get set
even when subtracting a smaller value from a larger value.










