81 subs subtract accumulataor string – Texas Instruments MSP50C614 User Manual
Page 269
Individual Instruction Descriptions
4-177
Assembly Language Instructions
4.14.81
SUBS
Subtract Accumulataor String
Syntax
[label]
name
dest, src, src1
Clock,
clk
Word,
w
With RPT,
clk
Class
SUBS
A
n[~], An, {adrs}
Table 4–46
Table 4–46
1a
SUBS
A
n[~], An[~], pma16
n
s
+4
2
N/R
32b
SUBS
A
n[~], An, An~
n
s
+2
1
n
R
+2
3
SUBS
A
n[~], An~, An
n
s
+2
1
n
R
+2
3
SUBS
†
A
n[~], An[~], PH
1
1
1
3
† This instruction ignores the string count, executing only once but maintains the CF and ZF status of the previous multi-
ply or shift operation as if the sequence was a single string. This instruction should immediately follow one of the fol-
lowing class 1b instructions: MOVAPH, MULAPL, MULSPL, SHLTPL, SHLSPL, and SHLAPL. An interrupt can occur
between one of these instructions and this instruction. An interrupt may cause an incorrect result. Also, single stepping
is not allowed for this instruction. A
n in this instruction should be the same as An in one of the listed class 1b instruc-
tion. Offsets are allowed. See Section 4.8 for detail.
Execution
[premodify AP if
mod specified]
dest
⇐
dest – src
(for two operands)
dest
⇐
src – src1
(for three operands)
PC
⇐
PC +
w
Flags Affected
dest is An:
OF, SF, ZF, CF 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
SUBS A
n[~], An, {adrs}
0
0
0
1
~A
1
1
A
n
adrs
x
dma16 (for direct) or offset16 (long relative) [see section 4.13]
SUBS A
n[~], An[~], pma16
1
1
1
0
0
1
1
A
n
0
1
0
0
1
1
A~
~A
SUBS A
n[~], An, An~
1
1
1
0
0
1
1
A
n
0
0
1
0
0
0
0
~A
SUBS A
n[~], An~, An
1
1
1
0
0
1
1
A
n
0
0
1
0
0
0
1
~A
SUBS A
n[~], An[~], PH
1
1
1
0
0
1
1
A
n
0
1
1
0
0
0
A~
~A
Description
Subtract the value of the
src string from value of the dest string and store the
result in the
dest string. If three operands are specified, then subtract value of
src1 string from value of src string (i.e., src–src1) and store result in dest string.
Note that, substraction is performed in 2’s complement and therefore the CF
(carry flag) may get set even when subtracting a smaller value from a large
value.