資料介紹
8.4 帶狀態(tài)切換的連接跳轉(zhuǎn)指令BLX(2)
1.指令編碼格式
帶連接和狀態(tài)切換的跳轉(zhuǎn)指令BLX(Branch with Link Exchange)使用一個寄存器中的絕對地址,用于使程序跳轉(zhuǎn)到Thumb狀態(tài)或從Thumb狀態(tài)返回。該指令用分支寄存器的最低位來更新CPSR中的T位,將返回地址寫入到連接寄存器LR中。
指令編碼格式如圖8.4所示。

圖8.4 BLX(2)指令編碼格式
2.語法格式
BLX{《cond》} 《Rm》
?、?《cond》
為指令編碼中的條件域。它指示指令在什么條件下執(zhí)行。當(dāng)《cond》忽略時,指令為無條件執(zhí)行(cond=AL(Alway))。
?、?《Rm》
寄存器Rm指定轉(zhuǎn)移目標(biāo),Rm的第0位拷貝到CPSR中的T位,bit[31∶0]移入PC。
· 如果Rm的bit[0]=1,則跳轉(zhuǎn)時自動將CPSR中的標(biāo)志位T置位,即把目標(biāo)地址的代碼解釋為Thumb代碼。
· 如果Rm的bit[0]=0,則跳轉(zhuǎn)時自動將CPSR中的標(biāo)志位T復(fù)位,即把目標(biāo)地址代碼解釋為ARM代碼。
3.指令操作的偽代碼
指令操作的偽代碼如下面程序段所示。
If ConditionPass{cond} then
LR = address of the instruction after the branch instruction
T Flag=Rm[0]
PC=Rm AND 0xfffffffe
注意在這種情況下,如果Rm的bit[1∶0]=0b10,指令的執(zhí)行結(jié)果不可預(yù)知,因為這將導(dǎo)致在ARM狀態(tài)下非對齊的字訪問。
4.指令舉例
調(diào)用Thumb子程序。
CODE32 ;ARM代碼
……
BLX TSUB ;調(diào)用Thumb子程序
……
CODE16 ;Thumb代碼開始
TSUB
……
BX r14 ;返回ARM狀態(tài)
注意(1)一些不支持Thumb指令集的ARM處理器將捕獲這些指令,允許軟件仿真Thumb指令。
?。?)只有實現(xiàn)ARMv5版本以上的處理器支持BLX指令的兩種格式。
?
1.指令編碼格式
帶連接和狀態(tài)切換的跳轉(zhuǎn)指令BLX(Branch with Link Exchange)使用一個寄存器中的絕對地址,用于使程序跳轉(zhuǎn)到Thumb狀態(tài)或從Thumb狀態(tài)返回。該指令用分支寄存器的最低位來更新CPSR中的T位,將返回地址寫入到連接寄存器LR中。
指令編碼格式如圖8.4所示。

