版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、3嵌入式ARM指令系統(tǒng)第章了解了解ARMARM指令系統(tǒng)的特點指令系統(tǒng)的特點掌握掌握ARMARM指令的尋址方式及指令指令的尋址方式及指令了解了解ThumbThumb指令系統(tǒng)指令系統(tǒng) ARM指令的基本格式如下: S , 其中號內(nèi)的項是必須的,號內(nèi)的項是可選的。各項的說明如下:opcode:指令助記符;Rd:目標(biāo)寄存器(操作數(shù)據(jù)的最終結(jié)果存放的寄存器);cond:執(zhí)行條件; Rn:第1個操作數(shù)的寄存器;S:它是標(biāo)記,是否影響/修改CPSR寄存器對應(yīng)位的值; operand2:第2個操作數(shù);LDRR0,R1;讀取R1地址上的存儲單元內(nèi)容,執(zhí)行條件AL;BEQDATAEVEN;條件執(zhí)行分支指令,執(zhí)行條件
2、EQ,即相等則跳轉(zhuǎn)到DATAEVEN;ADDS R2,R1,#1;加法指令,R2R1+1,影響/修改CPSR寄存器對應(yīng)C位的值;SUBNES R2,R1,#0 x20;條件執(zhí)行的減法運算,執(zhí)行條件NE,R1-0 x20 -R2,影響CPSR寄存器; ARM指令的基本格式如下: S , 靈活的使用第2個操作數(shù)“operand2”能夠提高代碼效率。它有如下的形式有如下的形式:#immed_8r常數(shù)表達式,立即數(shù) (挺難理解);Rm寄存器方式(操作數(shù)即為寄存器中的數(shù)值);Rm,shift寄存器移位方式;#immed_8r常數(shù)表達式常數(shù)表達式一個立即數(shù)必須用一個字節(jié)(必須用一個字節(jié)(8bit8bit)
3、可以描述完成)可以描述完成 該常數(shù)必須對應(yīng)8位位圖(pattern),即一個8位的常數(shù)通過循環(huán)右移偶數(shù)位得循環(huán)右移偶數(shù)位得到,為合法常量。循環(huán)右移10位0 x000 0 0 0 0 0 0 00 x000 0 0 0 0 0 0 00 x000 0 0 0 0 0 0 00 x000 0 0 0 0 0 0 00 x000 0 0 0 0 0 0 00 x801 0 0 0 0 0 0 00 x040 0 0 0 0 1 0 08位常數(shù)0 x120 0 0 1 0 0 1 0例如:MOVR0,#1 ; R0 = 1 ANDR1,R2,#0 x0F ; R2與與0 x0F,結(jié)果保存在結(jié)果保存在R
4、1中中LDR R0,R1,#-4 ;讀取讀取R1地址上的存儲器單元內(nèi)容地址上的存儲器單元內(nèi)容, ;且且R1=R1-4如何判斷合法常量與非法常量?一個常數(shù)中的兩個“1”在8個比特中實現(xiàn),并且后面跟偶數(shù)個零(二進制)合法常量0 xFF、0 x104、0 xFF0、0 xFF000、0 xFF000000、0 xF000000F非法常量:0 x101、0 x102、0 xFF1、0 xFF04,0 xFF003、0 xFFFFFFFFRm寄存器方式(可以實現(xiàn)復(fù)雜的立即數(shù)(非法)) 在寄存器方式下,操作數(shù)即為寄存器中內(nèi)容的數(shù)值。例如:SUBR1,R1,R2 ;R1- R2R1MOVPC,R0 ;PC=
5、R0,PC=R0,程序跳轉(zhuǎn)到指定地址程序跳轉(zhuǎn)到指定地址LDR R0,R1,-R2 ;讀取讀取R1R1地址上的存儲器單元內(nèi)容地址上的存儲器單元內(nèi)容 ;并存入并存入R0R0,且,且R1=R1-R2R1=R1-R2Rm,shift寄存器移位方式 將寄存器的移位結(jié)果作為操作數(shù),但Rm值保持不變,移位方法如下:0LSR移位操作:0ASR移位操作:ROR移位操作:RRX移位操作:每次只能移動一每次只能移動一位,把位,把CPSR寄寄存器中的存器中的C/進位進位位補充到最左邊位補充到最左邊CASL移位操作:空出的最低有效位用0填充空出的最高有效位用0填充算術(shù)移位的對象是有符號數(shù),移位過程中必須保持操作數(shù)的符號
6、不變。即源操作數(shù)是正數(shù),則空出的最高有效位用0填充,如果是負數(shù),則用1填充。將寄存器的內(nèi)容循環(huán)右移1位,空位用原來的C標(biāo)志位填充。0Rm,shift寄存器移位方式例如:ADDR1,R1,R1,LSL #3;R1=R1+R1*8=9R1,即即R1乘以乘以9SUBR1,R1,R2,LSR R3;R1=R1-(R2/2R3)注意:注意:ARM指令只會改變目標(biāo)寄存器中的內(nèi)容,而操作數(shù)寄存器中的內(nèi)容指令只會改變目標(biāo)寄存器中的內(nèi)容,而操作數(shù)寄存器中的內(nèi)容不不 會改變;會改變;錯例:ADD R3,R7,#1023 (十進制十進制);1023(0 x3FF)不是一個循環(huán)移位的8位位圖SUB R11,R12,R
7、3,LSL #32 ;#32超出了超出了LSL范圍范圍MOVS R4,R4,RRX #3 ;RRX不需指定移位量, RRX總是移總是移1位位 ARM指令的基本格式如下: S , 使用條件碼“cond”可以實現(xiàn)高效的邏輯操作,提高代碼效率。 所有的ARM指令都可以條件執(zhí)行,而Thumb指令只有B(跳轉(zhuǎn))指令具有條件執(zhí)行功能。如果指令不標(biāo)如果指令不標(biāo)明條件代碼,將默認為無條件(明條件代碼,將默認為無條件(ALAL)執(zhí)行)執(zhí)行。 指令條件碼表C代碼:If(a b)a+;Elseb+;對應(yīng)的匯編代碼如下.其R0為a,R1為bCMPR0,R1 ;R0與R1比較ADDHI R0,R0,#1 ;若R0R1,則R0=R0+1ADDLS R1,R1,#1 ;若R0R1,則R1=R1+1示例1:C代碼:If(a!=10)&(b!=20)a=a+b對應(yīng)的匯編代碼如下.其R0為a,R1為bCMPR0,#10 ;比較R0是否為10CMPNE R1,#20 ;若R0不為10,則比較 ;R1是否為20ADDNE R0,R0,R1;若R0不為1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度電商用戶體驗顧問服務(wù)合同
- 藝術(shù)教育校本化課程設(shè)計
- 飯局社交禮儀課程設(shè)計
- 自制香囊課程設(shè)計
- 跳繩的課程設(shè)計
- 鍛壓機課程設(shè)計
- 高一年級德育課程設(shè)計計劃
- 物流運輸司機勞動合同范本
- 工程轉(zhuǎn)包合同范本
- 平臺合伙經(jīng)營協(xié)議
- 物流學(xué)概論(崔介何第五版)物流學(xué)概述
- 《載畜量計算》課件
- 統(tǒng)編版六年級語文上冊專項 專題12說明文閱讀-原卷版+解析
- 勞務(wù)派遣招標(biāo)文件
- 軟件無線電原理與應(yīng)用第3版 課件 【ch03】軟件無線電體系結(jié)構(gòu)
- 石油化工裝置火炬系統(tǒng)堵塞風(fēng)險分析
- 防突抽采隊202年度工作總結(jié)
- 四川省石棉縣石石石材有限責(zé)任公司石棉縣大巖窩花崗石礦礦山地質(zhì)環(huán)境保護與土地復(fù)墾方案
- 2023年ERCP圍手術(shù)期用藥專家共識意見
- 2019年內(nèi)蒙古鄂爾多斯市中考數(shù)學(xué)試題(原卷+解析)
- 塑鋼門窗及鋁合金門窗制作和安裝合同
評論
0/150
提交評論