




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、ARM Cortex-M4指令列表ARM Cortex-M4 支持的指令在下表 18中列出。表1 16位數(shù)據(jù)操作指令指令功能ADC帶進(jìn)位加法ADD加法AND按位與。這里的按位與和C的” &功能相同ASR算術(shù)右移BIC按位清0 (把一個數(shù)跟另一個無符號數(shù)的反碼按位與)CMN負(fù)向比較(把一個數(shù)跟另一個數(shù)據(jù)的二進(jìn)制補碼相比較)CMP比較(比較兩個數(shù)并且更新標(biāo)志)CPY把一個寄存器的值拷貝到另一個寄存器中EOR近位異或LSL邏輯左移(如無其它說明,所有移位操作都可以一次移動多格)LSR邏輯右移MOV寄存器加載數(shù)據(jù),既能用于寄存器間的傳輸,也能用于加載立即數(shù)MUL乘法MVN加載一個數(shù)的NOT值(
2、取到邏輯反的值)NEG取二進(jìn)制補碼ORR按位或ROR圓圈右移SBC帶借位的減法SUB減法TST測試(執(zhí)行按位與操作,并且根據(jù)結(jié)果更新Z)REV在一個32位寄存器中反轉(zhuǎn)字節(jié)序REVH把一個32位寄存器分成兩個16位數(shù),在每個16位數(shù)中反轉(zhuǎn)字節(jié)序REVSH把一個32位寄存器的低16位半字進(jìn)行字節(jié)反轉(zhuǎn),然后帶符號擴(kuò)展到32位SXTB帶符號擴(kuò)展一個字節(jié)到 32位SXTH帶符號擴(kuò)展一個半字到 32位UXTB無符號擴(kuò)展一個字節(jié)到 32位UXTH無符號擴(kuò)展一個半字到 32位表2 16位轉(zhuǎn)移指令指令功能B無條件轉(zhuǎn)移B<cond>條件轉(zhuǎn)移BL轉(zhuǎn)移并鏈接。用于呼叫一個子程序,返回地址被存儲在LR中BL
3、X使用立即數(shù)的 BLX不要在ARM Cortex-M4中使用CBZ比較,如果結(jié)果為 0就轉(zhuǎn)移(只能跳到后面的指令)CBNZIT比較,如果結(jié)果非 0就轉(zhuǎn)移(只能跳到后面的指令)If - Then表3 16位存儲器數(shù)據(jù)傳送指令指令LDRLDRHLDRBLDRSH LDRSB STR STRHSTRBLDMIASTMIAPUSHPOP功能從存儲器中加載字到一個寄存器中 從存儲器中加載半字到一個寄存器中 從存儲器中加載字節(jié)到一個寄存器中 從存儲器中加載半字,再經(jīng)過帶符號擴(kuò)展后存儲一個寄存器中 從存儲器中加載字節(jié),再經(jīng)過帶符號擴(kuò)展后存儲一個寄存器中 把一個寄存器按字存儲到存儲器中把一個寄存器存器的低半字
4、存儲到存儲器中 把一個寄存器的低字節(jié)存儲到存儲器中 加載多個字,并且在加載后自增基址寄存器 加載多個字,并且在加載后自增基址寄存器 壓入多個寄存器到棧中從棧中彈出多個值到寄存器中16位數(shù)據(jù)傳送指令沒有任何新內(nèi)容,因為它們是Thumb指令,在v4T時就已經(jīng)固定下來了。表4其它16位指令指令SVCBKPTNOPCPSIECPSID功能系統(tǒng)服務(wù)調(diào)用斷點指令。如果調(diào)試被使能,則進(jìn)入調(diào)試狀態(tài)(停機(jī))?;蛘呷绻{(diào)試監(jiān)視器異常被使能,則調(diào)用一個調(diào)試異常,否則調(diào)用一個 fault異常無操作使能 PRIMASK(CPSIE i)/FAULTMASK(CPSIE f)除能 PRIMASK(CPSID i)/FAU
5、LTMASK(CPSID f)清0相應(yīng)的位 置位相應(yīng)的位表5 32位數(shù)據(jù)操作指令指令A(yù)DCADDADDWANDASRBICBFCBFICMNCMPCLZ功能帶進(jìn)位加法加法寬加法(可以加12位立即數(shù))按位與算術(shù)右移位清零(把一個數(shù)按位取反后,與另一個數(shù)邏輯與)位段清零位段插入負(fù)向比較(把一個數(shù)和另一個數(shù)的二進(jìn)制補碼比較,并更新標(biāo)志位) 比較兩個數(shù)并更新標(biāo)志位計算前導(dǎo)零的數(shù)目EOR按位異或LSL邏輯左移LSR邏輯右移MLA乘加MLS乘減MOVW把16位立即數(shù)放到寄存器的底16位,咼16位清0MOV加載16位立即數(shù)到寄存器(其實匯編器會產(chǎn)生MOVW )MOVT把16位立即數(shù)放到寄存器的咼16位,低1
6、6位不影響MVN移動一個數(shù)的補碼MUL乘法ORR按位或ORN把源操作數(shù)按位取反后,再執(zhí)行按位或RBIT位反轉(zhuǎn)(把一個 32位整數(shù)先用2進(jìn)制表達(dá),再旋轉(zhuǎn)180度)REV對一個32位整數(shù)做按字節(jié)反轉(zhuǎn)REVH/對一個32位整數(shù)的高低半字都執(zhí)行字節(jié)反轉(zhuǎn)REV16REVSH對一個32位整數(shù)的低半字執(zhí)行字節(jié)反轉(zhuǎn),再帶符號擴(kuò)展成32位數(shù)ROR圓圈右移RRX帶進(jìn)位的邏輯右移一格(最高位用C填充,且不影響 C的值)SFBX從一個32位整數(shù)中提取任意的位段,并且?guī)Х枖U(kuò)展成32位整數(shù)SDIV帶符號除法SMLAL帶符號長乘加(兩個帶符號的32位整數(shù)相乘得到 64位的帶符號積,再把積加到另一個帶符號 64位整數(shù)中)S
7、MULL帶符號長乘法(兩個帶符號的32位整數(shù)相乘得到64位的帶符號積)SSAT帶符號的飽和運算SBC帶借位的減法SUB減法SUBW寬減法,可以減12位立即數(shù)SXTB字節(jié)帶符號擴(kuò)展到 32位數(shù)TEQ測試是否相等(對兩個數(shù)執(zhí)行異或,更新標(biāo)志但不存儲結(jié)果)TST測試(對兩個數(shù)執(zhí)行按位與,更新Z標(biāo)志但不存儲結(jié)果)UBFX無符號位段提取UDIV無符號除法UMLAL無符號長乘加(兩個無符號的32位整數(shù)相乘得到 64位的無符號積,再把積加到另一個無符號 64位整數(shù)中)UMULL無符號長乘法(兩個無符號的32位整數(shù)相乘得到 64位的無符號積)USAT無符號飽和操作(但是源操作數(shù)是帶符號的)UXTB字節(jié)被無符號
8、擴(kuò)展到 32位(咼24位清0)UXTH半字被無符號擴(kuò)展到 32位(高16位清0)表6 32位存儲器數(shù)據(jù)傳送指令指令功能LDR加載字到寄存器LDRB加載字節(jié)到寄存器LDRH加載半字到寄存器LDRSH加載半字到寄存器,再帶符號擴(kuò)展到32位LDM從一片連續(xù)的地址空間中加載多個字到若干寄存器LDRD從連續(xù)的地址空間加載雙字(64位整數(shù))到2個寄存器STR存儲寄存器中的字STRB存儲寄存器中的低字節(jié)STRH存儲寄存器中的低半字STM存儲若干寄存器中的字到一片連續(xù)的地址空間中STRD存儲2個寄存器組成的雙字到連續(xù)的地址空間中PUSH把若干寄存器的值壓入堆棧中POP從堆棧中彈出若干的寄存器的值表7 32位轉(zhuǎn)
9、移指令指令功能B無條件轉(zhuǎn)移BL轉(zhuǎn)移并連接(調(diào)用子程序)TBB以字節(jié)為單位的查表轉(zhuǎn)移。從一個字節(jié)數(shù)組中選一個8位前向跳轉(zhuǎn)地址并轉(zhuǎn)移TBH以半字為單位的查表轉(zhuǎn)移。從一個半字?jǐn)?shù)組中選一個16位前向跳轉(zhuǎn)的地址并轉(zhuǎn)移表8其它32位指令指令功能LDREX加載字到寄存器,并且在內(nèi)核中標(biāo)明一段地址進(jìn)入了互斥訪問狀態(tài)LDREXH加載半字到寄存器,并且在內(nèi)核中標(biāo)明一段地址進(jìn)入了互斥訪問狀態(tài)LDREXB加載字節(jié)到寄存器,并且在內(nèi)核中標(biāo)明一段地址進(jìn)入了互斥訪問狀態(tài)STREX檢查將要寫入的地址是否已進(jìn)入了互斥訪問狀態(tài),如果是則存儲寄存器的字STREXH檢查將要寫入的地址是否已進(jìn)入了互斥訪問狀態(tài),如果是則存儲寄存器的半字STREXB檢查將要寫入的地址是否已進(jìn)入了互斥訪問狀態(tài),如果是則存儲寄存器的字節(jié)CLREX在本地的處理上清除互斥訪問狀態(tài)的標(biāo)記(先前由LDREX/LDREXH/LDREXB做的MRS標(biāo)記)MSR加載特殊功能寄存器的
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代辦公環(huán)境中電力系統(tǒng)的優(yōu)化投資
- 2025至2030年中國蓄電池在線監(jiān)測系統(tǒng)數(shù)據(jù)監(jiān)測研究報告
- 煤礦機(jī)修工技能理論考試題庫150題(含答案)
- 煤礦輔助運輸安全員技能理論考試題庫150題(含答案)
- 2025至2030年中國花崗石手工磨具數(shù)據(jù)監(jiān)測研究報告
- 科技美術(shù)教育中的心理策略創(chuàng)新教學(xué)方法
- 科技創(chuàng)新在辦公設(shè)備智能化中的實踐
- 美發(fā)店員工勞動培訓(xùn)與發(fā)展合同(2025年度)
- 二零二五年度專利技術(shù)著作權(quán)許可與轉(zhuǎn)讓協(xié)議
- 二零二五年度健康養(yǎng)生產(chǎn)品代理中介費協(xié)議
- 監(jiān)理日志表(標(biāo)準(zhǔn)模版)
- H3C-CAS虛擬化平臺詳細(xì)介紹
- 小學(xué)生韻母in、ing常見漢字與區(qū)分練習(xí)
- 藥房品種類別及數(shù)量清單
- 機(jī)關(guān)檔案管理工作培訓(xùn)PPT課件
- 初中物理人教版八年級下冊 第1節(jié)牛頓第一定律 課件
- 網(wǎng)站培訓(xùn)內(nèi)容trswcm65表單選件用戶手冊
- 連續(xù)平壓熱壓機(jī) 三篇 俞敏等
- 打印版-圓與二次函數(shù)綜合題精練(帶答案)
- 各種閥門CAD圖
- 工程結(jié)算書標(biāo)準(zhǔn)
評論
0/150
提交評論