第3篇 嵌入式微处理器指令系统.ppt

  1. 1、本文档共100页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三、ARM处理器的指令系统 第三章:ARM处理器的指令系统 3.1 ARM指令系统 3.1.1 ARM指令集与Thumb指令集的关系 3.2 ARM处理器寻址方式 3.3 指令集介绍 3.3.1 指令格式 3.3.1 指令格式(续) 3.3.1 指令格式(续) 3.3.1 指令格式(续) 3.3.1 指令格式(续) 3.3.2 条件码 3.3.2 条件码(续) 3.3.2 条件码(续) 3.3.3 存储器访问指令 3.2 Thumb指令系统 3.2.1 简单的Thumb程序 术语 NOP伪指令在汇编时将会被代替成ARM中的空操作,比如可能是“MOV R0,R0”指令等。NOP可用于延时操作。 NOP NOP伪指令格式 应用示例(延时子程序): Delay NOP ;空操作 NOP NOP SUBS R1,R1,#1 ;循环次数减一 BNE Delay ;如果循环没有结束,跳转Delay继续 MOV PC,LR ;子程序返回 3.9.4 伪指令-空操作指令 Thumb指令集可以看作是ARM指令压缩形式的子集,它是为减小代码量而提出的,具有16位的代码密度。Thumb指令体系不完整,只支持通用功能。必要时仍需要使用ARM指令,如进入异常时。 说明:Thumb指令的格式与使用方式与ARM指令集类似,而且使用并不是很频繁,建议这部分内容选修。 ; 功能:使用BX指令切换处理器状态 AREA Example8,CODE,READONLY ENTRY CODE32 ARM_CODE ADR R0,THUMB_CODE+1 BX R0 ; 跳转并切换处理器状态 ? CODE16 THUMB_CODE MOV R0,#10 ; R0 = 10 MOV R1,#20 ; R1 = 20 ADD R0,R1 ; R0 = R0+R1 B . END 在Thumb程序段之前要用CODE16声明。 Thumb指令集较ARM指令集有如下限制: 只有B指令可以条件执行,其它指令都不能条件执行; 分支指令的跳转范围有更多限制; 数据处理指令的操作结果必须放入其中一个; 单寄存器访问指令,只能操作R0~R7; LDM和STM指令可以对R0~R7的任何子集进行操作; 3.2.2 Thumb指令集与ARM指令集的区别 解 释 英文全称 缩语、术语 TEQ{cond} 标志N、Z、C、V←Rn ^ operand2 相等测试指令 TEQ Rn, operand2 TST{cond} 标志N、Z、C、V←Rn operand2 位测试指令 TST Rn, operand2 CMP{cond} 标志N、Z、C、V←Rn-operand2 比较指令 CMP Rn, operand2 CMN{cond} 标志N、Z、C、V←Rn+operand2 负数比较指令 CMN Rn, operand2 条件码位置 操作 说明 助记符 位测试指令——TST指令将寄存器Rn的值与operand2的值按位作逻辑“与”操作,根据操作的结果更新CPSR中的相应条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。指令格式如下: TST{cond} Rn, operand2 应用示例: TST R0,#0x01 ; 判断R0的最低位是否为0 TST R1,#0x0F ; 判断R1的低4位是否为0 3.4.5 数据处理指令-比较指令(续) 注意:TST指令与ANDS指令的区别在于TST指令不保存运算结果。TST指令通常与EQ、NE条件码配合使用,当所有测试位均为0时,EQ有效,而只要有一个测试位不为0,则NE有效。 TEQ{cond} 标志N、Z、C、V←Rn ^ operand2 相等测试指令 TEQ Rn, operand2 TST{cond} 标志N、Z、C、V←Rn operand2 位测试指令 TST Rn, operand2 CMP{cond} 标志N、Z、C、V←Rn-operand2 比较指令 CMP Rn, operand2 CMN{cond} 标志N、Z、C、V←Rn+operand2 负数比较指令 CMN Rn, operand2 条件码位置 操作 说明 助记符 相等测试指令——TEQ指令将寄存器Rn的值与operand2的值按位作逻辑“异或”操作,根据操作的结果更新CPSR中的相应条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。指令格式如

文档评论(0)

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

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

1亿VIP精品文档

相关文档