beautypg.com

82 subs subtract accumulataor string – Texas Instruments MSP50C6xx User Manual

Page 265

background image

Individual Instruction Descriptions

4-179

Assembly Language Instructions

4.14.82

SUBS

Subtract Accumulataor String

Syntax

[label]

name

dest, src, src1

Clock, clk

Word, w

With RPT, clk

Class

SUBS

An[~], An, {adrs}

Table 4–46

Table 4–46

1a

SUBS

An[~], An[~], pma16

n

s

+4

2

N/R

32b

SUBS

An[~], An, An~

n

s

+2

1

n

R

+2

3

SUBS

An[~], An~, An

n

s

+2

1

n

R

+2

3

SUBS

An[~], 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. An 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

destsrc

(for two operands)

dest

srcsrc1

(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 An[~], An, {adrs}

0

0

0

1

~A

1

1

An

adrs

x

dma16 (for direct) or offset16 (long relative) [see section 4.13]

SUBS An[~], An[~], pma16

1

1

1

0

0

1

1

An

0

1

0

0

1

1

A~

~A

SUBS An[~], An, An~

1

1

1

0

0

1

1

An

0

0

1

0

0

0

0

~A

SUBS An[~], An~, An

1

1

1

0

0

1

1

An

0

0

1

0

0

0

1

~A

SUBS An[~], An[~], PH

1

1

1

0

0

1

1

An

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., srcsrc1) 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.