Texas Instruments MSP50C614 Subs Subtract Accumulataor String, Assembly Language Instructions 177

Models: MSP50C614

1 414
Download 414 pages 24.44 Kb
Page 269
Image 269

Individual Instruction Descriptions

4.14.81 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

ns+4

 

2

N/R

32b

 

 

 

SUBS

 

An[~], An, An~

ns+2

 

1

nR+2

3

 

 

 

SUBS

 

An[~], An~, An

ns+2

 

1

nR+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 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 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., 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.

Assembly Language Instructions

4-177

Page 269
Image 269
Texas Instruments MSP50C614 manual Subs Subtract Accumulataor String, Assembly Language Instructions 177