第二章ARM指令系统及S3C2410总汇.pptVIP

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
*;2.3.1 ARM指令系统概述;*; (3)ARM指令的格式 ARM指令基本的语法格式为: Opcode {cond}{s} Rd, Rn {, Operand2} Opcode:指令操作码。 cond:指令的条件码。 S:决定指令的操作是否影响cpsr的值。 Rd:目标寄存器编码。 Rn:包含第一个操作数的寄存器编码。 Operand2:第2操作数。 ARM指令典型的编码格式为: (数据处理指令类); (4)指令的条件码 条件码的位数和位置:每条ARM指令包含4位条件码域cond,它占用指令编码的最高四位[31:28]。 条件码的表示:条件编码共 24 =16 种,其中,15种用于指令的条件码。每种条件码用2个英文缩写字符表示。(见P47 表2-6) 带条件指令的执行:ARM处理器根据指令的执行条件是否满足,决定当前指令是否执行。 只有在cpsr中的条件标志位满足指定的条件时,指令才会被执行。不符合条件的代码依然占用一个时钟周期(相当于一个NOP指令)。 条件码的书写方法:条件码的位置在指令助记符的后面(因此也称为条件后缀)。 例如: MOVEQ R0, R1;指令条件码表;2.3.2 ARM指令集;1)跳转指令;(续);(2)BX 分枝并可选地交换指令集指令,其句法如下: BX {cond} Rm 其中:Rm是含有转移地址的寄存器。Rm的位[0]不用来作为地址的一部分。若Rm的位[0]为1,则指令将CPSR中的标志T置位,且将目标地址的代码解释为Thumb代码;若Rm的位[0]为0,则位[1]就不能为1。 BX指令将引起处理器转移到Rm中的内容所指向的地址处,若Rm的位[0]为1,则指令集变换到Thumb集。 ;(续);(3)BLX 带链接分枝并可选地交换指令集,这条指令的句法结构有如下两种形式: BLX {cond} Rm 带链接有条件转移到寄存器中的绝对地址; BLX label 带链接无条件转移到程序相对偏移地址; 其中:Rm是含有转移地址的寄存器。Rm的位[0]不用来作为地址的一部分。若Rm的位[0]为1,则指令将CPSR中的标志T置位,且将目标地址的代码解释为Thumb代码;若Rm的位[0]为0,则位[1]就不能为1。 ;(续); ;3)乘法指令和乘加指令;包含两条指令: MRS 将CPSR或SPSR_mode内容移到通用寄存器。 MSR 将立即数或通用寄存器内容移到CPSR或SPSR_mode。 使用说明: 用户模式,CPSR的控制bits(bit7~0,I、F、T、M4~M0)不能被改变,其他模式(Privileged)整个CPSR能被改变。 永远不能通过软件改变CPSR的T bit,否则处理会进入不可预知的状态。 SPSR寄存器的访问依赖于异常时的模式,例如,而SPSR_fiq只能在FIQ模式访问。 用户模式不能访问SPSR,因为用户模式没有相应的SPSR寄存器。 不能使用R15做源或目的寄存器。 强烈建议使用读-修改-写的策略修改PSR寄存器。;通用寄存器和32位地址空间内的存储单元之间的数据传送。 加载指令: LDR:字数据加载指令,由存储器到Rd。 格式:LDR{条件} Rd, 存储器地址 举例: LDR R1,[R2] 存储指令 STR:字数据存储指令,由Rn到存储器。 格式:STR{条件} Rn, 存储器地址 举例: STR R1,[R2] 说明 后缀B表示字节存储,H表示半字,S表示符号… 本节讨论均以字及无符号字、字节的访问为准。 以H、SH、SB、D后缀的指令的寻址方式略有不同。;指令格式: LDM|STM{cond}FD|ED|FA|EA|IA|IB|DA|DB Rn{!},Rlist{^} 多字节存取指令: LDM:将Rn指向的存储空间的数据,装入Rlist所列寄存器组。 STM:将Rlist所列寄存器组内的数据存入Rn指向的存储空间。 常用于在寄存器和内存之间传递多个字节,例如,用堆栈方式保存与恢复程序现场时传递参数。 一般数据传递时附加码含义: I:Increase 递增,传递过程中Rn是递增的。 D:Decrease递减,传递过程中Rn是递减的。 B:Before,传递前更新Rn。 A:After ,传递后更新Rn。;7)数据交换指令;MCR;(1)CDP 协处理器数据操作指令,其句法如下: CDP {cond} coproc,opcode1,CRd,CRn,CRm{,opcode2} 其中:coproc 指令操作的协处理器名。标准名为pn,其中n为0~15; opcode1 协处理器特定操作码; CRd,CRn,CRm 协处理器寄存器; opcode

文档评论(0)

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

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

1亿VIP精品文档

相关文档