ARM微处理器格式_第1页
ARM微处理器格式_第2页
ARM微处理器格式_第3页
ARM微处理器格式_第4页
ARM微处理器格式_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上讲知识回顾异常6种异常响应过程及返回方法;

本讲学习内容1、ARM指令系统版本(了解)2、ARM微处理器格式3、ARM微处理器指令的寻址方式4、6种异常响应过程及返回方法;第三章ARM指令系统本章学习要求:◆要求了解指令系统的格式◆掌握ARM微处理器指令的寻址方式◆掌握一些常用的ARM指令的使用方法

3.1ARM指令系统版本

ARM公司从最初的开发到现在,ARM指令集结构有了巨大的改进,并在不断完善和发展。为了清楚地表达每个ARM内核所使用的指令集,ARM公司定义了一系列的指令集体系结构版本,以vx表示某种版本。(V1,V2,V3,V4,V5,V6)

指令系统概念

指令:是规定计算机进行某种操作的命令。

指令系统:计算机能够执行的各种指令的集合。3.2ARM微处理器指令格式1)所有指令都是32位的。(1)大多数指令都在单周期内完成。(2)所有指令都可以条件执行。(3)ARM指令为load/store类型。(4)基本指令仅36条,分成五类。(5)有9种寻址方式。(6)指令集可以通过协处理器扩展。1.ARM指令特点

2)ARM指令是加载/存储(Load/Store)型:指令集仅能处理寄存器中的数据,处理结果都要放回寄存器中对系统存储器的访问则需要通过专门的加载/存储指令来完成。

3)ARM指令可以分为五大类: 数据处理指令、存储器访问指令、分支指令、协处理器指令、杂项指令。

4)ARM指令有9种寻址方式:寄存器寻址、立即寻址、寄存器偏移寻址、寄存器间接寻址、基址寻址、堆栈寻址、多寄存器寻址、块拷贝寻址、相对寻址。2.ARM指令格式

1)ARM处理器是基于RISC原理设计的.2)具有32位ARM指令集和16位Thumb指令集3)ARM指令集效率高,但是代码密度低4)Thumb指令集具有更好的代码密度,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。

5)所有ARM指令都是可以有条件执行的,而Thumb指令仅有一条指令具备条件执行功能。

6)ARM程序和Thumb程序可相互调用,相互之间的状态切换开销几乎为零。ARM指令字长为固定的32位。一条典型的ARM指令编码格式如下:ARM指令的语法格式如下:<opcode>{<cond>}{S}<Rd>,<Rn>{,<opcode2>}其中,符号“<>”内的项是必须的,符号“{}”内的项是可选的。<opcode>是指令操作码,是必须的,如ADDS,SUBNES等。{<cond>}为指令执行条件码,是可选的,如EQ,NE等,如果不写则使用默认条件AL(无条件执行)。S为是否影响CPSR寄存器的值,书写时影响CPSR,否则不影响。Rd为目标寄存器编码。Rn为第一个操作数的寄存器编码。operand2为第二个操作数。Arm指令中,操作码(opcode)、目的操作数(Rd)、源操作数1(Rn)是必须的字段。

条件码(cond)、符号位标记(s)源操作数2(oprand2)是可选的。

其中Rd和Rn必须是寄存器,因此Arm的“立即数”只能存储在oprand2。3.ARM指令条件码当处理器工作在ARM状态时,几乎所有的指令都根据CPSR中条件码的状态和指令的条件域有条件地执行。当指令的执行条件满足时,指令被执行,否则被忽略。

每一条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。条件码共有16种,每种条件码可用两个字符表示,这两个字符可以加在指令助记符后面和指令同时使用。如:跳转指令B可以加上后缀EQ变为BEQ表示“相等则跳转”,即当CPSR中的Z标志置位时发生跳转。对于Thumb指令集,只有B指令具有条件码执行功能,此指令条件码同表3.3.1,但如果为无条件执行时,条件码助记符“AL”不能在指令中书写。寻址方式定义:处理器根据指令中给出的地址/信息,寻找操作数/物理地址的方式。ARM指令系统的寻址方式分为9种,有的分为7种的等,下面介绍7种寻址方式:3.3ARM指令的主要寻址方式1.立即寻址(立即数寻址)

定义:操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。

ADDR0,R0,#1

R0←R0+1

MOV R0 ,#0x3f ;R0←#0x3f

注意:

