110
11100B–ATARM–31-Jul-12
SAM4S Series [Preliminary]
– if the instruction is conditional, it must be the last instruction in the IT block
• with the exception of the
ADD{cond} PC, PC, Rm
instruction,
Rn
can be PC only in
ADD
and
SUB
, and
only with the additional restrictions:
– the user must not specify the S suffix
– the second operand must be a constant in the range 0 to 4095.
– Note: When using the PC for an addition or a subtraction, bits[1:0] of the PC are
rounded to
0b00
before performing the calculation, making the base address for the
calculation word-aligned.
– Note: To generate the address of an instruction, the constant based on the value of
the PC must be adjusted. ARM recommends to use the
ADR
instruction instead of
ADD
or
SUB
with
Rn
equal to the PC, because the assembler automatically calculates
the correct constant for the
ADR
instruction.
When
Rd
is PC in the
ADD{cond} PC, PC, Rm
instruction:
• bit[0] of the value written to the PC is ignored
• a branch occurs to the address created by forcing bit[0] of that value to 0.
Condition Flags
If
S
is specified, these instructions update the N, Z, C and V flags according to the result.
Examples
ADD
R2, R1, R3
SUBS
R8, R6, #240
; Sets the flags on the result
RSB
R4, R4, #1280
; Subtracts contents of R4 from 1280
ADCHI
R11, R0, R3
; Only executed if C flag set and Z
; flag clear.
Multiword arithmetic examples
The example below shows two instructions that add a 64-bit integer contained in
R2
and
R3
to
another 64-bit integer contained in
R0
and
R1
, and place the result in
R4
and
R5
.
64-bit addition example:
ADDS
R4, R0, R2
; add the least significant words
ADC
R5, R1, R3
; add the most significant words with carry
Multiword values do not have to use consecutive registers. The example below shows instruc-
tions that subtract a 96-bit integer contained in R9, R1, and R11 from another contained in R6,
R2, and R8. The example stores the result in R6, R9, and R2.
96-bit subtraction example:
SUBS
R6, R6, R9
; subtract the least significant words
SBCS
R9, R2, R1
; subtract the middle words with carry
SBC
R2, R8, R11
; subtract the most significant words with carry
Содержание SAM4S Series
Страница 44: ...44 11100B ATARM 31 Jul 12 SAM4S Series Preliminary ...
Страница 412: ...412 11100B ATARM 31 Jul 12 SAM4S Series Preliminary ...
Страница 1105: ...1105 11100B ATARM 31 Jul 12 SAM4S Series Preliminary ...
Страница 1142: ...1142 11100B ATARM 31 Jul 12 SAM4S Series Preliminary Figure 43 3 100 ball VFBGA Package Drawing ...
Страница 1143: ...1143 11100B ATARM 31 Jul 12 SAM4S Series Preliminary Figure 43 4 64 lead LQFP Package Drawing ...
Страница 1145: ...1145 11100B ATARM 31 Jul 12 SAM4S Series Preliminary Figure 43 5 64 lead QFN Package Drawing ...