常用Cortex-M汇编指令.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 2 附录1 常用Cortex-M汇编指令 附录1列出了常用的Cortex-M汇编指令,包括:数据操作指令、转移指令、存储器数据传送指令、异常及其他指令等,上述每一类指令都按照16位指令和32位指令分别讲解。 1. 数据操作指令 表1.1 16位数据操作指令 指令名称 指令格式 指令功能 ADC(带进位加法) ADC <Rd>, <Rm> Rd+= Rm+C ADD(加法) ADD <Rd>, <Rn>, #<imm3> Rd=Rn+imm3 ADD <Rd>, #<imm8> Rd+=imm8 ADD <Rd>, <Rn>, <Rm> Rd=Rn+Rm ADD <Rd>, <Rm> Rd+=Rm ADD <Rd>, PC, #<imm8>*4 Rd=PC+imm8*4 ADD <Rd>, SP, #<imm8>*4 Rd=SP+imm8*4 ADD <Rd>, SP, #<imm7>*4 Rd=SP+imm7*4 ADD SP, SP,#<imm7>*4 SP+=imm7*4 AND(按位与) AND <Rd>, <Rm> Rd &= Rm ASR(算术右移) ASR <Rd>, <Rm>, #<imm5> Rd = Rm算术右移imm5 ASR <Rd>, <Rs> Rd= Rd算术右移寄存器Rs数个位数 BIC(按位清零) BIC <Rd>, <Rs> Rd &= ~Rs CMN(负向比较) CMN <Rn>, <Rm> 将Rm取二进制补码后再与Rn比较 CMP(比较) CMP <Rn>, #<imm8> Rn 与8位立即数比较,并根据结果更新标志位的值 CMP <Rn>, <Rm> Rn与Rm比较,并根据结果更新标志位的值 EOR(异或) EOR <Rd>, <Rm> Rd^=Rm LSL(逻辑左移) LSL <Rd>, <Rm>, #<imm5> Rd= Rm<<imm5 LSL <Rd>, <Rs> Rd<<= Rs LSR(逻辑右移) LSR <Rd>, <Rm>, #<imm5> LSR <Rd>, <Rs> Rd= Rm>>imm5 Rd>>= Rs MOV(传送) MOV <Rd>, #<imm8> Rd=(U32) imm8 MOV <Rd>, <Rm> Rd= Rm MUL(乘法) MUL <Rd>, <Rm> Rd*=Rm MVN(取按位取反值) MVN <Rd>, <Rm> Rd= ~Rm NEG(取补码值) NEG <Rd>, <Rm> Rd= ~Rm + 1 ORR(按位或) ORR <Rd>, <Rm> Rd|= Rm SBC(带借位减法) SBC <Rd>, <Rm> Rd-= Rm+C SUB(减法) SUB <Rd>, #<imm8> Rd-=imm8 SUB <Rd>, <Rn>, <Rm> Rd= Rn-Rm SUB SP, #<imm7> * 4 SP-= imm7*4 TST(测试) TST <Rn>, <Rm> 执行Rn & Rm,并根据结果更新标志位 REV(反转) REVH/REV16(反转) REV <Rd>, <Rn> Rd=Rn字内的字节顺序反转 REV16 <Rd>, <Rn> Rd=Rn两个半字内的字节顺序反转 SXTB(字节提取扩展符号位) SXTB <Rd>, <Rm> 从寄存器Rm中提取字节[7:0],传送到寄存器Rd中,并用符号位扩展到32位 SXTH(半字提取扩展符号位) SXTH <Rd>, <Rm> 从寄存器Rm中提取半字[15:0],传送到寄存器Rd中,并用符号位扩展到32位 UXTB(字节提取扩展零位) UXTB <Rd>, <Rm> 从寄存器Rm中提取字节[7:0],传送到寄存器Rd中,并用零位扩展到32位 UXTH(半字提取扩展零位) UXTH <Rd>, <Rm> 从寄存器Rm中提取半字[15:0],传送到寄存器Rd中,并用零位扩展到32位 表1.2 32位数据操作指令 指令名称 指令格式 指令功能 ADC(带进位加法) ADC{S}.W <Rd>, <Rn>, #<imm12> Rd=Rn+imm12+C。有S就按结果更新标志位,下同 ADC{S}.W <Rd>, <Rn>, <Rm>{, <shift>} Rd= Rn+移位后的Rm+C位 ADD(加法) ADD{S}.W <Rd>, <Rn>,#<imm12> Rd= Rn+imm12 ADD{S}.W <Rd>, <Rm>{, <shift>} Rd=Rd+移位后的Rm ADDW(宽加法) ADDW.W <Rd>, <Rn>, #<imm12> Rd= Rn+imm12 AND(按位与) AND{S}.W <Rd>, <Rn>, #<imm12> Rd= Rn &

文档评论(0)

弹弹 + 关注
实名认证
内容提供者

人力资源管理师、教师资格证持证人

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

版权声明书
用户编号:6152114224000010
领域认证该用户于2024年03月13日上传了人力资源管理师、教师资格证

1亿VIP精品文档

相关文档