ARM中B、BL、BX、BLX指令的区别

  • 内容
  • 相关

1、B------跳转指令

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

      例:B  0x1234   ;跳转到绝对地址0x1234处。

2、BL-----带返回的连接跳转

      BL指令用于实现子程序调用。子程序的返回可通过将LR寄存器的值复制到PC寄存器来实现。下面的指令可实现子程序返回:(1)、BX   R14            (2)、MOV   PC,R14

      例:BL func    ;跳转到子程序func处执行,同时将当前pc值保存到LR中。

3、BX------跳转并切换状态

     带状态切换的跳转指令BX使程序跳转到指令中指定的参数Rm指定的地址执行程序。若 Rm 的 bit[0] 为1,切换到 Thumb 指令执行;若 Rm 的 bit[0] 为0,切换到 ARM 指令执行。

     指令的语法格式:BX{<cond>}    <Rm>

     例:BX   R0      ;跳转到R0中的地址,如果R0[0]=1,则进入Thumb状态。

4、BLX------带返回的跳转并切换状态

      该指令为无条件执行指令。

本文标签:

版权声明:若无特殊注明,本文皆为《尤尤》原创,转载请保留文章出处。

本文链接:ARM中B、BL、BX、BLX指令的区别 - https://www.yxfseo.cn/post-97.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注