圖8.4 BLX(2)指令編碼格式
2.語法格式
BLX{《cond》} 《Rm》
?、?《cond》
為指令編碼中的條件域。它指示指令在什么條件下執(zhí)行。當(dāng)《cond》忽略時,指令為無條件執(zhí)行(cond=AL(Alway))。
?、?《Rm》
寄存器Rm指定轉(zhuǎn)移目標(biāo),Rm的第0位拷貝到CPSR中的T位,bit[31∶0]移入PC。
· 如果Rm的bit[0]=1,則跳轉(zhuǎn)時自動將CPSR中的標(biāo)志位T置位,即把目標(biāo)地址的代碼解釋為Thumb代碼。
· 如果Rm的bit[0]=0,則跳轉(zhuǎn)時自動將CPSR中的標(biāo)志位T復(fù)位,即把目標(biāo)地址代碼解釋為ARM代碼。
3.指令操作的偽代碼
指令操作的偽代碼如下面程序段所示。
If ConditionPass{cond} then
LR = address of the instruction after the branch instruction
T Flag=Rm[0]
PC=Rm AND 0xfffffffe
注意在這種情況下,如果Rm的bit[1∶0]=0b10,指令的執(zhí)行結(jié)果不可預(yù)知,因為這將導(dǎo)致在ARM狀態(tài)下非對齊的字訪問。
4.指令舉例
調(diào)用Thumb子程序。
CODE32 ;ARM代碼
……
BLX TSUB ;調(diào)用Thumb子程序
……
CODE16 ;Thumb代碼開始
TSUB
……
BX r14 ;返回ARM狀態(tài)
注意(1)一些不支持Thumb指令集的ARM處理器將捕獲這些指令,允許軟件仿真Thumb指令。
?。?)只有實現(xiàn)ARMv5版本以上的處理器支持BLX指令的兩種格式。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- T5L_TA指令集開發(fā)資料
- 跳轉(zhuǎn)指令表的詳細(xì)資料說明 2次下載
- 一種C波段帶狀線定向耦合器的研究設(shè)計與實際應(yīng)用 15次下載
- 51單片機(jī)匯編教程之指令集的詳細(xì)資料說明
- 使用單片機(jī)匯編跳轉(zhuǎn)指令延時一秒的程序免費下載
- 基于PIC10F220/222下的6 引腳 8 位閃存單片機(jī)
- 基于PIC16F5X下的8 位 CMOS 閃存單片機(jī)
- 基于PIC12F508/509/16F505下的8/14 引腳 8 位閃存單片機(jī)
- 跳轉(zhuǎn)指令B及帶連接的跳轉(zhuǎn)指令BLX上 2次下載
- Thumb指令集之Thumb跳轉(zhuǎn)指令 1次下載
- 數(shù)據(jù)傳送指令之程序狀態(tài)寄存器指令簡述 1次下載
- 三菱FX系列PLC條件跳轉(zhuǎn)和子程序指令的應(yīng)用_赫煥麗 3次下載
- ARM系列處理器應(yīng)用技術(shù)完全手冊(黑色經(jīng)典系列
- arm指令集(1)
- IO口狀態(tài)切換說明.pdf
- Vim跳轉(zhuǎn)技巧 1550次閱讀
- 狀態(tài)機(jī)該怎么監(jiān)控 439次閱讀
- PLC基本工作狀態(tài) 5282次閱讀
- SIMATIC S7-1500程序控制指令簡述 2634次閱讀
- 狀態(tài)機(jī)要實現(xiàn)哪些內(nèi)容 748次閱讀
- PLC指令的應(yīng)用方面到什么程度 589次閱讀
- 深度剖析ARM跳轉(zhuǎn)指令 2922次閱讀
- continue和break跳轉(zhuǎn)語句介紹 1691次閱讀
- PLC跳轉(zhuǎn)/標(biāo)號指令的工作原理及應(yīng)用舉例 5957次閱讀
- BL(B)和LDR跳轉(zhuǎn)范圍是如何規(guī)定的 2443次閱讀
- armv8/armv9的執(zhí)行狀態(tài)的跳轉(zhuǎn)和切換 4319次閱讀
- 鴻蒙內(nèi)核源碼的中斷環(huán)境下的任務(wù)切換 2329次閱讀
- 鴻蒙內(nèi)核源碼之線程環(huán)境下的任務(wù)切換 1491次閱讀
- 鴻蒙內(nèi)核分析:線程中斷環(huán)境下的任務(wù)切換 2621次閱讀
- ARM嵌入式系統(tǒng)的中斷服務(wù)例程跳轉(zhuǎn) 2836次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 2次下載 | 免費
- 2AN158 GD32VW553 Wi-Fi開發(fā)指南
- 1.51MB | 2次下載 | 免費
- 3AN148 GD32VW553射頻硬件開發(fā)指南
- 2.07MB | 1次下載 | 免費
- 4AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費
- 5AN153-用于電源系統(tǒng)管理的Linduino
- 1.38MB | 次下載 | 免費
- 6AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費
- 7SM2018E 支持可控硅調(diào)光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費
- 8AN-1308: 電流檢測放大器共模階躍響應(yīng)
- 545.42KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機(jī)智能手環(huán)心率計步器體溫顯示設(shè)計
- 0.10 MB | 130次下載 | 免費
- 4使用單片機(jī)實現(xiàn)七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 53314A函數(shù)發(fā)生器維修手冊
- 16.30 MB | 31次下載 | 免費
- 6美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 7如何正確測試電源的紋波
- 0.36 MB | 17次下載 | 免費
- 8感應(yīng)筆電路圖
- 0.06 MB | 10次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
電子發(fā)燒友App






創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論