《嵌入式系统原理及应用》课件第3章.pptx

《嵌入式系统原理及应用》课件第3章.pptx

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

第3章ARM指令系统;

3.1ARM指令概述;

3.1.1ARM指令特点

ARM指令有如下特点:(1)指令长度固定。ARM具有32位ARM指令集和16位Thumb指令集,程序的启动都是从ARM指令集开始,包括所有异常中断都是自动转化为ARM状态。ARM指令集效率高,但是代码密度低;而Thumb指令集具有较高的代码密度,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。;

(2)所有的ARM指令都可以条件执行,可以通过添加适当的条件码“cond”后缀来达到条件执行的目的,从而提高代码密度,实现高效的逻辑操作(节省跳转和条件语句),提高代码效率。而Thumb指令仅有一条指令具备条件执行功能。

(3)新版本增加指令,并保持指令向后兼容,如16/32位的Thumb2指令集、VFP浮点数运算,指令集可以通过协处理器扩展。;

(4)大量使用寄存器,大多数据操作都在寄存器中完成,指令执行速度更快。

(5)寻址方式灵活简单,执行效率高。

(6)LoadStore结构。在RISC中,所有的计算都要求在寄存器中完成。而寄存器和内存的通信则由单独的Load/Store指令来完成。;

3.1.2ARM指令格式与条件码

ARM指令是三地址指令格式,如图3-1所示,指令的基本格式如下:

其中,<>号内的项是必须的,{}号内的项是可选的。;;

各项的说明如下:

(1)opcped:指令操作码、助记符,如ADD、LDR等。

(2)cond:指令的条件码,如表3-1所示,条件码共有16种,占用指令编码的最高四位[31:28]。

所有的ARM指令都可以条件执行,而Thumb指令只有B(跳转)指令具有条件执行功能。如果指令不标明条件代码,将默认为无条件(AL)执行。;

例3-1用户可以测试某个寄存器的值,满足条件时才可以执行某些指令。;;

例3-2巧妙地使用条件码,可写出非常简练的代码。;

(3)S:决定指令的操作是否影响CPSR的值。

默认情况下,数据处理指令不影响程序状态寄存器的条件码标志位,但可以选择通过添加“S”来影响标志位。CMP不需要增加“S”就可改变???应的标志位。

例3-3“S”位的使用。

LOOP;

(4)Rd:目标寄存器编码,Rd可为任意通用寄存器,寄存器之间用“,”分隔。

(5)Rn:包含第一个操作数的寄存器编码,Rn可为任意通用寄存器。

(6)operand2:第2操作数,可为8位立即数、寄存器及寄存器移位方式。

灵活地使用第2个操作数“operand2”能够提高代码效率。它有三种形式:;

①#immed-8r——常数表达式。

该常数必须对应8位位图,当小于等于255(0xFF)时,正常使用;当大于255时,必须是一个8位(小于等于8位有效数字)的常数通过循环右移偶数位得到。

例3-4逻辑与运算。ANDR1,R2,#0;其中此处的立即数是由0x12循环右移10位得到的,如图3-2所示。;;

例3-5ADDR3,R7,#1020;#1020为#immed-8r型的第2操作数。

分析:1020=0x3FC=0x000003FC,1020是0xFF循环右移30位后生成的32位立即数,因此合法。

例3-6判断如下立即数是否合法。;

②Rm——寄存器方式。

在寄存器方式下,操作数即为寄存器的数值。例如:

SUMR1,R1,R2;R1-R2→R1

③Rm,shift——寄存器移位方式。

将寄存器的移位结果作为操作数(移位操作不消耗额外的时间),但Rm值保持不变,移位方法如表3-2与图3-3所示,其中1≤n≤32。;;;

例3-7寄存器移位方式。

例3-8可以借助左右移实现操作数对2n乘除运算,左移3次相当于乘以8,右移3次相当于除以8,加上加减运算,从而实现任意函数,如Y=AX+B等。;

3.1.3ARM指令的寻址方式

寻址方式就是处理器根据指令中给出的源操作数地址码字段来实现寻找真实操作数地址(或物理地址)的方式。例如B现在21

文档评论(0)

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

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

1亿VIP精品文档

相关文档