ARM 寻址方式
来源:互联网 发布:科来网络8.0破解版 编辑:程序博客网 时间:2024/05/29 03:30
一、基本寻址方式
ARM处理器具有8种基本寻址方式。
(1)、寄存器寻址;
操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值来操作。
MOV R1, R2 ;将R2的值存入R1
(2)、立即寻址;
立即寻址就是数据包含在指令当中,取出指令也就取出了可以立即使用的操作数(这样的数称为立即数)。
MOV R0, #0xFF000 ;将立即数0xFF000装入R0寄存器
(3)、寄存器移位寻址;
寄存器移位寻址是ARM指令集特有的寻址方式。当第2个操作数是寄存器移位方式时,第2个寄存器操作数在与第1个操作数结合之前,选择进行移位操作。
MOV R0, R2, LSL #3 ;R2的值左移3位,结果放入R0,
;即是R0=R2×8
(4)、寄存器间接寻址;
寄存器间接寻址指令中的地址码给出的是一个通用寄存器的编号,所需的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针。
LDR R1, [R2] ;将R2指向的存储单元的数据读出,保存在R1中
(5)、基址寻址;
基址寻址就是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址。基址寻址用于访问基址附近的存储单元,常用于查表、数组操作、功能部件寄存器访问等。
LDR R2, [R3, #0x0C] ;读取R3+0x0C地址上的存储单元的内容放入R2
(6)、多寄存器寻址;
多寄存器寻址一次可传送几个寄存器值,允许一条指令传送16个寄存器的任何子集或所有寄存器。多寄存器寻址指令举例如下:
LDMIA R1! , {R2-R4,R6} ;将R1指向的单元中的数据读出到R2~R4,R6中
(7)、堆栈寻址;
相对寻址是基址寻址的一种变通。由程序计数器PC提供基准地址,指令中的地址码字段作为偏移量,两者相加后得到的地址即为操作数的有效地址。
BL SUBR1 ;调用到SUBR1子程序
...
SUBR1 ...
(8)、相对寻址
堆栈是一个按特定顺序进行存取的存储区,操作顺序为“后进先出” 。堆栈寻址是隐含的,它使用一个专门的寄存器(堆栈)指向一块存储区域(堆栈),指针所指向的存储单元。即是堆栈的栈顶。
存储器堆栈可分为两种:
向上生长:向高地址方向生长,称为递增堆栈
向下生长:向低地址方向生长,称为递减堆栈
堆栈指针指向最后压入的堆栈的有效数据项,称为满堆栈;
堆栈指针指向下一个待压入数据的空位置,称为空堆栈。
四种类型的堆栈方式:满递增、空递增、满递减、空递减
- ARM指令寻址方式
- ARM的寻址方式
- ARM指令寻址方式
- ARM 处理器寻址方式
- ARM汇编--寻址方式
- ARM指令寻址方式
- ARM 指令寻址方式
- ARM指令寻址方式
- 汇编-ARM寻址方式
- ARM寻址方式
- ARM基本寻址方式
- ARM寻址方式
- ARM寻址方式
- ARM的寻址方式
- ARM寻址方式
- arm 寻址方式
- ARM寻址方式
- ARM寻址方式
- tomcat 优化配置
- Android 抗锯齿的设置
- HDU 5692 Snacks( dfs序 + 线段树处理区间求和)
- neutron的基本原理
- C++ 类的注意事项
- ARM 寻址方式
- js获取客户端操作系统
- C# 中的委托和事件
- 用jQuery跟原生js实现选项卡效果
- XML 新手入门基础知识
- FLAG
- KVM虚拟化管理
- 通过MediaStore获取Audio信息
- 2016夏季练习——搜索