| 
 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]
| 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 
(1)ADD src,dst 
 | 
 | 
 
#UIMM:4 
 | 
 
- 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
#SIMM:8 
 | 
 
- 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
#SIMM:16 
 | 
 
- 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
#SIMM:24 
 | 
 
- 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
#IMM:32 
 | 
 
- 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
Rs 
 | 
 
- 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
[Rs].memex 
 | 
 
- 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
dsp:8[Rs].memex  
 | 
 
- 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
dsp:16[Rs].memex  
 | 
 
- 
 | 
 
Rd 
 | 
 | 
| 
 
(2)ADD src,src2,dst 
 | 
 | 
 
#SIMM:8 
 | 
 
Rs 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
#SIMM:16 
 | 
 
Rs 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
#SIMM:24 
 | 
 
Rs 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
#IMM:32 
 | 
 
Rs 
 | 
 
Rd 
 | 
 | 
| 
 | 
 
Rs 
 | 
 
Rs 
 | 
 
Rd 
 | 
 | 
 
[Flag 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