Chapter 3 ARM微处理器的指令集ppt.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Chapter 3 ARM微处理器的指令集ppt

MSR 指令 2/3 此外,在使用者模式的指令動作是如下所列的程式 MSR CPSR_all, Rm ; 傳送 Rm[31:28] 的內容到 CPSR[31:0] MSR CPSR_flg, Rm ; 傳送 Rm[31:28] 的內容到 CPSR[31:28] MSR CPSR_flg, #0xA0000000 ; 設定CPSR[31:28]為0xA 設定N,C; 清除Z,V MRS Rd, CPSR ; 傳送Rm[31:0]的內容到 CPSR[31:0] MSR 指令 3/3 在特權模式下,這些的指令動作是如下所列的程式 MSR CPSR_all, Rm ; 傳送 Rm[31:0] 的內容到 CPSR[31:0] MSR CPSR_flg, Rm ; 傳送 Rm[31:28] 的內容到 CPSR[31:28] MSR CPSR_flg, #0x座机电话号码 ; 設定CPSR[31:28]為0x5 設定Z,V; 清除N,C MSR SPSR_all, Rm ; 傳送 Rm[31:0] 的內容到 SPSR[31:0] MSR SPSR_flg, Rm ; 傳送 Rm[31:28] 的內容到 SPSR[31:28] MSR SPSR_flg, #0xC0000000 ; 設定SPSR[31:28]為0xC 設定N,Z; 清除C,V MRS Rd, SPSR ; 傳送Rm[31:0]的內容到 SPSR[31:0] 載入/存回指令 ARM 微處理器支援載入/存回指令,用於暫存器和記憶體之間傳送資料,載入指令用於將記憶體的資料傳送到暫存器,存回指令則完成相反的動作。 常用的載入/存回指令 LDR 字元組資料載入指令 STR 字元組資料存回指令 LDRB 位元組資料載入指令 STRB 位元組資料存回指令 LDRH 半字元組資料載入指令 STRH 半字元組資料存回指令 LDR 指令 LDR 指令的格式為: LDR 條件 目的暫存器, 記憶體位址> 程式範例 LDR R0, [R1] ;將記憶體位址為 R1 的字元組資料讀到 R0 LDR R0, [R1, R2] ;將記憶體位址為 R1+R2 的字元組資料讀到 R0 LDR R0, [R1, #8] ;將記憶體位址為 R1+8 的字元組資料讀到 R0 LDR R0, [R1, R2] ! ;將記憶體位址為 R1+R2 的字元組資 料讀到 R0,並將新位址 R1+R2 寫入 R1 LDR R0, [R1, #8] ! ;將記憶體位址為 R1+8 的字元組資料讀到 R0, 並將新位址 R1+8 寫入 R1 LDR R0, [R1], R2 ;將記憶體位址為 R1 的字元組資料讀到 R0,並 將新位址 R1+R2 寫入 R1 LDR R0, [R1, R2, LSL #2] ! ;將記憶體位址為 R1+R2×4 的字元組資料讀到 R0,並將新位址 R1+R2×4 寫入 R1 LDR R0, [R1], R2, LSL #2 ;將記憶體位址為 R1 的字元組資料讀到 R0,並 將新位址 R1+R2×4 寫入 R1 STR 指令 STR 指令的格式為: STR 條件 來源暫存器, 記憶體位址> 程式範例 STR R0, [R1, #8] ;將 R0 中的字元組資料寫入到以 R1 為位址 的記憶體中,並將新位址 R1+8 寫入 R1 STR R0, [R1, #8] ! ;將 R0 中的字元組資料寫入到以 R1+8 為 位址的記憶體中,並將新位址 R1+8 寫入 R1 * 跳躍指令 – BLX 1/2 BLX 指令的格式為 BLX 目的位址 BLX 指令從 ARM 指令集跳躍到指令中所指定的目的位址,並將處理器的工作狀態從 ARM 狀態切換到 THUMB 狀態,該指令同時將 PC 的目前內容保存到暫存器 R14 中。 BLX 有兩種用法。第一種是 BX 與 BL 指令結合在一起。此指令可將程式控制權轉移到 4GB 絕對位址的任一字元位址。 CODE 32 ; 從此處起的程式以 ARM 指令集編譯 … BLX R0 ; 呼叫副程式 SUB1,R0[0]為1,切換為THUMB 指令集狀態 … CODE 16 ; 指示從此處的程式為 THUMB 指令集狀態 SUB1 : ; SUB1 程式進入點 BX R14 跳躍指令 – BLX 2/2 第二種是轉移程式控制權,同時也將原本下一個執行位址紀錄到 LR 暫存器中,並變更 THUMB 指令集狀

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档