BL/BLX(1) (Thumb*) - Branch with Link, Branch with Link and ExchangeBL target
BLX target
where:
|
target |
Target address |
The BL instruction branches to the specified target containing a Thumb* subroutine. The return from subroutine needs to be defined explicitly. The BLX instruction in this format branches to the specified target containing an ARM* subroutine. The return from subroutine needs to be defined explicitly.
No operands.
|
N |
Z |
C |
>V |
Q |
S |
I |
F |
T |
|
|
|
|
|
|
|
|
|
M |
|
>15 |
14 |
13 |
12 |
11 |
10 |
|
0 |
|
1 |
1 |
1 |
H |
target |
|||
1 ;@.text
2 ;@.globl funblx
3 ;@.align 0
4 ;
5 AREA example,CODE,READONLY
6 CODE16
7
8 label1
9 ; Unconditional call to another
10 ; Thumb subroutine, within 4M bytes
11 ; Load return address to LR and
12 ; branch to subroutine dashed
13 00000000 F800DF00 BL dashed
14
15
16 ; start of subroutine dashed
17 dashed
18
19
20
21 ; Unconditional call to an ARM
22 ; (32-bit) subroutine, within 4M bytes
23 ; Load return address to LR and
24 ; branch to subroutine dotted, which
25 ; is in 32-bit ARM code
26 00000002 E800F000 BLX dotted
27
28 ; start of subroutine dotted
29 dotted