第3章 ARM指令集(2016年2月22日).ppt

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
共129页 * (3)交换指令SWP应用 SWP R1,R1,[R0] SWPB R1,R2,[R0] I2C_SEM EQU 0I2C_SEM_WAIT MOV R0,#0 LDR R0,=I2C_SEM SWP R1,R1,[R0] CMP R1,#0 BEQ I2C_SEM_WAIT 共129页 * 作业 1、ARM指令分为几类?分别是什么? 2、ARM指令有几种寻址方式?分别是什么? 程序状态寄存器常用的两个域为:条件标志位域 和 控制位域。 共129页 * * 在ARM V5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算指令是否发生了溢出。在其他版本的处理器中,Q标志位无定义。 共129页 * * MSR指令的格式为: MSR{cond} CPSR_fields,operand2 MSR{cond} SPSR_fields,operand2 MSR 指令可以把 operand2 的内容传送到程序状态寄存器的特定域中。其中 operand2 可以为通用寄存器或立即数,fields 用于指定程序状态寄存器中需要操作的位域,为 f、s、x、c。 共129页 * * MSR CPSR,R0 ;传送R0的内容到CPSR MSR SPSR,R0 ;传送R0的内容到SPSR MSR CPSR_c,R0 ;传送R0的内容到CPSR,但仅仅修改CPSR中的控制位域 MSR CPSR_CFXS,R0 ;传送R0的内容到CPSR,修改所有域 C、F、X、S 大小写都可以,顺序也可任意。 共129页 * 3.3.5 加载/存储指令 包括字数据加载指令 LDR 、字节数据加载指令 LDRB 、半字数据加载指令 LDRH ;字数据存储指令 STR 、字节数据存储指令 STRB 、半字数据存储指令 STRH。 (1)LDR指令 字加载指令 LDR 的格式为: LDR{cond} Rd, address_mode LDR指令的功能是把存储在存储器中的一个32位字数据传送到目的操作数Rd。 共129页 * * 例:已知(R0)=0(R1)=0并已知在存储器中首地址为 0的区域中存放了数据0在首地址为 0的区域存放了数据 0试写出执行了指令 LDR R0,[R1,#4] 后 R0 和 R1 中的数据。 (R0)= 0(R1)= 0共129页 * * 例:条件如上题,试写出执行了指令 LDR R0,[R1,#4]!后的 R0 和 R1 中的数据。 (R0)=0(R1)=0例:条件如上题,试写出执行了指令 LDR R0,[R1],#4 后 R0 和 R1 中的数据。 (R0)=0(R1)=0共129页 * LDR R1,[R0,#0X12] ;将R0+12地址处的数据读出,保存到R1中(R0的值不变) LDR R1,[R0,R2,LSL #02] ;将R0+R*4地址处的数据读出,保存到R1中(R0、R2的值不变) LDR Rd,label ;label为程序标号, label必须是当前指令-4~4KB范围内 共129页 * * (2)LDRB指令 字节加载指令 LDRB 的格式为: LDR{cond}B Rd, address_mode LDRB 指令的功能是从存储器中将一个 8 位的字节数据传输到 Rd,同时将寄存器的 高24位 清零。 LDRB R0,[R1,#8] ;R0←((R1)+8),并将R0的高24位清零。 共129页 * * (3)LDRH指令 半字加载指令 LDRH 的格式为: LDR{cond}H Rd, address_mode LDRH 指令的功能是把存储器中的 16 位半字数据传送到 Rd,同时将寄存器的 高16位 清零。 LDRH R0,[R1,#8] ;R0←((R1)+8),并将 R0的高16位清零 共129页 * * 字存储指令 STR 的格式如下: STR Rd, address_mode (4)STR指令 STR 指令的功能是把一个 32 位源操作数传送到存储器中。 STR R0,[R1,#8] ; (R0)→((R1)+8) 共129页 * * ①变量访问 NumCount e

您可能关注的文档

文档评论(0)

70后老哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档