第2章嵌入式处理器.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文档。上传文档
查看更多
  7.ARM协处理器指令   ARM支持16个协处理器,如用于控制片上功能(如cache、MMU)的系统协处理器、浮点协处理器以及其他一些专用的协处理器。每个协处理器均忽略ARM处理器和其他协处理器的指令。如果协处理器没有接受ARM的协处理器指令,则ARM将产生未定义指令中止的陷阱,用来实现“协处理器丢失”的软件仿真。   ARM用于支持协处理器的指令主要用于:初始化协处理器的数据操作;在ARM寄存器和协处理器之间传送数据;在协处理器的寄存器和内存单元之间传送数据。   1) 协处理器的数据操作指令——CDP   * 句法:   CDP {cond} coproc, opcode1, CRd, CRn, CRm {,opcode2}   * 符号说明: coproc:协处理器名。标准名称为pn,其中n为0~15。 opcode1:协处理器的特定操作码。 CRd:协处理器目标寄存器。 CRn、CRm: 协处理器源寄存器。 opcode2:可选的协处理器特定操作码。   * 指令说明:   协处理器的数据操作完全是协处理器内部操作,完成协处理器寄存器状态的改变。指令不涉及ARM处理器的寄存器和存储器。   2) 协处理器的数据传送指令——LDC   * 句法: LDC {cond} {L} coproc, CRd, [Rn] ; 零偏移 LDC {cond} {L} coproc, CRd, [Rn,#{-}offset]{!} ; 前索引 偏移 LDC {cond} {L} coproc, CRd, [Rn],#{-}offset ; 后索引偏移   * 符号说明:   L: 可选后缀。表明是长整数传送。   Rn:存储器基址寄存器。若指定是R15,则使用值是当前指令的地址加8。   offset:偏移量表达式。其值为4的倍数,范围在0~1020之间。      * 指令说明:   协处理器的数据传送指令从存储器读取数据放入协处理器寄存器,或将协处理器寄存器的数据存入存储器。由于协处理器可支持自身的数据类型,因此寄存器传送的字数与协处理器相关。存储器地址的计算在ARM中完成,使用ARM基址寄存器Rn和8位偏移量进行计算。   3) 协处理器的寄存器传送指令——MCR、MRC   * 句法:   MCR {cond} coproc, opcode1, Rd, CRn, CRm, {,opcode2}   MRC {cond} coproc, opcode1, Rd, CRn, CRm, {,opcode2}   * 指令说明:   协处理器的寄存器传送指令用于在ARM寄存器和协处理器寄存器之间传送数据,具体用途有:浮点FIX操作,把整数返回到ARM的某个寄存器;浮点比较,把比较结果返回到ARM条件码标志,利用标志来确定控制流;FLOAT操作,从ARM寄存器中取一个整数,传入协处理器后转换成浮点数表示,并放入协处理器寄存器。   8.ARM杂项指令   1) 软件中断指令——SWI   * 句法:   SWI {cond} immed_24   * 符号说明:   immed_24: 表达式,其值为0~224-1范围内的整数。   * 指令说明:   SWI指令引起处理器SWI异常,即处理器变为管理模式,CPSR内容保存到管理模式的SPSR中,执行转移到SWI向量。这条指令不影响条件码标志。   2) 断点指令——BKPT   * 句法:   BKPT immed_16   * 符号说明:   immed_16:表达式,其值为0~216范围内的整数。   * 指令说明:   BKPT指令使处理器进入调试模式,调试工具可利用这条指令到达特定的地址时查询系统状态。 3) PSR操作指令——MRS、MSR * 句法: MRS {cond} Rd, psr MSR {cond} psr_fields, #immed_8r MSR {cond} psr_fields, Rm * 符号说明: psr:CPSR或SPSR。 fields:指定传送的区域,包括: c 控制域屏蔽字节(PSR[7:0]) x 扩展域屏蔽字节(PSR[15:8]) s 状态域屏蔽字节(PSR[23:16]) f 标志域屏蔽字节(PSR[31:24])   immed_8r:表达式,其值为对应8位位图的数字常量,该位图在32位字中循环移位,每次移动偶数位。   * 指令说明:   PSR操作指令MRS和MSR配合使用,可用来更新PSR的读-修改-写序列的一部分,如改变处理器模式或清除标志Q。其中MRS指令将PSR的内容传送到通用寄存器;MSR指令用立即数或通用寄存器的内容加载PSR的指定区域。   9.ARM伪指令

文档评论(0)

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

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

1亿VIP精品文档

相关文档