資料介紹
Thumb指令集中的跳轉(zhuǎn)指令分以下6種類型。
① 無(wú)條件跳轉(zhuǎn),其跳轉(zhuǎn)空間為±2KB。
?、?條件跳轉(zhuǎn),其跳轉(zhuǎn)空間為±256B。
?、?帶返回的跳轉(zhuǎn)指令,其跳轉(zhuǎn)空間為±4MB。
?、?帶狀態(tài)切換的跳轉(zhuǎn)指令(是否進(jìn)行狀態(tài)切換可以在程序中設(shè)定選擇)。
?、?帶返回和狀態(tài)切換的跳轉(zhuǎn)指令(是否進(jìn)行狀態(tài)切換可以在程序中設(shè)定選擇)。
⑥ 第二種形式的帶返回和狀態(tài)切換的跳轉(zhuǎn)指令。
下面詳細(xì)介紹各指令的特點(diǎn)及用途。
11.3.1 跳轉(zhuǎn)指令B
Thumb中有兩個(gè)分支跳轉(zhuǎn)指令的變體,第一個(gè)變體與ARM版本指令相似,可條件執(zhí)行,跳轉(zhuǎn)被限制在有符號(hào)8位立即數(shù)所表示的范圍內(nèi),或者是±256B。第二個(gè)變體不可條件執(zhí)行(沒(méi)有條件碼部分),但擴(kuò)展了有效跳轉(zhuǎn)范圍,跳轉(zhuǎn)范圍為有符號(hào)11位立即數(shù)表示的范圍,即±2048B。
條件分支指令是Thumb指令中惟一可以條件執(zhí)行的指令。
首先來(lái)介紹可條件執(zhí)行的跳轉(zhuǎn)指令B(1)。
(1)編碼格式
可條件執(zhí)行的跳轉(zhuǎn)指令的編碼格式如圖11.1所示。

圖11.1 B(1)指令編碼格式
(2)指令的語(yǔ)法格式
B《cond》 《target_address》
?、?《cond》
指定指令的執(zhí)行條件。條件助記符與ARM中相同。
?、?《target_address》
指定程序跳轉(zhuǎn)的目標(biāo)地址。指令通過(guò)下面的方法計(jì)算目標(biāo)地址。
· 將指令中包含的8位有符號(hào)數(shù)左移一位。
· 將結(jié)果符號(hào)擴(kuò)展為32位。
· 將得到的值加到PC寄存器中,即得到跳轉(zhuǎn)的目標(biāo)地址。
有條件的跳轉(zhuǎn)指令可以實(shí)現(xiàn)±256B范圍的程序跳轉(zhuǎn)。
(3)指令操作的偽代碼
if ConditionPass{cond} then
PC=PC+{SignExtend(Signed_immed_8)《《1}
?。?)指令的使用
為了得到正確的signed_immed_8,匯編器需要執(zhí)行以下的操作步驟。
?、?首先形成跳轉(zhuǎn)的基地址。該跳轉(zhuǎn)的基地址是跳轉(zhuǎn)指令地址加4。也就是說(shuō),跳轉(zhuǎn)指令的基地址即當(dāng)前程序指針寄存器的值。
?、?從跳轉(zhuǎn)的目標(biāo)地址中減去基地址形成跳轉(zhuǎn)偏移量。該偏移量應(yīng)為偶數(shù)(因?yàn)門(mén)humb指令為半字對(duì)齊)。
?、?如果跳轉(zhuǎn)偏移量超出-256~+254B范圍,匯編器產(chǎn)生一個(gè)錯(cuò)誤。
④ 將產(chǎn)生的跳轉(zhuǎn)偏移量除以2放入指令編碼中的signed_immed_8域。
注意如果該指令的條件域?yàn)锳L,即指令編碼條件域?yàn)?b1110時(shí),程序產(chǎn)生未定義指令異常。當(dāng)指令的條件域?yàn)镹V,即指令編碼條件域?yàn)?b1111時(shí),指令等價(jià)于SWI指令。
?。?)ARM指令集中的跳轉(zhuǎn)指令
該指令與ARM指令集中B《cond》 《target_address》基本相似,所不同的是ARM指令集中,偏移量左移兩位而Thumb指令集中偏移量左移一位。另外,處理器在ARM和Thumb狀態(tài)下所讀取的PC值也是不同的。
下面介紹無(wú)條件跳轉(zhuǎn)指令B(2)。
① 無(wú)條件跳轉(zhuǎn),其跳轉(zhuǎn)空間為±2KB。
?、?條件跳轉(zhuǎn),其跳轉(zhuǎn)空間為±256B。
?、?帶返回的跳轉(zhuǎn)指令,其跳轉(zhuǎn)空間為±4MB。
?、?帶狀態(tài)切換的跳轉(zhuǎn)指令(是否進(jìn)行狀態(tài)切換可以在程序中設(shè)定選擇)。
?、?帶返回和狀態(tài)切換的跳轉(zhuǎn)指令(是否進(jìn)行狀態(tài)切換可以在程序中設(shè)定選擇)。
⑥ 第二種形式的帶返回和狀態(tài)切換的跳轉(zhuǎn)指令。
下面詳細(xì)介紹各指令的特點(diǎn)及用途。
11.3.1 跳轉(zhuǎn)指令B
Thumb中有兩個(gè)分支跳轉(zhuǎn)指令的變體,第一個(gè)變體與ARM版本指令相似,可條件執(zhí)行,跳轉(zhuǎn)被限制在有符號(hào)8位立即數(shù)所表示的范圍內(nèi),或者是±256B。第二個(gè)變體不可條件執(zhí)行(沒(méi)有條件碼部分),但擴(kuò)展了有效跳轉(zhuǎn)范圍,跳轉(zhuǎn)范圍為有符號(hào)11位立即數(shù)表示的范圍,即±2048B。
條件分支指令是Thumb指令中惟一可以條件執(zhí)行的指令。
首先來(lái)介紹可條件執(zhí)行的跳轉(zhuǎn)指令B(1)。
(1)編碼格式
可條件執(zhí)行的跳轉(zhuǎn)指令的編碼格式如圖11.1所示。

