BLX[condition] dest
其中:
condition |
16 個條件之一。請參閱條件程式碼狀態。 |
dest |
目標暫存器 |
此格式的 BLX 指令將返回地址儲存到“暫存器 14”,並分支到指定的地址 dest(包含 ARM* 或 Thumb* 子例程)。要選擇 ARM 子例程,目標暫存器的位 [0] 需要設定為 0。要選擇 Thumb 子例程,目標暫存器的位 [0] 需要設定為 1。condition 必須是有效值;否則將指令當作 NOP。
無運算元。
N |
Z |
C |
V |
Q |
S |
I |
F |
T |
T |
T |
T |
T |
|
|
|
|
M |
31 |
|
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
|
16 |
15 |
|
12 |
11 |
|
8 |
7 |
6 |
5 |
4 |
3 |
|
0 |
condition |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
SBO |
SBO |
SBO |
0 |
0 |
1 |
1 |
dest |
1 ;@.text
2
3 ;@.globlfuncblx2
4
5 ;@.align 0
6
7 ;@ * * * BLX(2) * * *
8
9
10 AREA example, CODE, READONLY
11 label1
12 00000000 E4107000 LDR R7, label2
13 00000004 E3A0B001 MOV R11,#1
14 00000008 E2AB0001 ADC R0,R11, #1
15
16 00000012 E12FFF37 BLX R7
17
18 00000016 E3A0B001 MOV R11, #1
19 00000020 E21B0001 ANDS R0, R11, #1
20
21 label2
22 DCD 0xdeadbeef
23 DCB "string"
24 00000037 E12FFF1E BX R14
25
26 END 27