书写立即数时,要求以“#”为前缀。 十六进制数,#后加0x或&,如#0x3f,#&3f.

二进制数, #后加0b,如#0b1011

十进制数, #后加0d或缺省,如#0d678,#789

在指令格式中,第二个操作数有12位:因此有效立即数immediate可以表示成:

<immediate>=immed_8循环右移(2×rot) 4bit移位值(0-15)乘于2,得到一个范围在0-30,步长为2的移位值。 因此,将ARM中的立即数称为8位位图。

记住一条准则:“最后8位移动偶数位”得到立即数。Immed_8rot……1211870ShifterRORimmediate

用12位第二操作数来表示一个32位立即数时,采用的是将8位数通过移位的方式来实现的。

12bit空间中,低8字节存储8位位图,高4字节存储循环右移的次数。4字节只能表示24=16种移动次数,但是由于常数表达式定义中,移位限定为偶数次,因此这4个字节刚好能表示0、2、4、6、8…32位16个数字!AND

R1,R2,#0xff

当处理器处理这条指令的第二操作数0xff时,因为0xff为8位二进制数,所以处理器就将其直接放进8位“基本”数中,而4位“移位”数则为0.AND

R1,R2,#0x104

当处理器处理这条指令的第二操作数0x104时,因为此时0x104已经超过了8位二进制数,所以处理器就要将其“改造”一下,我们先把0x104转换成二进制0000

0000

0000

0000

0000

0001

0000

0100,我们可以看到,这个数是0000

0000

0000

0000

0000

0000

0100

0001通过循环右移30位得到的。思考:AND

R1,R2,#0xff000000

2.寄存器寻址寄存器寻址——利用寄存器中的数值作为操作数。(这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。)两种具体形式:寄存器寻址、寄存器移位寻址。一、寄存器寻址如指令:

ADD R0,R1,R2 ;R0←R1+R2

二、寄存器移位寻址

1)寄存器移位寻址 当第二操作数为寄存器型时,在执行寄存器寻址操作时,也可以对第二操作数寄存器进行移位,此时第二操作数形式为: MOVRd,Rn,Rm,{<shift>}其中:Rm称为第二操作数寄存器

<shift>用来指定移位类型和移位位数,有两种形式:

5位立即数 (其值小于32)寄存器(用Rs表示) (其值小于32) 在指令执行时将寄存器移位后的内容作为第二操作数参与运算。例如指令:

ADDR3,R2,R1,LSR#2

;R3←R2+(R1右移2位) ADDR3,R2,R1,LSRR0

;R3←R2+(R1右移R0位)

2)第二操作数移位方式

共有6种移位方式:—LSL逻辑左移 —LSR逻辑右移—ASL算术左移 —ASR算术右移—ROR循环右移 —RRX带扩展的循环右移(1)LSL:逻辑左移,空出的最低有效位用0填充。03100(2)LSR:逻辑右移,空出的最高有效位用0填充。310SUBR3,R2,R1,LSL#2;R3←R2-(R1左移2位)SUBR3,R2,R1,LSRR0;R3←R2-(R1右移R0位)0

(3)ASL:算术左移,由于左移空出的有效位用0填充,因此它与LSL同义。

(4)ASR:算术右移

(ArithmeticShiftRight)。算术移位的对象是带符号数,移位过程中必须保持操作数的符号不变。如果源操作数是正数,空出的最高有效位用0填充,如果是负数用1填充。ADDR3,R2,R1,ASL#2

;R3←R2+(R1左移2位)SUBR3,R2,R1,ASRR3

;R3←R2-(R1算术右移R3位)

300(5)ROR:循环右移(RotateRight),移出的字的最低有效位依次填入空出的最高有效位。

31

0

(6)RRX:带进位位的循环右移(RotateRightExtended)。将寄存器的内容循环右移1位,空位用原来C标志位填充。

310

CSUBR3,R2,R1,ROR#2

;R3←R2+(R1循环右移2位)SUBR3,R2,R1,RRXR0

;R3←R2-(R1带进位位循环右移R0位)3)第二操作数的移位位数

移位位数可以用立即数方式或者寄存器方式给出,其值均小于32,应为0---31。如下所示:ADDR3,R2,R1,LSR#2;R3

R2+(R1右移2位)ADDR3,R2,R1,LSRR4;R3

R2+(R1右移R4位) 寄存器R1的内容分别逻辑右移2位、R4位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论