




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、配套教材:ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程,邱鐵 編著,清華大學(xué)出版社,2009,3ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程第5章Thumb指令在ARM體系結(jié)構(gòu)中,ARM指令是32位的,具有很高的執(zhí)行效率。但是對(duì)于嵌入式設(shè)備而言,其存儲(chǔ)空間極其有限,對(duì)于每條ARM指令都要占用4個(gè)字節(jié),對(duì)存儲(chǔ)空間的要求較高。為了壓縮代碼的存儲(chǔ),增加代碼存儲(chǔ)密度,ARM公司設(shè)計(jì)了16位的Thumb指令。 內(nèi)容提要51 Thumb數(shù)據(jù)處理指令52 Thumb存儲(chǔ)器操作指令53 Thumb分支指令54 Thumb軟中斷指令55 Thumb指令功能碼段分析51 Thumb數(shù)據(jù)處理指令Thumb數(shù)據(jù)處理指令可以分為5類:數(shù)據(jù)傳送指令、算術(shù)運(yùn)
2、算指令、邏輯運(yùn)算指令、移位操作指令和比較指令。 寄存器移位指令 opcode Rd,Rs,#shift_immed_5Rd目標(biāo)寄存器;Rs源操作數(shù)寄存器;shift_immed_5寄存器移位的數(shù)值,取值范圍為031;Thumb寄存器移位指令操作碼編碼 低位寄存器算術(shù)運(yùn)算指令 1加法與減法運(yùn)算指令(對(duì)R0R7操作)這類指令的匯編語(yǔ)法格式為opcode Rd,Rs,Rmopcode Rd,Rs,#immed_3Rd目標(biāo)寄存器;Rs源操作數(shù)寄存器;Rm第二操作數(shù)寄存器;immed_3第二操作數(shù)為立即數(shù);I決定第二操作數(shù)是寄存器還是立即數(shù);opcode指令操作碼 2MOV、CMP、ADD與SUB指令(
3、對(duì)R0R7操作)opcode Rd, # immed_8ALU操作指令這類指令的匯編語(yǔ)法格式為opcode Rd, Rs帶高位寄存器操作的Thumb指令 這類指令的匯編語(yǔ)法格式為opcode Rd,Hsopcode Hd,Rsopcode Hd,Hs帶SP/PC的算術(shù)運(yùn)算指令 1SP/PC加法運(yùn)算指令這類指令的匯編語(yǔ)法格式為ADD Rd,PC,#immed_8 4ADD Rd,SP,#immed_8 42SP加法/減法運(yùn)算指令這類指令的匯編語(yǔ)法格式為ADD SP,#immed_7 4SUB SP,#immed_7 45.2 Thumb存儲(chǔ)器操作指令Thumb存儲(chǔ)器操作指令包括無符號(hào)字節(jié)、半字和
4、字?jǐn)?shù)據(jù)的存儲(chǔ)與加載,多寄存器的加載與存儲(chǔ)指令和棧操作指令。 字節(jié)、半字和字的加載/存儲(chǔ)指令 立即數(shù)偏移量的加載/存儲(chǔ)指令LDRB Rd,Rn,#immed_5 4STRB Rd,Rn,#immed_5 4寄存器偏移量的加載/存儲(chǔ)指令LDRB Rd,Rn,RmSTRB Rd,Rn,Rm有符號(hào)字/半字的加載/存儲(chǔ)指令LDRH Rd,Rn,RmSTRH Rd,Rn,RmLDRSB Rd,Rn,RmLDRSH Rd,Rn,Rm偏移量為立即數(shù)的半字加載/存儲(chǔ)指令LDRH Rd,Rn,#immed_5 2STRH Rd,Rn,#immed_5 2PC作為基址寄存器的字加載指令LDR Rd, PC,# im
5、med_84SP作為基址寄存器的加載/存儲(chǔ)指令LDR Rd, SP,# immed_84STR Rd, SP,# immed_84批量加載/存儲(chǔ)指令寄存器入棧出棧指令PUSH reglistPOP reglistPUSH reglist, LRPOP reglist, PC多寄存器加載/存儲(chǔ)指令LDMIARn! reglistSTMIARn! reglist5.3 Thumb分支指令與ARM指令一樣,在Thumb指令集中,也有相應(yīng)的分支指令實(shí)現(xiàn)程序的跳轉(zhuǎn)和子程序的調(diào)用。Thumb分支指令可分為B分支指令、帶鏈接的分支指令和帶狀態(tài)切換的分支指令。B分支指令條件分支指令 Bcondlabel無條件
6、分支指令這類指令的匯編語(yǔ)法格式為Blabel帶鏈接的分支指令帶鏈接的分支指令BL將下一條指令的地址拷貝到R14(即LR)鏈接寄存器中,然后跳轉(zhuǎn)到指定的地址運(yùn)行程序。 BLlabel帶狀態(tài)切換的分支指令帶狀態(tài)切換的分支指令的匯編語(yǔ)法格式為BX RsBX Hs5.4 Thumb軟中斷指令Thumb軟中斷指令SWI與ARM指令集下的軟中斷指令相似,用于使處理器產(chǎn)生軟件異常,使用這種機(jī)制實(shí)現(xiàn)在用戶模式下對(duì)操作系統(tǒng)中特權(quán)模式的程序調(diào)用。 immed_8是8位無符號(hào)的立即數(shù),它是軟中斷的請(qǐng)求號(hào)。SWIimmed_8Thumb指令在使用時(shí)還有很多注意事項(xiàng),具本參考教材ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程第5章中指令“
7、注意事項(xiàng)”的說明5.5 Thumb指令功能碼段分析Thumb與ARM實(shí)現(xiàn)功能比較與 2n (1,2,4,8,.)相乘Thumb :LSL Ra, Rb, LSL #n ARM:MOV Ra, Rb, LSL #n與 2n +1(3,5,9,17,.)相乘Thumb :LSL Rt, Rb, #n ADD Ra, Rt, Rb實(shí)現(xiàn)除法的功能段 7條ARM指令占用的存儲(chǔ)空間大小為:7 X 4 = 28字節(jié) 用Thumb代碼來實(shí)現(xiàn)相同的功能 8條Thumb指令占用的存儲(chǔ)空間大小為:8 x 2 = 16字節(jié) Thumb與ARM性能比較Thumb代碼所需的存儲(chǔ)空間約為ARM代碼的6070Thumb代碼使用的指令數(shù)比ARM代碼多約3040若使用32位的存儲(chǔ)器,ARM代碼比Thumb代碼快約40若使用16位的存儲(chǔ)器,Thumb代碼比ARM代碼快約4050與ARM代碼相比較,使用Thumb代碼,存儲(chǔ)器的功耗會(huì)降低約30思考與練習(xí)題用多種方法實(shí)現(xiàn)將寄存器R0 中的數(shù)據(jù)乘以10。帶鏈接的分支指令BL提供了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 共用墻合同范本
- 兼職防疫保安合同范本
- 出售吊車合同范例
- 加裝電梯托管合同范本
- 光伏銷售質(zhì)保合同范本
- 單位二手房交易合同范本
- 勞動(dòng)合同范例 河南
- 買賣交易正規(guī)合同范本
- 個(gè)人買賣住房合同范本
- 人保壽險(xiǎn)合同范本
- 巖石破碎型泥水平衡頂管施工工法
- 無光纖傳輸技術(shù)Er:YAG激光口腔臨床應(yīng)用規(guī)范
- 醫(yī)療信息共享與互聯(lián)網(wǎng)醫(yī)療管理制度
- 人教版高中英語(yǔ)必修二詞匯表(默寫版)
- 汽車電器線束DFMEA范例
- 船模航模車模社團(tuán)教案
- 【基于上市公司數(shù)據(jù)的康芝藥業(yè)盈利能力探析(定量論文)11000字】
- 幼兒園小班學(xué)情分析案例及分析
- 2024年社區(qū)工作者考試題庫(kù)及答案
- 2024年義務(wù)教師考試招聘考試試題及答案
- 無人機(jī)紅外技術(shù)培訓(xùn)
評(píng)論
0/150
提交評(píng)論