微处理器系统结构与嵌入式系统-第八章_ARM汇编指令解析.ppt

微处理器系统结构与嵌入式系统-第八章_ARM汇编指令解析.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微处理器系统结构与嵌入式系统-第八章_ARM汇编指令解析

单数据存取指令的编码格式 字和无符号字节存取指令LDR/STR P表示前/后变址 U=1:加 U=0: 减 B=0:字节 B=1:字 W=1:回写基址寄存器,对应指令中的“!” W=0:不回写 存储单元寻址方式 L=1:加载 L=0:存储 Rd为源/目标寄存器 Rn为基址寄存器 S=1:有符号数, S=0: 无符号数 H=1:半字,H=0:字节 存储单元寻址方式 半字和有符号字节存取指令LDR/STR I=1立即数 I=0寄存器移位 */95 数据块(多寄存器)存取指令的编码格式 数据块(多寄存器)存取指令编码LDM/STM S对应于指令中的”^”符号:在恢复PC时也同时恢复SPSR P表示前/后变址 U表示加/减 W表示回写(!) 寄存器列表 Rn为基址寄存器 L=1:加载 L=0:存储 * */95 寄存器/存储器交换指令的编码格式 B用于区别无符号字节(B为1)或字(B为0) Rm源寄存器 Rd目标寄存器 Rn为基址寄存器 SWP R1,R1,[R0] ; R1?[R0] SWPB R1,R2,[R0] ;将R0指向的存储单元低字节数据读 ;取到R1中(高24位清零),并将R2的 ;内容写入到该内存单元中的最低字节 * */95 分支指令的编码格式 分支指令B/BL指令编码格式 L=0:B指令,跳转 L=1: BL指令,保存PC并跳转,可返回 24位有符号立即数(偏移量) 分支指令BX指令编码格式 Rm目标地址寄存器,该寄存器装载31位跳转地址,最低位为1时切换到Thumb状态 * */95 状态寄存器访问指令的编码格式 指定传送的区域,可以为以下字母(必须小写)的一个或者组合: c 控制域屏蔽字节(psr[7..0]) x 扩展域屏蔽字节(psr[15..8]) s 状态域屏蔽字节(psr[23..16]) f 标志域屏蔽字节(psr[31..24]) 要传送到状态寄存器指定域的立即数 MSR指令编码1 MSR指令编码2 8位立即数 目标寄存器,不能为R15 R= 0:CPSR R= 1:SPSR MRS指令编码 立即数 移位次数 * 软中断指令的编码格式 SWI{cond} immed_24 指令执行的条件码 指令传递的参数(24位立即数,其值 为0~224-1); 执行时CPU忽略该参数,交OS处理。 * */95 数据处理指令 ARM的数据处理指令大致可分为以下几类: 数据传送指令:MOV、MVN 算术运算指令:ADD、SUB、RSB、ADC、SBC、RSC、 MUL、MLA、UMULL、UMLAL、SMULL、SMLAL 逻辑运算指令 :AND、ORR、EOR、BIC 比较指令:CMP、CMN、TST、TEQ 数据处理指令只能对寄存器的内容进行操作,而不能对内存中的数据进行操作。 所有ARM数据处理指令均可选择使用S后缀,以使指令影响状态标志。 */95 数据传送指令 MOV R11,#0xF000000B ;R1= 0xF000000B MOV R0,R1 ;R0=R1 MOVS R3,R1,LSL #2 ;R3=R12,并影响标志位 MOV PC,LR ;PC=LR,子程序返回 MVN R1,R2 ;将R2按位取反,结果存到R1 指 令 格 式 说 明 操 作 MOV{cond}{S} Rd,operand2 数据传送 Rd←operand2 MVN{cond}{S} Rd,operand2 数据非传送 Rd←(~operand2) 当有后缀S时指令将根据结果更新标志N和Z,在计算 operand2( 8位立即数或寄存器)时更新标志C,不影响标志V。 MVN指令具有取反功能,所以可以装载范围更广的立即数。 */95 算术运算指令 指 令 格 式 说 明 操 作 ADD{cond}{S} Rd,Rn,operand2 加法 Rd←Rn+operand2 SUB{cond}{S} Rd,Rn,operand2 减法 Rd←Rn-operand2 RSB{cond}{S} Rd,Rn,operand2 逆向减法 Rd←operand2-Rn ADC{cond}{S} Rd,Rn,operand2 带进位加法 Rd←Rn+operand2+C SBC{cond}{S} Rd,Rn,operand2 带借位减法 Rd←Rn-operand2-~C RSC{cond}{S} Rd,Rn,operand2 带借位逆向减法 Rd←operand2-Rn-~C 可影响N,Z,C和V标志位。 ADDS R1,R1,#1020 ;R1=R1+1020,并影响标志位 ADD R1,R1,

文档评论(0)

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

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

1亿VIP精品文档

相关文档