109
11100B–ATARM–31-Jul-12
SAM4S Series [Preliminary]
11.6.5.1
ADD, ADC, SUB, SBC, and RSB
Add, Add with carry, Subtract, Subtract with carry, and Reverse Subtract.
Syntax
op{S}{cond} {Rd,} Rn, Operand2
op{cond} {Rd,} Rn, #imm12
; ADD and SUB only
where:
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 Multiword arithmetic examples on.
Note:
ADDW
is equivalent to the
ADD
syntax that uses the
imm12
operand.
SUBW
is equivalent to the
SUB
syntax that uses the
imm12
operand.
Restrictions
In these instructions:
•
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:
–
Rn
must also be SP
– any shift in
Operand2
must be limited to a maximum of 3 bits using
LSL
•
Rn
can be SP only in
ADD
and
SUB
•
Rd
can be PC only in the
ADD{cond} PC, PC, Rm
instruction where:
– the user must not specify the S suffix
–
Rm
must not be PC and must not be SP
op
is one of:
ADD
Add.
ADC
Add with Carry.
SUB
Subtract.
SBC
Subtract with Carry.
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
.
cond
is an optional condition code, see
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
for details of the options.
imm12
is any value in the range 0-4095.
Summary of Contents for SAM4S Series
Page 44: ...44 11100B ATARM 31 Jul 12 SAM4S Series Preliminary ...
Page 412: ...412 11100B ATARM 31 Jul 12 SAM4S Series Preliminary ...
Page 1105: ...1105 11100B ATARM 31 Jul 12 SAM4S Series Preliminary ...
Page 1143: ...1143 11100B ATARM 31 Jul 12 SAM4S Series Preliminary Figure 43 4 64 lead LQFP Package Drawing ...
Page 1145: ...1145 11100B ATARM 31 Jul 12 SAM4S Series Preliminary Figure 43 5 64 lead QFN Package Drawing ...