圖11.1 B(1)指令編碼格式
(2)指令的語(yǔ)法格式
B《cond》 《target_address》
?、?《cond》
指定指令的執(zhí)行條件。條件助記符與ARM中相同。
?、?《target_address》
指定程序跳轉(zhuǎn)的目標(biāo)地址。指令通過(guò)下面的方法計(jì)算目標(biāo)地址。
· 將指令中包含的8位有符號(hào)數(shù)左移一位。
· 將結(jié)果符號(hào)擴(kuò)展為32位。
· 將得到的值加到PC寄存器中,即得到跳轉(zhuǎn)的目標(biāo)地址。
有條件的跳轉(zhuǎn)指令可以實(shí)現(xiàn)±256B范圍的程序跳轉(zhuǎn)。
(3)指令操作的偽代碼
if ConditionPass{cond} then
PC=PC+{SignExtend(Signed_immed_8)《《1}
?。?)指令的使用
為了得到正確的signed_immed_8,匯編器需要執(zhí)行以下的操作步驟。
?、?首先形成跳轉(zhuǎn)的基地址。該跳轉(zhuǎn)的基地址是跳轉(zhuǎn)指令地址加4。也就是說(shuō),跳轉(zhuǎn)指令的基地址即當(dāng)前程序指針寄存器的值。
?、?從跳轉(zhuǎn)的目標(biāo)地址中減去基地址形成跳轉(zhuǎn)偏移量。該偏移量應(yīng)為偶數(shù)(因?yàn)門(mén)humb指令為半字對(duì)齊)。
?、?如果跳轉(zhuǎn)偏移量超出-256~+254B范圍,匯編器產(chǎn)生一個(gè)錯(cuò)誤。
④ 將產(chǎn)生的跳轉(zhuǎn)偏移量除以2放入指令編碼中的signed_immed_8域。

