




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、指令格式意義示例ADCADC條件 目的,操作數1 ,操作數2帶進位的32位數加法目的操作數1+操作數2 + !CADDADD條件 目的,操作數1 ,操作數232位數相加目的操作數1+操作數2ANDAND條件 目的,操作數1,操作數232位數的邏輯與目的操作數1&操作數2BB條件目標地址相對劭熊才旨令(32M,26b)助熊至目的地,PC 目標地址BEQ相等則助娥(Branch if EQual)BNE不相等則助熊(Branch if Not Equal)BGE大于或等于雌(Branch if Greater than or Equa )BGT大于劭貓(Branch if Greater
2、Than )BICBIC條件S目的,操作數1 ,操作數232位數的邏輯位清零類似ANDBKPTBKPT 16位的立即數斷點指令BLBL條件目標地址帶的相對助解指令(PCR14,雌)BLE小于或等于蹦專(Branch if Less than or Equal )BLEQ帶等于雌(Branch with Link if EQual)BLLT帶小于劭喉(Branch with Link if Less Than )BLT小于螃(Branch if Less Than )BLXBLX 目帶的切換用?。≒C R14尉觸并切換為thumb)BXBX條件目標地址切換四常助熊并切換(ARM/Thumb)CD
3、P CDP2CDP條件協處理器編碼,協處理器操作碼1 , 目的寄存器,源寄存器1,源寄存器2,協處理 器操作碼2。協處理器數據處理操作CLZ零計數CMNCMN條件操作數1,操作數2匕限兩個數的相反數CMPCMP條件操作數1,操作數232位數臃操作數1 -操作數2更新CPSREOREOR條件S目的,操作數1 ,操作數232位邏輯異或目的 操作數1XOR操作數2LDC LDC2LDC條件L協處理器編碼,目的寄存器,源寄存器從協處理器取一個或多個32位值LDC P3 , C4 , RO ;P3: C4 R0LDMLDM (或STM ) 條件類型基址寄存器 1從存送多個32位字到ARM寄存器regis
4、ter Memery寄存器列表SLDRLDR條件目的,(存儲器地址從虛擬地址取一個單個的32位值至寄存器Register存儲器地址LDR條件B 目的,存儲器地址讀一個字節(jié)LDR條件H 目的,存儲器地址讀半字(即16位)MCRMCR2MCRRMCR條件協處理器編碼,協處理器操作碼1 , 源寄存器,目的寄存器1,目的寄存器2,協處 理器操作碼2。從寄存器送數據到協處理器MCR P3 , 3 , RO , C4 , C5 , 6 MARM 處理器寄存器R0中的數據傳送至此辦處理器P3的寄存器C4和C5中MLAMLAmS目的,操作數1,操作數2 ,操作數332位乘累加目的 操作數1*操作數2 +操作數
5、3MOVMOV條件目的,源操作數傳送一個32位數到寄存器目的源操作數MRC MRC2MRRCMRC條件協處理器編碼,協處理器操作碼1 , 目的寄存器,源寄存器1 ,源寄存器2,協處理 器操作碼20從協處理器傳送數據到寄存器MRC P3 , 3 , RO , C4 , C5,6;該指令將協處理器P3的寄存器中的數據傳送到ARM處理器寄存器中MRSMRS條件通用寄存器 狀態(tài)寄存器(CPSR把狀態(tài)寄存器的值送到通用寄存器Register 狀態(tài)寄存器或 SPSR)MSRMSR條件程序狀態(tài)寄存器(CPSR或SPSR_域,操作數把通用寄存器的值傳送到狀態(tài)寄存器CPSR或SPSR域 操作數MULM U L條
6、件目的,操作數1,操作數232位乘結果MODE(2八32),目的 操作數1*操作數2MVNMVN條僅4S目的,源操作數把一個32位數的邏輯"非"送到寄存器目的 (取反)源操作數ORRORR條件 目的,操作數1 ,操作數232位邏碼目的操作數1 OR操作數2PLD預緘是示指令QADD有符號32位飽和加QDADD有符號雙32位飽和加QSUB有符號32位飽和減QDSUB有符號雙32位飽和減RSBRSB條件 目的,操作數1 ,操作數2逆向32位減法目的操作數2 -操作數1RSCRSC條件S目的,操作數1 ,操作數2帶進位的逆向32法減法目的操作數2 -操作數1-!CSBCSBC條件
7、S目的,操作數1 ,操作數2帶進位的32位減法目的=操作數1-操作數2-!CSMLAxy有符號乘累加(16位*16位)+32位=32位SMLALSMLAL條件S目的Low ,目的High ,操作數1,操作數264位有符售乘累加(32位*32位)+64位=64位)目的L (操作1*操作2)L+目的L目的H (操作1*操作2)H +目的HSMALxy64位有符售乘累加(32位*32位)+64位=64位)SMLAWy號乘累加(32位*16位)> >16位)+32位=32位SMULLSMULL條件S目的Low ,目的High ,操作數1,操作數264位有符號乘累加(32位*32位)=64位
8、SMULxy有符號乘Q6位*16位=32位)SMULWy有符號乘(32位*16位>> 16位=32位)STC STC2STC條件L協處理器編碼,源寄存器,目的寄從協處理器中把一個或多個32位值存到存STC P3 , C4 , RO ;P3:C4 R0存器STMLDM (或STM ) 條件類型基址寄存器 ! ,寄存器列表八把多個32位的寄存器值存放到存Mem RegisterSTRSTR條件源寄存器,存儲器地址把寄存器的值存到一個存的虛地址間存儲器地址RegisterSTR條件B源寄存器,存儲器地址8位(R的低8位)的字節(jié)數據傳送到存儲器STR條件H源寄存器,存儲器地址16位的半字數
9、據傳送到存儲器SUBSUB條件目的,操作數1,操作數232位減法目的操作數1-操作數2SWISWI條件 24位的立即數軟中斷無立即數時,默認為R0SWPSWP條件目的,源寄存器1,源寄存器2把一個字或者一個字節(jié)和一個寄存器值交換SWP條件B目的,源寄存器1,源寄存器2字的作TEQTEQ條件操作數1 ,操作數2等值測試TSTTST條件操作數1 ,操作數2位測試UMLALU M LAL條件S目的Low ,目的寄存器High,操作數1,操作數264位無符售乘累加(32位*32位)+64位=64位)UMULLUMULL條件S目的L,目的H,操作數L操作數264位無符號乘累加(32位*32位)=64位A
10、RM )匚編偽指令符號定義Symbol DefinitionGBLA、GBLL、GBLSGBLA:定義一個全局的數字變量,并初始化為0GBLL :定義一個全局的邏輯變量,并初始化為F (假)GBLS:定義一個全局的字符串變量,并初始化為空LCLA、LCLL、LCLSLCLA:定義一個局部的數字變量,并初始化為0LCLL:定義一個局部的邏輯變量,并初始化為F (假)LCLS:定義一個局部的字符串變量,并初始化為空SETA、SETL、SETSSETA偽指令用于給一個數學變量賦值SETL偽指令用于給一個邏輯變量賦值SETS偽指令用于給一個字符串變量賦值RUST名稱RLIST 寄存器列表RUST偽指令
11、可用于對一個通用寄存器列表定義名稱,使用該偽指令定義的名稱可在ARM指令LDM/STM中使用。數據定義Data DefinitionDCB用于分配一片連續(xù)的字節(jié)存儲單兀并用指定的數據初始化標號DCB表達式DCW ( DCWU )用于分配一片連續(xù)的半字存儲單元并用指定的數據初始化DCD ( DCDU )用于分配一片連續(xù)的字存儲單元并用指定的數據初始化DCFD ( DCFDU )用于為雙精度的浮點數分配一片連續(xù)的字存儲單兀并用指定的數據初始化DCFS ( DCFSU )用于為單精度的浮點數分配一片連續(xù)的字存儲單兀并用指定的數據初始化DCQ ( DCQU )用于分配一片以8字節(jié)為單位的連續(xù)的存儲單元
12、并用指定的數據初始化SPACESPACE偽指令用于分配一片連續(xù)的存儲區(qū)域并初始化為0 ,其中,表達式為要分配的字節(jié)數。SPACE也可用"% "代替。標號SPACE表達式MAP用于定義一個結構化的存表首地址。MAP也可用"人"代替MAP表達式,基址寄存器FIELD用于定義一個結構化的存表的數據域。FILED也可用代替標號FIELD表達式匯編控制IF、ELSE、ENDIF條件編譯AssemblyControlWHILE . WEND循環(huán)MACRO s MEND宏MEXIT用于從宏定義中助熊出去其它AREACODE/DATA/READONLY/READWRIT
13、E/ALAIN/COMMONAREA段名屬性1 ,屬性2,ALIGN通過添加填充字節(jié)的方式,使當前位置滿足一定的對齊方式.ALIEN=3 ;指定后面的指令為8字書對齊,2人3=8,可取值0-31.CODE16 x CODE32CODE16偽指令通知編譯器,其后的指令序列為16位的Thumb指令.CODE32偽指令通知編譯器,其后的指令序列為32位的ARM指令。只通知編譯器其后指令的類型,并不能對處理器進行狀態(tài)的切換。ENTRY指定匯編程序的入口點END通知編譯器已經到了源程序的結尾EQU用于為程序中的常量、標號等定義 個等效的字符名稱,類似于C語言中的# define o其中EQU可用 “代替
14、EXPORT 域 GLOBAL)在程序中聲明一個全局的標號,該標號可在其他的文件中引用。EXPORT可 用GLOBAL代替。標號在程序中區(qū)分大小寫,WEAK選項聲明其他的同名 標號優(yōu)先于該標號被引用IMPORT通知編譯器要使用的標號在其他的源文件中定義,但要在當前源文件中引 用,而且無論當前源文件是否引用該標號,該標號均會被加入到當前源文件 的符號表中。標號在程序中區(qū)分大小寫,WEAK選頊表示當所有的源文件 都沒有定義這樣一個標號時,編譯器也不給出錯誤信息EXTERN通知編譯器要使用的標號在其他的源文件中定義,但要在當前源文件中引 用,如果當前源文件實際并未引用該標號,該標號就不會被加入到當前
15、源文 件的符號表中。標號在程序中區(qū)分大號GET(或 INCLUDE)將一個源文件包含到當前的源文件中,并將被包含的源文件在當前位置進行5匚編處理INCBIN將一個目標文件或數據文件作為進制數據包含到當前的源文件中RN給一個寄存器定義一個別名Temp RN R0ROUT給個局部變量定義作用圍#立即數,&十六進制數,B .表示當前PC指針(死循環(huán))ARM條件碼操作碼31:28助記符擴展雌標志狀態(tài)0000EQ相等/等于0Z=l0001NE不等z=o0010CS/HS進位/無符號數高于或等于C= = l0011CC/LO硼位先?婚數彳舒c=o0100MI負數N =l0101PL正數或0N =
16、=00110VS溢出V= = l0111VC未溢出v=o1000HI無符號數高于(大于)C= = l&&Z=01001LS(小C=0|Z=l1010GE有大十蠅N = =V1011LT有符號數小于N!=V1100GT有符號數大于Z=0 &&N = =V1101LE有符號數小于于Z=l | N!=V1110AL總是(al ways)任何狀態(tài)1111NV從不(never)(不要使用)無CPSR312827876540NZCVUnusedIFT(=lthumbr=0Arm)mode位31 : 24為條件位域,用f表示;位23 : 16為狀態(tài)位域,用s表示; 位15 :
17、 8為擴展位域,用x表示;位7 : 0為控制位域,用c表示; 與指令MSR相關關于移位LSL邏輯左移(低位填0)通用寄存器,LSL操作數LSR邏輯右移(高位填0)通用寄存器,LSR操作數ASL算術左移(低位填0)通用寄存器,ASL操作數ASR算術右移(符號位填充高位)通用寄存器,ASR操作數ROR循環(huán)右移通用寄存器,ROR操作數RRX帶C的循環(huán)右移通用寄存器,RRX操作數中斷向量表AddressHigh Address0x0000 0000OxFFFF 0000RESET0x0000 0004OxFFFF 0004UNDEF0x0000 0008OxFFFF 0008SWI0x0000 000
18、COxFFFF 000CPABT0x0000 0010OxFFFF 0010DABT0x0000 0014OxFFFF 00140x0000 0018OxFFFF 0018IRQ0x0000 001COxFFFF 001CFIQAPCS寄存器使用約定寄存器ADCS名稱ADCS作用0al變元1/整數結果/臨時寄存器1a2變元2/臨時寄存器2a3變元3/臨時寄存器3a4變元4/臨時寄存器4V1寄存器變量15v2寄存器變量26v3寄存器變量37v4寄存器變量48v5寄存器變量59sb/v6靜態(tài)基/寄存器變量610sl/v7堆棧B即寄存器變量711fp幀指針12ip臨時寄存器/新sb部單元調用13sp
19、當前堆棧幀的低端14Ir地址/臨時寄存器15PC程序計數器Load and Store 指令LDR RO z R1;才存存儲器地址為R1的字數據讀入寄存器R0。LDR RO z RI , R2LDR RO z RI , #8;將存儲器地址為RI+8的字讀入寄存器R0o;將存儲器地址為R1 + R2的字數據讀入寄存器R0oLDR RO z RI , R2 !LDR RO z RI , #8 !;將存儲器地址為R1+8的字讀入寄存器R0 ,并將新地址R1+8寫入Rl0LDR RO , RI , R2;將存儲器地址為R1的字數據讀入寄存器R0 ,并將新地址R1十R2寫入RloLDR RO JR1,
20、R2, LSL#2 !;將存儲器地址為RI + R2x4的字數據讀入寄存器R0 ,并將新地址R1十R2x4寫入R1。LDR RO JR1 , R2 , LSL#2;將存儲器地址為R1的字數據讀入寄存器R0 ,并將新地址R1十R2x4寫入R1。LDRB RO , R1;將存儲器地址為R1的字節(jié)讀入寄存器R0 ,并將R0的高24位清零。;將存儲器地址為R1 + R2的字數據讀入寄存器R0 ,并將新地址R1+R2寫入RloLDRB RO, R1, #8LDRH RO , R1;將存儲器地址為R1的半字讀入寄存器R0 ,并將R0的高16位清零。;將存儲器地址為R1 + 8的字節(jié)數據讀入寄存器R0 ,并
21、將R0的高24位清零。LDRH RO JR1, #8;將存儲器地址為Rl + 8的半字數據讀入寄存器R0 ,并將R0的高16位清零。LDRH RO JR1 , R2;將存儲器地址為R1十R2的半字數據讀入寄存器R0 ,并將R0的高16位清零。STR RO JR1 , # 8;將R0中的字數據寫入以R1為地址的存儲器中,并將新地址R1+8寫入RloSTR RO , RI r #8;將RO中的字寫入以R1 + 8為地址的存儲器中。STRB RO , R1;將寄存器R0中的字節(jié)數據寫入以R1為地址的存儲器中。STRB RO , R1 , # 8;將寄存器R0中的字節(jié)數據寫入以R1 + 8為地址的存儲器中。STRH RO , R1;將寄存器R0中的半字數據寫入以R1為地址的存儲器中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 屋面防水勞務分包合同
- 文化創(chuàng)意產業(yè)發(fā)展項目投資合同書
- 運輸承包合同書
- 吸糞車租賃合同
- 買賣中介居間合同
- 民宿預訂合同
- 鉆機承包合同
- 武漢工程大學郵電與信息工程學院《運動康復治療技術》2023-2024學年第二學期期末試卷
- 昆明衛(wèi)生職業(yè)學院《JavaWeb框架應用開發(fā)實驗》2023-2024學年第二學期期末試卷
- 永州師范高等??茖W?!毒植拷馄蕦W1》2023-2024學年第二學期期末試卷
- 2023建設工程智慧消防系統技術規(guī)程
- 光伏電纜橋架敷設施工方案
- 特殊學生心理健康檔案表
- 文山-硯山天然氣支線管道工程項目環(huán)境影響報告書
- 新選供應商初期考察表模板
- 《煤礦安全規(guī)程》安全生產月考試題庫
- 2023春下冊五年級語文《每課生字預習表》
- 車間領班求職簡歷
- 八年級下物理校本作業(yè)(人教版)課時作業(yè)
- 05G359-3 懸掛運輸設備軌道(適用于一般混凝土梁)
- (完整版)《城市軌道交通應急處理》課程標準
評論
0/150
提交評論