第3章-ARM嵌入式处理器指令系统-.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文档。上传文档
查看更多
第3章-ARM嵌入式处理器指令系统-.ppt

第1章 EDA技术概述 第3章 ARM嵌入式处理器指令系统 3.1 ARM指令分类及指令格式 ARM体系结构除了支持执行效率很高的32位ARM指令集以外,为兼容数据总线宽度为16位的应用系统,也支持16位的Thumb指令集。Thumb指令集是ARM指令系统的一个子集,允许指令编码的长度为16位。与等价的32位代码相比较,Thumb指令集在保留32位代码优势的同时,大大的节省了系统的存储空间。 所有的Thumb指令都有对应的ARM指令,而且Thumb的编程模型也对应于ARM 的编程模型,在应用程序的编写过程中,只要遵循一定调用的规则, Thumb子程序和ARM 子程序就可以互相调用。 虽然Thumb指令集中的数据处理指令的操作数仍然是32位,指令地址也是32位,但 Thumb指令集为实现16位的指令长度,舍弃了ARM指令集的一些特性,如大多数的Thumb指令是无条件执行的,而几乎所有的ARM指令都是有条件执行的;大多数的Thumb 数据处理指令的目的寄存器与其中一个源寄存器相同。 3.4 Thumb指令集 大部分Thumb数据处理类指令采用2地址格式,操作结果放入其中一个操作数寄存器。Thumb状态下的寄存器结构特点决定了除MOV和ADD外的其它指令只能访问R0~R7寄存器。如果指令的操作数包含R8~R15,则指令的执行不更新CPSR中的状态参数位,其它情况更新CPSR状态位。 3.4.1 数据处理指令 3)反向减法指令 格式:RSB{条件}{S} 目的寄存器,操作数1,操作数2 用途:用操作数2减去操作数1,并将结果存放到目的寄存器中。操作数的要求同上。该指令可用于有符号数或无符号数的减法运算。 例如:RSB R0,Rl ,R2 ; R0= R2 - Rl RSB R0,Rl, #256 ; R0=256 - Rl RSB R0,R2,R3,LSL# 1 ; R0 = (R3 1) -R2 4)带借位反向减法指令 格式:RSC{条件}{S} 目的寄存器,操作数1,操作数2 用途:操作数2减去操作数1,再减去CPSR中的条件标志位C的反码,并将结果存放到目的寄存器中。操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。由于该指令使用进位标志来表示借位,因此可以做大于32位的数的减法,这时应注意不要忘记设置S后缀来更改进位标志。该指令可用于有符号数或无符号数的减法运算。 例如:RSC R0,Rl,R2 ;R0=R2 – Rl—!C 6. 逻辑运算指令 1)逻辑与指令 格式:AND{条件}{ S} 目的寄存器,操作数1,操作数2 用途:对两个操作数进行逻辑与运算,并把结果放置到目的寄存器中。操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。 该指令常用于屏蔽操作数1的某些位。 例如:AND R0 , R0 , # 3 ;该指令保持R0的0、1位,其余位清零 2)逻辑或指令 格式:ORR{条件} {S} 目的寄存器,操作数1,操作数2 用途:对两个操作数进行逻辑或运算,并把结果放置到目的寄存器中。操作数要求同上。 该指令常用于设置操作数1的某些位。 例如:ORR R0 , R0 , # 3 ;该指令设置R0的0 、1位,其余位保持不变 3)逻辑异或指令 格式:EOR{条件}{S} 目的寄存器,操作数1,操作数2 用途:对两个操作数进行逻辑异或运算,并把结果放置到目的寄存器中。操作数要求同上。该指令常用于反转操作数1的某些位。 例如:EOR R0 , R0 , # 3 ;该指令反转R0的0、1位,其余位保持不变 4)位清除指令 格式:BIC{条件}{S} 目的寄存器,操作数1,操作数2 用途:用于清除操作数1的某些位,并把结果放置到目的寄存器中。操作数要求同上。操作数2 为32位的掩码,如果在掩码中设置了某一位,则清除操作数1中相应的位,其余保持不变。 例如:BIC R0,R0,#%1011 ;该指令清除R0中的位0 、1和3,其余的位保持不变 7.乘法指令与乘加指令 ARM微处理器支持的乘法指令与乘加指令共有6条,按运算结果可分为32位和64位2类,与前面的数据处理指令不同,乘法指令与乘加指令中的所有操作数、目的寄存器必须为通用寄存器,不能用立即数或被移位的寄存器作为操作数,同时,目的寄存器和操作数1必须是不同的寄存器。

文档评论(0)

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

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档