第二章 ARM组合语言与指令集介绍.docVIP

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 ARM組合語言與指令集介紹 本章介紹ARM指令集、Thumb指令集,以及各類指令對應的定址方式,通過對本章的閱讀,希望讀者能瞭解ARM微處理器所支援的指令集及具體的使用方法。 2.1 ARM指令集的分類與格式 ARM微處理器的指令集是屬於 載入/存回 型的,也即指令集僅能處理暫存器中的資料,而且處理結果都要放回暫存器中,而對系統記憶體的存取則需要通過專門的 載入/存回 指令來完成。 ARM微處理器的指令集可以分為跳轉指令、資料處理指令、程式狀態暫存器(PSR)處理指令、載入/存回指令、輔助運算器指令和例外產生指令六大類,具體的指令及功能如表2-1所示(表中指令為基本ARM指令,不包括衍生的ARM指令)。 ARM的指令集大致上可以分為六大類: 跳轉指令(Branch Instructions): 通常是用來做程式流程控制。 資料處理指令(Data-processing Instructions): 一般的暫存器運算指令。 載入存回指令(Load and Store Instructions): 對記憶體和暫存器之間的資料搬移指令。 狀態暫存器存取指令(Status Register Transfer Instructions): 存取CPSR和SPSR暫存器的相關指令。 輔助運算器(協同處理器)指令(Coprocessor Instructions): 存取協同處理器或與協同處理器溝通之指令。 例外產生指令(Exception-generating Instructions): 產生軟體中斷和其他例外的指令。 指令符號 指令功能描述 數學運算(Arithmetic instruction) ADC 納入進位旗標相加指令 ADD 加法指令 CMN 比較反號指令 CMP 比較指令 SUB 減法指令 SUC 納入進位旗標相減指令 MLA 32位元相乘並相加指令 MUL 32位元乘法指令 RSB 對調相減指令 RSC 納入進位旗標對調相減指令 邏輯運算(Logic instruction) AND AND運算指令 BIC 位元清零(bit clear)指令 EOR Exclusive 或 運算指令 ORR ORR運算指令 TEQ 相等測試指令 TST 位元測試指令 跳轉指令(Branch Instruction) B 跳轉指令 BL 帶返回的跳轉指令 BLX 帶返回和狀態切換的跳轉指令 BX 帶狀態切換的跳轉指令 載入指令(Load Instruction) LDM 載入多個暫指令 LDR 記憶體到暫存器的資料傳輸指令 搬移指令(Move instruction) MOV 資料傳送(搬移)指令 MVN 資料取反搬移指令 MRS 傳送CPSR或SPSR的數值到一般暫存器指令 MSR 傳送一般暫存器到CPSR或SPSR的指令 輔助運算器(協同處理器) (Coprocessor instruction) MCR 從ARM暫存器的數值到輔助運算器(協同處理器)暫存器的資料傳輸指令 MRC 從輔助運算器(協同處理器)暫存器的數值到ARM暫存器的資料傳輸指令 LDC 從輔助運算器(協同處理器)暫存器的數值到記憶體的資料傳輸指令 STC 從記憶體內的數值到輔助運算器(協同處理器)暫存器的資料傳輸指令 CDP 輔助運算器資料操作指令 軟體中斷(Software Interrupt instruction) SWI 觸發軟體中斷指令 SBC 帶借位減法指令 儲存指令(Storw instruction) STM 多重記憶體寫入指令 STR 暫存器到記憶體的資料傳輸指令 其他指令(Others) NOP 無指令 SWP 暫存器與記憶體數值交換指令 表2-1 ARM指令及功能描述 2.1.1 ARM條件式指令 一般ARM指令的典型指令編碼格式如下所示: 31 28 27 25 24 21 20 19 16 15 12 11 0 cond x x x opcode S Rn Rd shifter_operand 其中: cond 指令執行的條件式編碼 opcode 指令操作符號 S 指定是否在運算執行時順便更新CPRS的旗標 Rn 包含第一個運算元的目標暫存器的編號 Rd 資料來源暫存器的編號 shifter_operand 第二個資料來源運算元 ARM的指令包含一個可選的條件碼。只有在CPSR中的條件碼旗標滿足指定的條件時,帶條件碼的指令才可以執行。也可以根據一條指令設置的旗標,有條件地執行另一條指令。每一條ARM指令包含4位元的條件碼,位於指令的最高4位元[31:28]。每種條件碼可用兩個字元表

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档