1.18.ARM汇编指令集6之跳转指令

ARM汇编指令之跳转指令:B & BL & BX

在ARM中有两种方式可以实现程序的跳转,一种是使用跳转指令直接跳转,另一种则是直接向PC寄存器赋值实现跳转。跳转指令有跳转指令B,带链接的跳转指令BL,带状态切换的跳转指令BX。



* B

跳转指令,跳转到指定的地址执行程序。

指令格式:

B{cond}  label

eg:

b waita      ; 跳转到waita标号处

b 0x1234   ; 跳转到绝对地址0x1234处

注:跳转指令跳转的范围限定在当前指令的±32Mb。


* BL

带链接的跳转指令,指令将下一条指令的地址拷贝到R14(即LR)链接寄存器中,然后跳转到指定地址运行程序。

指令格式:

BL{cond} label

eg:

bl delay

注:跳转指令BL限定范围同样也是±32Mb,而且一般用于子程序的调用,调用完之后可以将LR寄存器的值赋值给PC,以让程序继续回到调用之前指令的下一条指令继续执行。


* BX

带状态切换的跳转指令,跳转到Rm指定的地址执行程序,若Rm的bit0为1,则跳转时自动将CPSR中的标志T置位,即把目标地址的代码解释为Thumb代码;若Rm的bit0为0,则跳转时自动将CPSR中的标志T复位,即把目标地址的代码解释为ARM代码。

指令格式:

BX{cond} Rm

eg:

adrl r0,ThumbFun+1

bx r0                          ; 跳转到R0指定地址,并根据R0的最低位来切换处理器状态




  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值