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