UM10360 All information provided in this document is subject to legal disclaimers. © NXP B.V. 2013. All rights reserved.
User manual Rev. 3 — 20 December 2013  679 of 841
NXP Semiconductors
UM10360
Chapter 34: Appendix: Cortex-M3 user guide
34.2.5.1 ADD, ADC, SUB, SBC, and RSB
Add, Add with carry, Subtract, Subtract with carry, and Reverse Subtract.
34.2.5.1.1 Syntax
op{S}{cond} {Rd,} Rn, Operand2
op{cond} {Rd,} Rn, #imm12 ; ADD and SUB only
where:
op is one of:
ADD: 
Add.
ADC: 
Add with Carry.
SUB: 
Subtract.
RSB: 
Reverse Subtract.
S: is an optional suffix. If S is specified, the condition code flags are updated on the result 
of the operation, see Section 34.2.3.7 “
Conditional execution”.
cond: is an optional condition code, see Section 34.2.3.7 “
Conditional execution”.
Rd is the destination register. If Rd is omitted, the destination register is Rn.
Rn is the register holding the first operand.
Operand2 is a flexible second operand. See Section 34.2.3.3
 for details of the options.
imm12 is any value in the range 0-4095.
34.2.5.1.2 Operation
The 
ADD
 instruction adds the value of Operand2 or imm12 to the value in Rn.
The 
ADC
 instruction adds the values in Rn and Operand2, together with the carry flag.
The 
SUB
 instruction subtracts the value of Operand2 or imm12 from the value in Rn.
The 
SBC
 instruction subtracts the value of Operand2 from the value in Rn. If the carry flag 
is clear, the result is reduced by one.
The 
RSB
 instruction subtracts the value in Rn from the value of Operand2. This is useful 
because of the wide range of options for Operand2.
Use 
ADC
 and 
SBC
 to synthesize multiword arithmetic, see Section 34.2.5.1.6.
See also Section 34.2.4.1
.
Remark: 
ADDW
 is equivalent to the 
ADD
 syntax that uses the imm12 operand. 
SUBW
 is 
equivalent to the 
SUB
 syntax that uses the imm12 operand.
34.2.5.1.3 Restrictions
• Operand2 must not be SP and must not be PC
• Rd can be SP only in 
ADD
 and 
SUB
, and only with the additional restrictions: