Atmel SAM4SD32B Preliminary Data Sheet page 166

At91sam arm-based flash mcu
Table of Contents

Advertisement

SAM4S Series [Preliminary]
166
The table below shows the ranges for the various branch instructions.
Table 11-26. Branch Ranges
Instruction
B label
(outside IT block)
Bcond label
(inside IT block)
Bcond label
BL{cond} label
BX{cond} Rm
BLX{cond} Rm
The
suffix might be used to get the maximum branch range. See
.W
.
Restrictions
The restrictions are:
• do not use PC in the
BLX
• for
and
, bit[0] of
BX
BLX
address created by changing bit[0] to 0
• when any of these instructions is inside an IT block, it must be the last instruction of the IT
block.
is the only conditional instruction that is not required to be inside an IT block. However, it
Bcond
has a longer branch range when it is inside an IT block.
Condition Flags
These instructions do not change the flags.
Examples
B
loopA
BLE
ng
B.W
target
BEQ
target
BEQ.W
target
BL
funC
BX
LR
BXNE
R0
BLX
R0
Branch Range
− 16 MB to +16 MB
− 1 MB to +1 MB
− 16 MB to +16 MB
− 16 MB to +16 MB
Any value in register
Any value in register
instruction
must be 1 for correct execution but a branch occurs to the target
Rm
; Branch to loopA
; Conditionally branch to label ng
; Branch to target within 16MB range
; Conditionally branch to target
; Conditionally branch to target within 1MB
; Branch with link (Call) to function funC, return
; address stored in LR
; Return from function call
; Conditionally branch to address stored in R0
; Branch with link and exchange (Call) to a address
; stored in R0.
"Instruction Width Selection"
11100B–ATARM–31-Jul-12

Advertisement

Chapters

Table of Contents
loading
Need help?

Need help?

Do you have a question about the SAM4SD32B and is the answer not in the manual?

Subscribe to Our Youtube Channel

Table of Contents