- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[高等教育]ARM指令集
ARM指令系統 ARM 指令系統特點 條件域 ARM指令的定址方式 ARM指令功能說明 未使用的指令空間 ARM巨集組譯 ARM指令系統特點 指令 SUBNES R4, R5, R7, LSR R2 組譯之後相對應的機器碼 0001 00 0 0100 1 0101 0100 0111 0 01 1 0010 cond I opcode S Rn Rd operand2 cond:28-31:條件碼 I:25:第二個運算元格式 opcode:操作碼 S:是否更新條件旗標 Rn:第一運算元編號 Rd:結果運算元編號 operand2:第二個運算元 ARM指令系統特點 ARM指令特點 每個指令都是32位元 指令的條件執行 靈活的第二個運算元:資料處理類指令具有靈活的第二個運算元, 可以是立即數,也可以是邏輯運算式 輔助運算器的作用 Thumb指令 具有RISC指令的特點:指令少且等長、使用多暫存器、使用Load與Store指令 ARM指令系統特點 ARM指令概述 大致可以分為轉移類、資料處理類、乘法類、資料傳送類、輔助運算器類以及雜項類等 ARM指令系統特點 ARM指令系統特點 ARM指令系統特點 輔助運算器類及雜項類指令 條件域 條件域決定在什麼時候執行該條指令 ARM指令的條件有16種, 以兩個字母的附加字出現在指令的後面 條件域 ARM指令的定址方式 ARM指令的定址方式有 暫存器定址 ADD R0, R1, R2 ; R0:=R1+R2 立即定址 ADD R3, R3, #1 ; R3:=R3+1 暫存器間接定址 LDR R0, [R3] ; R0:=[R3] ARM指令的定址方式 暫存器變址 前索引定址 LDR R0, [R1, #4]! ;R0:=[R1+4], R1:=R1+4 後索引定址 LDR R0, [R1], #4 ;R0:=[R1], R1:=R1+4 基底位址加索引定址 LDR R0, [R1, R2] ;R0:=[R1+R2] 多暫存器定址 LDMIA R1, {R0, R2, R5} ;R0:=[R1], R2:=[R1+4], R5:=[R1+8] ARM指令功能說明 ARM轉移類指令 BX ----轉移及改變指令集 BX{cond} Rm BX R7 BXVS R0 B 和 BL ---- 轉移及帶鏈結轉移 B{cond} label BL{cond} label B there here: BLE here BL SUBC ARM指令功能說明 BLX ---- 帶鏈結分支並可選交換指令集 BLX{cond} Rm BLX label ARM指令功能說明 資料處理類指令 ADD, SUB, RSB, ADC, SBC, RSC, AND, ORR, EOR和BIC cond(28-31):條件碼 I(25):第二個運算元格式,1:立即資料, 0:暫存器 Opcode(21-24):操作碼, 算術邏輯功能 S(20):是否更新條件旗標 Rn(16-19):第一運算元編號 Rd(12-15):結果運算元編號 Operand2(0-11):第二個運算元 ARM指令功能說明 Opcode{cond}{S} Rd, Rn, operand2 ADD R2, R1, R3 SUBS R8, R6, #240 RSB R4, R4, #1280 SUB R4, R5, R7, LSR R2 RSCLES R1, R6, R0, LSL R4 AND R8, R2, #0xff00 ORREQ R2, R0, R5 EORS R1, R1, R3 ROR R6 ARM指令功能說明 MOV 和 MVN----搬移, 搬移反值 MOV{cond}{S} Rd, operand2 MVN{cond}{S} Rd, operand2 MOV R5, R2 MVNNE R11, #0XF000000B MOVS R0, R0, ASR R3 MOV PC, R14 ;從副程式返回 MOVS PC, R14 ;從異常返回, 恢復CPSR ARM指令功能說明 CMP、CMN、TST 和 TEQ----比較、比較反值、測試和測試相等 Opcode{cond} Rn, operand2 功能:改變 N, Z, C, V CMP R2, R8 CMN R1, #6400 CMPGT R13, R7, LSL #2 TST R1, #0X3F8 TEQEQ R10, R8 ARM指令功能說明 CLZ---前導0計數 CLZ{cond} Rd, Rm 功能:將Rm中值的前導0的個數進行計算, 將結果放在Rd中 CLZ R4, R9 CLZNE R
文档评论(0)