ARM的分支指令

  在ARM中有两种方式可以实现程序的跳转,一种是使用分支指令直接跳转,另一种则是直接向PC寄存器赋值实现跳转。 分支指令有以下三种:
    分支指令B;
    带链接的分支指令BL;
    带状态切换的分支指令BX。
    分支指令——B指令,该指令跳转范围限制在当前指令的±32M字节地址内(ARM指令为字对齐,最低2位地址固定为0)。指令格式如下:B{cond}    Label
       应用示例:
       B   WAITA ; 跳转到WAITA标号处
       …
       WAITA  …
       带链接的分支指令——BL指令适用于子程序调用,使用该指令后, 下一条指令的地址被拷贝到R14(即LR) 连接寄存器中,然后跳转到指定地址运行程序。跳转范围限制在当前指令的±32M字节地址内。指令格式如下:
        BL{cond}    Label
        带状态切换的分支指令——BX指令,该指令可以根据跳转地址(Rm)的最低位来切换处理器状态。 ARM指令为字对齐,最低2位地址固定为0。指令格式如下:
        BX{cond}    Rm
例:
 
    ADRL   R0,ThumbFun+1  ;将Thumb程序的入口地址加1存入R0
    BX     R0      ; 跳转到R0指定的地址,
     ;并根据R0的最低位来切换处理器状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值