ARM分支指令


ARM处理器使用的分支指令有B、BL、BX、BLX,各指令区别如下:

1、B:Branch,无条件跳转。

通过将PC的值设置为<address>来指示下条指令的地址,这是一种永久性分支,不会再返回。

该指令主要用于循环中,或者将程序的控制权交给另一部分代码。

……

B fwd

MOV r0, r0 ;这条指令将不会得到执行

fwd:

 

2、BL:Branch with Link,带链接的跳转。

将PC的值设置为下条指令的地址,并将BL指令后的地址存放到LR中,从而在子程序执行完成之后返回到原来的位置。

……

BL calc

……

calc: ADD r0, r1, r2

BX lr ;返回到先前的位置

 

3、BX:Branch with eXchange,跳转并交换。

允许程序在ARM状态和Thumb状态之间切换

 

4、BLX:Branch with Link and eXchange,带链接和交换的跳转。

该指令可以进行ARM/Thumb状态切换,并更新LR寄存器,允许返回到先前的位置。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM