Individual Instruction Descriptions

4.14.3 ADDS

Add String

 

 

 

 

Syntax

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[label]

name

dest, src, src1

Clock, clk

Words, w

With RPT, clk

Class

 

 

 

 

 

 

 

 

 

 

ADDS

An[~], An, {adrs}

Table 4–46

Table 4–46

Table 4–46

1a

 

 

 

 

 

 

 

 

 

 

ADDS

An[~], An[~], pma16

nS+4

2

N/R

2b

 

 

ADDS

An[~], An~, An

nS+2

1

nR+2

3

 

 

ADDS

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 should not occur between one of these instructions and ADDS. An interrupt may cause incorrect results. Interrupts must be explicitly disabled at least one instruction before the class 1b instruction. This special sequence is protected inside a BEGLOOP – ENDLOOP construct. In addition, single stepping is not allowed for this instruction. An in this instruc- tion should be the same as An in one of the listed class 1b instruction. Offsets are allowed. See Section 4.8 for more detail.

Execution

dest string

src string + src1 string

 

 

 

 

 

 

 

 

 

 

 

 

PC PC + w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Flags Affected

dest is An:

 

 

 

OF, SF, ZF, CF are set accordingly

 

 

 

 

 

src1 is {adrs}:

 

 

TAG is set accordingly

 

 

 

 

 

 

 

 

 

Opcode

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Instructions

 

16

15

14

13

12

 

11

10

9

 

8

7

 

6

5

4

 

3

2

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADDS An[~], An, {adrs}

 

0

0

0

0

~A

 

1

1

 

An

 

 

 

 

 

adrs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADDS An[~], An[~], pma16

1

1

1

0

0

 

1

1

 

An

0

 

0

0

0

 

0

1

A~

 

~A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

pma16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADDS An[~], An~, An

 

1

1

1

0

0

 

1

1

 

An

0

 

0

1

0

 

1

0

A~

 

~A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADDS An[~], An[~], PH

 

1

1

1

0

0

 

1

1

 

An

0

 

1

1

0

 

1

0

A~

 

~A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Description

Add value of src string to the value of src1 string and store resulting string in

 

dest. String length minus two should be stored in STR before execution.

 

See Also

ADD, ADDB, SUB, SUBB, SUBS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Example 4.14.3.1

ADDS A0, A0~, *R2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Add data memory string beginning at address in R2 to accumulator string A0~, put result in accumulator string A0.

Example 4.14.3.2 ADDS A0, A0~, 0x1400

Add program memory string beginning at address 0x1400 to accumulator string A0~, put result in accumulator string A0.

4-78

Page 164
Image 164
Texas Instruments MSP50C6xx manual Adds Add String, Clock , clk Words , w