ARM体系结构与编程(第2版)第2章_第1页
ARM体系结构与编程(第2版)第2章_第2页
ARM体系结构与编程(第2版)第2章_第3页
ARM体系结构与编程(第2版)第2章_第4页
ARM体系结构与编程(第2版)第2章_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、第第2章章 ARM指令分类及其寻址方式指令分类及其寻址方式在本章中,将介绍在本章中,将介绍ARM指令分类以及各类指令对指令分类以及各类指令对应的寻址方式。应的寻址方式。22.1 ARM指令集概要介绍指令集概要介绍在本节中,将介绍在本节中,将介绍ARM指令相关的一些基本概念,指令相关的一些基本概念,包括指令的分类、指令的一般编码格式以及包括指令的分类、指令的一般编码格式以及ARM指令中的条件码。指令中的条件码。32.1.1 ARM指令的分类指令的分类ARM指令集可以分为跳转指令、数据处理指令、指令集可以分为跳转指令、数据处理指令、程序状态寄存器程序状态寄存器(PSR)传输指令、传输指令、Load

2、/Store指令、协处理器指令和异常中断产生指令指令、协处理器指令和异常中断产生指令6类。类。42.1.2 ARM指令的一般编码格式指令的一般编码格式ARM指令字长为固定的指令字长为固定的32位。一条典型的位。一条典型的ARM指指令编码格式如下:令编码格式如下:31 28 27 25 24 21 20 19 16 15 12 11 8 7 0其中的符号及参数说明如下。其中的符号及参数说明如下。opcode:指令操作符编码。cond:指令执行的条件编码。S:决定指令的操作是否影响CPSR的值。Rd:目标寄存器编码。Rn:包含第1个操作数的寄存器编码。shifter_operand:表示第2个操作

3、数。5cond0 0 1opcodeS Rn Rdshifter_operand2.1.3 ARM指令的条件码域指令的条件码域条件码共有条件码共有16个,各条件码的含义和助记符如表个,各条件码的含义和助记符如表2.1所示。可条件执行的指令可以在其助记符的扩所示。可条件执行的指令可以在其助记符的扩展域加上条件码助记符,从而在特定的条件下执行。展域加上条件码助记符,从而在特定的条件下执行。参见教材P2362.2 ARM指令的寻址方式指令的寻址方式ARM指令的寻址方式有以下几种,分别进行讨论:指令的寻址方式有以下几种,分别进行讨论:数据处理指令的操作数的寻址方式。字及无符号字节的Load/Store

4、指令的寻址方式。杂类Load/Store指令的寻址方式。批量Load/Store指令的寻址方式。协处理器Load/Store指令的寻址方式。72.2.1 数据处理指令的操作数的寻址方式数据处理指令的操作数的寻址方式通常数据处理指令的格式如下所示:通常数据处理指令的格式如下所示: S , 其中的符号及参数说明如下。其中的符号及参数说明如下。:是指令助记符,如ADD表示算术加操作指令。:表示指令执行的条件。S:决定指令的操作是否影响CPSR的值。:表示目标寄存器。:表示包含第1个操作数的寄存器。:表示第2个操作数。82.2.1 数据处理指令的操作数的寻址方式数据处理指令的操作数的寻址方式通常有下面

5、通常有下面3种格式。种格式。(1)立即数方式。(2)寄存器方式。(3)寄存器移位方式。数据处理指令操作数的具体寻址方式有下面数据处理指令操作数的具体寻址方式有下面11种。种。#, LSL #, LSL , LSR #, LSR , ASR #, ASR , ROR #, ROR , RRX92.2.2 字及无符号字节的字及无符号字节的Load/Store指令的寻址方式指令的寻址方式各种类型的各种类型的Load/Store指令的寻址方式由两部分组指令的寻址方式由两部分组成。一部分为一个的基址寄存器;另一部分为一个成。一部分为一个的基址寄存器;另一部分为一个地址偏移量。基址寄存器可以为任一个通用寄

6、存地址偏移量。基址寄存器可以为任一个通用寄存器;地址偏移量可以有以下器;地址偏移量可以有以下3种格式:种格式:立即数。寄存器。寄存器及一个移位常数。同样,寻址方式的地址计算方法有如下同样,寻址方式的地址计算方法有如下3种:种:偏移量方法。事先更新方法。事后更新方法。102.2.2 字及无符号字节的字及无符号字节的Load/Store指令的寻址方式指令的寻址方式LDR指令的语法格式如下所示:指令的语法格式如下所示: LDRB T,其中,其中,表示第表示第2个操作数的内存个操作数的内存地址,共有如下地址,共有如下9种格式:种格式:, #+/, +/, +/,#, #+/!, +/!, +/,#!,

7、 #+/, +/, +/,#112.2.3 杂类杂类Load/Store指令的寻址方式指令的寻址方式这里所说的杂类这里所说的杂类Load/Store指令,包括操作数为半字指令,包括操作数为半字(无符无符号数或带符号数号数或带符号数)数据的数据的Load/Store指令;操作数为带符号指令;操作数为带符号的字节数据的的字节数据的Load 指令;双字的指令;双字的Load/Store指令。这类指指令。这类指令的语法格式为:令的语法格式为: LDR|STRH|SH|SB|D , 其中,其中,是指令中内存单元的寻址方是指令中内存单元的寻址方式,具体有以下式,具体有以下6种格式:种格式:, #+/, +

8、/, #+/!, +/!, #+/, +/122.2.4 批量批量Load/Store指令的寻址方式指令的寻址方式一条批量一条批量Load/Store指令可以实现在一组寄存器和指令可以实现在一组寄存器和一块连续的内存单元之间传输数据。其语法格式如一块连续的内存单元之间传输数据。其语法格式如下:下:DM|STM !, 其中,指令中寄存器和内存单元的对应关系满足这其中,指令中寄存器和内存单元的对应关系满足这样的规则,即编号低的寄存器对应于内存中的低地样的规则,即编号低的寄存器对应于内存中的低地址单元,编号高的寄存器对应于内存中的高地址单址单元,编号高的寄存器对应于内存中的高地址单元,元,中存放地址

9、块的最低地址值。中存放地址块的最低地址值。132.2.4 批量批量Load/Store指令的寻址方式指令的寻址方式表示地址的变化方式,有以表示地址的变化方式,有以下下4种方式。种方式。IA (Increment After):事后递增方式。IB (Increment Before):事先递增方式。DA (Decrement After):事后递减方式。DB (Decrement Before):事先递减方式。批量批量Load/Store指令的编码格式如下:指令的编码格式如下:142.2.4 批量批量Load/Store指令的寻址方式指令的寻址方式1. 事后递增方式事后递增方式IA2. 事先递增方式事先递增方式IB3. 事后递减方式事后递减方式DA4. 事先递减方式事先递减方式DB5. 对应于栈操作的寻址方式对应于栈操作的寻址方式152.2.5 协处理器协处理器Load/Store指令的寻址方式指令的寻址方式一条协处理器一条协处理器Load/Store指令可以在指令可以在ARM处理器和协处理处理器和协处理器之间传输批量数据。其语法格式如下:器之间传输批量数据。其语法格式如下:L ,其中,其中,表示地址的变化方式,有以下表示地址的变化方式,有以下4种格式:种格式:,#+/*4,#+/*4

温馨提示

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

评论

0/150

提交评论