[工学]第3章 ARM指令.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文档。上传文档
查看更多
[工学]第3章 ARM指令

ARM指令集 ARM指令格式 Opcode{cond}{s} Rd, Rn{, Operand2} Opcode 指令助记符,如LDR Cond 执行条件 S 是否影响CPSR寄存器的值,书写时影响,否则不影响 Rd 目标寄存器 Rn 第一个操作数的寄存器 Operand 2 第二个操作数 Cond:指令的条件码。 Opcode:指令操作码。 S:操作是否影响cpsr。 Rn:包含第一个操作数的寄存器编码。 Rd:目标寄存器编码。 Operand2:第2操作数。 注意 第二个操作数 在ARM指令中,灵活的使用第二个操作数能提高代码效率,第二个操作数的形式如下: #immed_8r 常数表达式,该常数必须对应8位位图,即常数是由一个8位的常数循环移位偶数位得到的。 合法的常量 0x3FC,0,0XF0000000,200,0XFF 不合法的常量 0x101,0x102,0xff1 常数表达式应用举例 MOV R0,#1; AND R1,R2,#0X0F; Rm 寄存器方式,在寄存器方式下操作数即为寄存器的数值。 举例: SUB R1,R1,R2; R1-R2-》R1 MOV PC,R0 ; PC=R0,程序跳转到指定地址 LDR R0,[R1],-R2 ;读取R1地址上的存储器单元内容并存入 R0,且R1= R1-R2 Rm,shift 寄存器移位方式,将寄存器的移位结果作为操作数,但Rm值保存不变,移位方式如下: ASR #n 算术右移n位 LSL #n 逻辑左移n位 LSR #n 逻辑右移n位 ROR #n 循环右移n位 RRX #n 带扩展的循环右移n 应用举例:8 ADD R1,R1,R1,LSL #3;R1=R1+R1×8 SUB R1,R1,R2,LSR #2;R1=R1-R2/4 条件码 条件码应用举例: 比较两个值的大小,并进行相应的加1处理,C代码 If(ab) a++; Else b++; 对应的ARM汇编指令,R0表示a,R1为b CMP R0,R1 ADDHI R0,R0,#1 ADDLS R1,R1,#1 ARM数据处理指令 数据处理指令为3大类: 数据传送指令(如MOV,MVN), 算术逻辑运算指令(如ADD,SUB,AND), 比较指令(如CMP,TST), 数据处理指令只能对寄存器的内容进行操作,所有的ARM数据处理指令均可选择使用S后缀,以影响状态标志位,比较指令CMP,CMN,TST,TEQ不需要后缀S,它们会直接影响状态标志. 数据传送指令 MOV 数据传送指令,将8位立即数或寄存器传送到目标寄存器,指令格式如下; MOV{cond}{s} Rd,operand2 例 MOV R1,#0X10 ; MOV R0,R1 ; MOVS R3,R1,LSL #2; MVN 数据非传送指令,将8位立即数或寄存器按位取反后传送到目标寄存器,指令格式如下: MVN{cond}{S} Rd, operand2 例 MVN R1,#0xff ;R1=0XFFFFFF00 MVN R1,R2 ;将R2取反,结果存到R1 算术逻辑运算指令 ADD 指令格式: ADD{cond}{S} Rd,Rn,operand2 例 ADDS R1,R1,#1 ADD R1, R1, R2 ADDS R3,R1,R2, LSL #2 SUB 指令格式: SUB{cond}{S} Rd,Rn,operand2 例 SUBS R0, R0,#1 SUBS R2,R1,R2 SUB R6,R7,#0x10 ADC 带进位加法指令,CPSR中的C条件标志位 指令格式: ADC{cond}{S} Rd,Rn,operand2 例 ADDS R0,R0,R2 ADDC R1,R1,R3 ;(R1,R0)=(R1,R0)+(R3,R2) SBC 带进位减法指令 指令格式: SBC{cond}{S} Rd,Rn,operand2 例 SUBS R0,R0,R2 SBC R1,R1,R3 ;(R1,R0)-(R3,R2) AND 逻辑与操作指令 指令格式如下: AND{cond}{S} Rd,Rn,ope

文档评论(0)

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

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

1亿VIP精品文档

相关文档