?。?)ARM指令集中的跳轉(zhuǎn)指令
該指令與ARM指令集中B《cond》 《target_address》基本相似,所不同的是ARM指令集中,偏移量左移兩位而Thumb指令集中偏移量左移一位。另外,處理器在ARM和Thumb狀態(tài)下所讀取的PC值也是不同的。
下面介紹無(wú)條件跳轉(zhuǎn)指令B(2)。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- ARM處理器的尋址方式和指令集介紹 33次下載
- ARM和Thumb-2的指令集快速參考卡 21次下載
- Thumb數(shù)據(jù)處理指令 0次下載
- Thumb指令集之Thumb編程模型 0次下載
- Thumb指令的特點(diǎn)及實(shí)現(xiàn) 0次下載
- Thumb指令集之多寄存器數(shù)據(jù)傳送指令解析 0次下載
- Thumb指令集之ARM和Thumb的混合編程 1次下載
- Thumb指令集之Thumb指令應(yīng)用 0次下載
- Thumb指令集之異常中斷產(chǎn)生指令解析 0次下載
- ARM和Thumb-2指令集快速參考卡 21次下載
- arm7指令集
- ARM指令集詳解
- arm指令集(1)
- ARM/THUMB指令系統(tǒng)
- ARM/THUMB微處理器結(jié)構(gòu)及指令系統(tǒng)
- RISC-V開(kāi)源指令集全面指南與解析 782次閱讀
- 現(xiàn)代處理器的主要指令集架構(gòu) 4645次閱讀
- 講講ARM指令集格式以及常用的ARM匯編指令 4054次閱讀
- NB-IOT常用AT指令集簡(jiǎn)介 3362次閱讀
- PLC跳轉(zhuǎn)/標(biāo)號(hào)指令的工作原理及應(yīng)用舉例 5955次閱讀
- 什么指令集支持原子操作 1425次閱讀
- Thumb指令、Thumb-2指令、Thumb-2EE 指令區(qū)別是什么 1.3w次閱讀
- 嵌入式處理器的體系架構(gòu)與內(nèi)核 3406次閱讀
- 詳解CPU功耗的方法與技巧 5910次閱讀
- Cortex-M系列處理器指令集_指令集特性比較總結(jié) 8023次閱讀
- risc指令集是什么_有哪些 2w次閱讀
- mips指令集指的是什么 1.3w次閱讀
- mips匯編指令集功能的介紹 2.2w次閱讀
- esp8266 at指令集詳解 14.3w次閱讀
- thumb指令集是什么_thumb指令集與arm指令集的區(qū)別 1.8w次閱讀
下載排行
本周
- 1GD100PIX120C6SNA規(guī)格書(shū)
- 0.98 MB | 3次下載 | 免費(fèi)
- 2一款入耳式耳機(jī)的仿真與分析
- 0.44 MB | 2次下載 | 免費(fèi)
- 3Eurotherm TKS Temperature 用戶手冊(cè)
- 1.46 MB | 2次下載 | 免費(fèi)
- 4人形機(jī)器人電機(jī)驅(qū)動(dòng)和傳感報(bào)告
- 4.27 MB | 2次下載 | 免費(fèi)
- 5無(wú)線系統(tǒng)中天線和RF元件電磁建模
- 7.48 MB | 1次下載 | 4 積分
- 6Multisim模擬電路仿真教程
- 1.93 MB | 1次下載 | 3 積分
- 7DMP300C1型微機(jī)變壓器保護(hù)測(cè)控裝置技術(shù)說(shuō)明書(shū)
- 4.11 MB | 次下載 | 10 積分
- 8用MT3540芯片設(shè)計(jì)BOOST電路 1(可下載)
- 445.66 KB | 次下載 | 免費(fèi)
本月
- 1晶體三極管的電流放大作用詳細(xì)說(shuō)明
- 0.77 MB | 32次下載 | 2 積分
- 2Python從入門(mén)到精通背記手冊(cè)
- 18.77 MB | 27次下載 | 1 積分
- 3雙極型三極管放大電路的三種基本組態(tài)的學(xué)習(xí)課件免費(fèi)下載
- 4.03 MB | 25次下載 | 1 積分
- 4AIWA HS-J303 MKⅡ維修手冊(cè)
- 22.47 MB | 23次下載 | 10 積分
- 5多級(jí)放大電路的學(xué)習(xí)課件免費(fèi)下載
- 1.81 MB | 21次下載 | 2 積分
- 6九陽(yáng)豆?jié){機(jī)高清原理圖
- 2.47 MB | 20次下載 | 1 積分
- 7AIWA HS-J202/HS-J202M/HS-J800維修手冊(cè)
- 13.60 MB | 15次下載 | 10 積分
- 81875功放原理圖
- 0.04 MB | 11次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191382次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183337次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81585次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73814次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評(píng)論