汇编中跳转指令

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 可从 Rm 的位 [0] 推算出目标状态:

如果 Rm 的位 [0] 为 0,则处理器的状态会更改为(或保持在)ARM 状态

如果 Rm 的位 [0] 为 1,则处理器的状态会更改为(或保持在)Thumb 状态

猜你喜欢

转载自blog.csdn.net/danwuxie/article/details/81295335