ARM 汇编中跳转指令

今天检查实习生写的程序,发现他们对跳转指令有混用的现象,想给他们解释,于是重新复习了一下这几条跳转指令。

 

B :强制跳转

BL:带链接跳转,将下一个指令的地址复制到 lr(r14,链接寄存器)中。

BX:跳转并切换指令集,将下一个指令的地址复制到 lr(r14,链接寄存器)中。

BLX:带链接跳转并切换指令集,将下一个指令的地址复制到 lr(r14,链接寄存器)中,

    BLX label:无论何种情况,始终会更改处理器的状态 

    BX RmBLX Rm 可从 Rm 的位 [0] 推算出目标状态:

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

BXJ:跳转并转换到 Jazelle 状态 ,指令会将处理器的状态更改为 Jazelle

 

详细的可以到这里查询。

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204ic/Cihfddaf.html

posted @ 2010-08-26 22:42  c6000  阅读(4308)  评论(0编辑  收藏  举报