UM10429
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2010. All rights reserved.
User manual
Rev. 1 — 20 October 2010
219 of 258
NXP Semiconductors
UM10429
Chapter 19: Appendix LPC1102 ARM Cortex-M0 reference
19.4.6.1 B, BL, BX, and BLX
Branch instructions.
19.4.6.1.1
Syntax
B{
cond
}
label
BL
label
BX
Rm
BLX
Rm
where:
cond
is an optional condition code, see
.
label
is a PC-relative expression. See
Rm
is a register providing the address to branch to.
19.4.6.1.2
Operation
All these instructions cause a branch to the address indicated by
label
or contained in the
register specified by
Rm
. In addition:
•
The BL and BLX instructions write the address of the next instruction to LR, the link
register R14.
•
The BX and BLX instructions result in a HardFault exception if bit[0] of
Rm
is 0.
BL and BLX instructions also set bit[0] of the LR to 1. This ensures that the value is
suitable for use by a subsequent POP {PC} or BX instruction to perform a successful
return branch.
shows the ranges for the various branch instructions.
19.4.6.1.3
Restrictions
In these instructions:
•
Do not use SP or PC in the BX or BLX instruction.
BL
Branch with Link
BLX
Branch indirect with Link
BX
Branch indirect
Table 209. Branch and control instructions
Mnemonic
Brief description
See
Table 210. Branch ranges
Instruction
Branch range
B
label
−
2 KB to +2 KB
B
cond
label
−
256 bytes to +254 bytes
BL
label
−
16 MB to +16 MB
BX
Rm
Any value in register
BLX
Rm
Any value in register