资料介绍
4.1 数据处理指令的寻址方式
4.1.1 数据处理指令的寻址方式概要
数据处理指令的基本语法格式如下。
《opcode》 {《cond》} {S} 《Rd》,《Rn》,《shifter_operand》
其中《shifter_operand》有下面11种形式,如表4.1所示。
表4.1 《shifter_operand》的寻址方式
语 法寻 址 方 式
1#《immediate》立即数寻址
2《Rm》寄存器寻址
3《Rm》, LSL #《shift_imm》立即数逻辑左移
4《Rm》, LSL 《Rs》寄存器逻辑左移
5《Rm》, LSR #《shift_imm》立即数逻辑右移
6《Rm》, LSR 《Rs》寄存器逻辑右移
7《Rm》, ASR #《shift_imm》立即数算术右移
8《Rm》, ASR 《Rs》寄存器算术右移
9《Rm》, ROR #《shift_imm》立即数循环右移
10《Rm》, ROR 《Rs》寄存器循环右移
11《Rm》, RRX寄存器扩展循环右移
数据处理指令的寻址方式根据《shifter_operand》的不同,相应的分为11种。
4.1.2 指令解码
图4.1显示了数据处理指令不同寻址方式下的解码格式。
图4.1 数据操作指令编码格式
编码格式中各域含义如下。
· 《opcode》:确定具体指令。
· S:标识指令是否影响程序状态寄存器CPSR条件标志。
· Rd:指令操作的目的寄存器。
· Rn:指令第一源操作数。
· bit[11∶0]:移位操作,详见本章移位操作一节。
· bit[25]:被用来区分是立即数移位操作还是寄存器移位操作。
如果指令编码出现下面情况:bit[25] = 0并且bit[4] = 1并且bit[7] = 1,则指令并非数据处理指令,它可能是Load/Store指令或算术指令。
4.1.3 移位操作
数据处理指令是在算术逻辑单元ALU中完成。ARM处理器一个显著特征就是可以在操作数进入ALU之前,对操作数进行指定位数的左移或右移操作。这种功能明显增强了数据处理操作的灵活性。
移位操作可能产生进位,更新程序状态寄存器CPSR的进位标志C。移位操作有下面3种基本方式。
1.立即数方式
没有任何一条ARM指令可以包含一个32位的立即数,数据处理指令编码格式中,第二个操作数有12位。指令的编码格式如图4.1所示。
指令中的立即数是由一个8 bit的常数移动4 bit偶数位(0,2,4,…,26,28,30)得到的。所以,每一条指令都包含一个8 bit的常数X和移位值Y,得到的立即数=X循环右移(2×Y)。
注意8位立即数一定要移偶数位。
下面列举了一些有效的立即数。
0xFF、0x104、0xFF0、0x FF00、0x FF000、0x FF000000、0x F000000F
下面是一些无效的立即数。
0x101、0x102、0x FF1、0x FF04、0x FF003、0x FFFFFFFF、0x F000001F
下面是一些应用立即数的指令。
MOV r0,#0 ;送0到r0
ADD r3,r3,#1 ;r3的值加1
CMP r7,#1000 ;r7的值和1000比较
BIC r9,r8,#0x FF00 ;将r8中8~15位清零,结果保存在r9中
2.寄存器方式
寄存器的值可以被直接用于数据操作指令,如:
MOV r2,r0 ;r0的值送r2
ADD r4,r3,r2 ;r2加r3,结果送r4
CMP r7,r8 ;比较r7和r8的值
3.寄存器移位方式
寄存器的值在被送到ALU之前,可以事先经过桶形移位寄存器的处理。预处理和移位发生在同一周期内,所以有效的使用移位寄存器,可以增加代码的执行效率。
具体的移位(或者循环移位)方式有下面几种。
· ASR:算术右移。
· LSL:逻辑左移。
· LSR:逻辑右移。
· ROR:循环右移。
· RRX:扩展的循环右移。
以上5种移位方式,移位值均可以由立即数或寄存器指定。下面是一些在指令中使用了移位操作的例子。
ADD r2,r0,r1,LSR #5
MOV r1,r0,LSL #2
RSB r9,r5,r5,LSL #1
SUB r1,r2,r0,LSR #4
MOV r2,r4,ROR r0
4.1.1 数据处理指令的寻址方式概要
数据处理指令的基本语法格式如下。
《opcode》 {《cond》} {S} 《Rd》,《Rn》,《shifter_operand》
其中《shifter_operand》有下面11种形式,如表4.1所示。
表4.1 《shifter_operand》的寻址方式
语 法寻 址 方 式
1#《immediate》立即数寻址
2《Rm》寄存器寻址
3《Rm》, LSL #《shift_imm》立即数逻辑左移
4《Rm》, LSL 《Rs》寄存器逻辑左移
5《Rm》, LSR #《shift_imm》立即数逻辑右移
6《Rm》, LSR 《Rs》寄存器逻辑右移
7《Rm》, ASR #《shift_imm》立即数算术右移
8《Rm》, ASR 《Rs》寄存器算术右移
9《Rm》, ROR #《shift_imm》立即数循环右移
10《Rm》, ROR 《Rs》寄存器循环右移
11《Rm》, RRX寄存器扩展循环右移
数据处理指令的寻址方式根据《shifter_operand》的不同,相应的分为11种。
4.1.2 指令解码
图4.1显示了数据处理指令不同寻址方式下的解码格式。
图4.1 数据操作指令编码格式
编码格式中各域含义如下。
· 《opcode》:确定具体指令。
· S:标识指令是否影响程序状态寄存器CPSR条件标志。
· Rd:指令操作的目的寄存器。
· Rn:指令第一源操作数。
· bit[11∶0]:移位操作,详见本章移位操作一节。
· bit[25]:被用来区分是立即数移位操作还是寄存器移位操作。
如果指令编码出现下面情况:bit[25] = 0并且bit[4] = 1并且bit[7] = 1,则指令并非数据处理指令,它可能是Load/Store指令或算术指令。
4.1.3 移位操作
数据处理指令是在算术逻辑单元ALU中完成。ARM处理器一个显著特征就是可以在操作数进入ALU之前,对操作数进行指定位数的左移或右移操作。这种功能明显增强了数据处理操作的灵活性。
移位操作可能产生进位,更新程序状态寄存器CPSR的进位标志C。移位操作有下面3种基本方式。
1.立即数方式
没有任何一条ARM指令可以包含一个32位的立即数,数据处理指令编码格式中,第二个操作数有12位。指令的编码格式如图4.1所示。
指令中的立即数是由一个8 bit的常数移动4 bit偶数位(0,2,4,…,26,28,30)得到的。所以,每一条指令都包含一个8 bit的常数X和移位值Y,得到的立即数=X循环右移(2×Y)。
注意8位立即数一定要移偶数位。
下面列举了一些有效的立即数。
0xFF、0x104、0xFF0、0x FF00、0x FF000、0x FF000000、0x F000000F
下面是一些无效的立即数。
0x101、0x102、0x FF1、0x FF04、0x FF003、0x FFFFFFFF、0x F000001F
下面是一些应用立即数的指令。
MOV r0,#0 ;送0到r0
ADD r3,r3,#1 ;r3的值加1
CMP r7,#1000 ;r7的值和1000比较
BIC r9,r8,#0x FF00 ;将r8中8~15位清零,结果保存在r9中
2.寄存器方式
寄存器的值可以被直接用于数据操作指令,如:
MOV r2,r0 ;r0的值送r2
ADD r4,r3,r2 ;r2加r3,结果送r4
CMP r7,r8 ;比较r7和r8的值
3.寄存器移位方式
寄存器的值在被送到ALU之前,可以事先经过桶形移位寄存器的处理。预处理和移位发生在同一周期内,所以有效的使用移位寄存器,可以增加代码的执行效率。
具体的移位(或者循环移位)方式有下面几种。
· ASR:算术右移。
· LSL:逻辑左移。
· LSR:逻辑右移。
· ROR:循环右移。
· RRX:扩展的循环右移。
以上5种移位方式,移位值均可以由立即数或寄存器指定。下面是一些在指令中使用了移位操作的例子。
ADD r2,r0,r1,LSR #5
MOV r1,r0,LSL #2
RSB r9,r5,r5,LSL #1
SUB r1,r2,r0,LSR #4
MOV r2,r4,ROR r0
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 第3章:TMS320C24x寻址方式和指令系统PPT下载 8次下载
- ARM处理器的寻址方式和指令集介绍 33次下载
- ARM处理器的寻址方式详细说明 15次下载
- 使用51单片机进行寻址的方式详细说明
- 单片机有哪些寻址方式?7种寻址方式的详细资料讲解
- MCS-51单片机指令系统的介绍和寻址方式资料概述 0次下载
- MCS-51指令系统的分类、格式及一般说明和寻址方式,分类指令资料概述 6次下载
- Thumb数据处理指令 0次下载
- ARM指令寻址方式之内存访问指令寻址 1次下载
- 寻址方式的定义与ARM处理器9种基本寻址方式的介绍 11次下载
- 微机原理--80x86寻址方式与指令系统 0次下载
- 5指令系统寻址方式 0次下载
- 51单片机汇编语言教程_单片机寻址方式与指令系统 0次下载
- 汇编语言课件_实模式寻址方式及指令集 0次下载
- ARM/THUMB指令系统
- EtherCAT 数据帧格式和寻址方式简介 635次阅读
- PLC的数据处理能力都和哪些因素相关? 767次阅读
- MATLAB文件读写和数据处理的详细解释 2566次阅读
- 数据处理的基本问题 922次阅读
- 浅谈S7-200两种寻址方式 3127次阅读
- S7-200字节、字、双字寻址方式 6584次阅读
- 数据处理、开发引擎D3 Engine使用教程 1481次阅读
- 基于流式计算的DPI数据处理方案 4873次阅读
- 8051单片机指令系统的7种寻址方式解析 1.2w次阅读
- 深入解析大数据处理基本步骤 4114次阅读
- 探讨单片机的寻址方式 7948次阅读
- 微机原理8086的七种寻址方式 3.1w次阅读
- 基于AD574模数转换的数据处理程序设计 6962次阅读
- mips处理器寻址方式介绍 1.2w次阅读
- 单片机要如何寻址? 2300次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多