B: 跳转。
B label 满足条件立即跳转到Lable指定的地址执行
BL: 带链接的跳转。 首先将当前指令的下一条指令地址保存在LR寄存器,然后跳转的lable。通常用于调用子程序,可通过在子程序的尾部添加mov pc, lr 返回。
BX: 带状态切换的跳转。最低位为1时,切换到Thumb指令执行,为0时,解释为ARM指令执行。
BLX: 带链接和状态切换的跳转。结合了BX与BL功能,
操作:
BL
和 BLX
指令可将下一个指令的地址复制到 lr(r14,链接寄存器)中
BX
和 BLX
指令可将处理器的状态从 ARM 更改为 Thumb,或从 Thumb 更改为 ARM。
BLX
无论何种情况,始终会更改处理器的状态。label
BX
和 Rm
BLX
可从 Rm
的位 [0] 推算出目标状态:Rm
如果
的位 [0] 为 0,则处理器的状态会更改为(或保持在)ARM 状态Rm
如果
的位 [0] 为 1,则处理器的状态会更改为(或保持在)Thumb 状态Rm