arm指令.docVIP

  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文档。上传文档
查看更多
加减法指令: MOV(move):数据传送指令 MVN(move negative):数据取反传送指令 ADD(add):加法 ADC(add with carry):带进位加法 SUB(subtract):减法 RSB(reverse subtract):反向减法 SBC(subtract with carry):带借位的减法 SBC{cond}{S} Rd,Rn,op2 ;Rd=Rn-op2-carry RSC(reverse subtract with carry):带借位的反向减法 RSC{cond}{S} Rd,Rn,op3 ;Rd= op3-Rn-!carry 逻辑指令 AND:逻辑与 ORR(logical or):逻辑或 EOR(exclusive or):逻辑异或 BIC(bit clear):位清零 CLZ(count leading zeros):位计数。 CLZ{cond} Rd,Rm;计算存储在Rm寄存器中各位为0的总个数。 乘法指令 MUL(multiply):32位乘法 MLA(multiply accumulate):32位乘加 MLA{cond} {S} Rd,Rn,op2,op3; SMULL(signed multiplication long):64位有符号数乘法 SMULL {cond}{S} Rdl,Rdh,Rn,op2; Rdh Rdl=Rn×op2,结果的高32位存入Rdh,低32位存入Rdl。 SMLAL(signed multiply accumulate long): 64位有符号数乘加 SMLAL {cond}{S} Rdl,Rdh,Rn,op2; Rdh Rdl=Rn×op2+Rdh Rdl UMULL(unsigned multiplication long): 64位无符号数乘法(同SMULL,下同SMLAL) UMLAL(unsigned multiplication long): 64位无符号数乘加 跳转指令 B/BL:跳转指令 BLX(branch with link and exchange):带返回和状态切换的跳转指令 BX:带状态切换的跳转指令 内存数据加载指令 LDR:字数据读取指令 LDR {cond} Rd,addressing_mode;将addressing_mode中的字读取到Rd中。 STR:字数据写入指令。 STR {cond} Rd,addressing_mode;将Rd中32位的字中的字写入到指定单元中。 LDM: (1)批量内存字数据读取。 LDM {cond} addressing_mode Rn{!},registers; 将数据从指定内存单元中读取到指令中的寄存器列表的各寄存器中,主要用于块数据的读取、数据栈操作以及从子程序中返回的操作。 (2)用户模式的批量内存字数据加载。 LDM {cond} addressing_mode Rn,Registers_without_pc^; 将数据从指定的内存单元中读取到指令寄存器列表中的各寄存器中,主要用于块数据的读取,数据栈操作以及从子程序中返回的操作,但PC寄存器不能包含在LDM指令的寄存器列表中。 (3)带状态寄存器的批量内存数据加载 LDM {cond} addressing_mode Rn{!},registers_and_pc^; 将数据从指定的内存单元中读取到指令中寄存器列表的各寄存器中,同时将当前处理器模式对应的SPSR寄存器内容复制到CPSR中。 STM: (1)批量内存字数据写入。 STM {cond} addressing_mode Rn{!},registers; 将指令中寄存器列表中的各寄存器数值写入到连续的内存单元中,主要用于块数据的写入、数据栈操作,以及进入子程序时保存相关的寄存器的操作。 (2)用户模式的批量内存字数据写入 STM {cond} addressing_mode Rn,registers^; 将指令中寄存器列表中的各寄存器数值(用户模式对应的寄存器)写入到连续的内存单元中,主要用于块数据的写入、数据栈操作,以及进入子程序时保存相关的寄存器的操作。 CSPR数据传输指令 MRS(move PSR to general-purpose register):程序状态寄存器到通用寄存器的数据传达指令。 MSR(move to status register from arm register):通用寄存器到程序状态寄存器的数据传送指令。 数据交换指令 SWP:字数据交换。 SWPB:字节数据交换 比较指令 CMP(compare)

文档评论(0)

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

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

1亿VIP精品文档

相关文档