ADD

Addition without carry

ADD

ADD


[Syntax]

(1)ADD src, dest

(2)ADD src, src2, dest

 

[Operation]

(1)dest = dest + src;

(2)dest = src + src2;

 

[Function]

(1)This instruction adds dest and src and places the result in dest.

(2)This instruction adds src and src2 and places the result in dest.

[Instruction Format]

Syntax

Processng Size

src

src2

dest

Code size

(Byte)

(1)ADD src,dst

L

#UIMM:4

-

Rd

2

L

#SIMM:8

-

Rd

3

L

#SIMM:16

-

Rd

4

L

#SIMM:24

-

Rd

5

L

#IMM:32

-

Rd

6

L

Rs

-

Rd

2

L

[Rs].memex

-

Rd

2 (memex == UB)

3 (memex != UB)

L

dsp:8[Rs].memex

-

Rd

3 (memex == UB)

4 (memex != UB)

L

dsp:16[Rs].memex

-

Rd

4 (memex == UB)

5 (memex != UB)

(2)ADD src,src2,dst

L

#SIMM:8

Rs

Rd

3

L

#SIMM:16

Rs

Rd

4

L

#SIMM:24

Rs

Rd

5

L

#IMM:32

Rs

Rd

6

L

Rs

Rs

Rd

3

[Flag Change]

Flag

C

Z

S

O

Change

 

 

 

 

Conditions

C : The flag is set if an unsigned operation produces an overflow; otherwise it is cleared.

Z : The flag is set if dest is 0 after the operation; otherwise it is cleared.

S : The flag is set if the MSB of dest after the operation is 1; otherwise it is cleared.

O : The flag is set if a signed operation produces an overflow; otherwise it is cleared.

 

[Description Example]

ADD #15, R2

ADD R1, R2

ADD [R1], R2

ADD [R1].UB, R2

ADD #127, R1, R2

ADD R1, R2, R3