ARM高分笔记--(三)ARM寻址方式
2013-08-06 20:01
260 查看
寻址方式就是说: 处理器根据指令中给出的地址信息来寻找物理地址的方式
一、立即寻址
立即寻址也叫立即数寻址,就是说:操作数本身就在指令中,这个操作数就叫立即数。所以这种指令对应的寻址方式就叫立即寻址。
eg:
注意: 当操作数作为立即数时,必须以“#”为前缀,对于16进制的立即数还要加上 “0x“ 或 ”&“
二、寄存器寻址
寄存器寻址就是:利用寄存器中的数值作为操作数。(这种寻址方式执行效率较高)
eg:
三、寄存器间接寻址
寄存器间接寻址就是:以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中
eg:
四、基址变址寻址
基址变址寻址就是:将寄存器(基址寄存器)的内容与地址中给出的地址偏移量相加,从而得到一个操作数的有效地址
eg:
判断是否位基址变址寻址的关键是看:最后基址寄存器是否有改变,如eg (3),如果不改变就是寄存器寄存器间接寻址
五、多寄存器寻址
多寄存器寻址: 一条指令可以完成多个寄存器值的传送
这种寻址方式可以用一条指令传送最多16个通用寄存器的值
eg:
其中,后缀 IA 表示每次执行完 加载/存储 操作后,R0 按字长度增加
六、相对寻址
相对寻址就是: 以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址
eg:
七、堆栈寻址
堆栈是一种数据结构(它其实就是存储器中的一块连续存储单元,配合一个专用寄存器--存放堆栈指针实现的一种工具),它按先进先出的方式工作。
这里的专用寄存器叫堆栈指针,用来指示当前堆栈的操作位置,堆栈指针总是指向栈顶
名词解释:
递增堆栈:数据向高地址方向生长
递减堆栈:数据向低地支方向生长
满堆栈:堆栈指针指向最后一个数据
空堆栈:堆栈指针指向最后一个数据的下一个位置
一、立即寻址
立即寻址也叫立即数寻址,就是说:操作数本身就在指令中,这个操作数就叫立即数。所以这种指令对应的寻址方式就叫立即寻址。
eg:
ADD R0,R0,#1 ; R0= R0+1
注意: 当操作数作为立即数时,必须以“#”为前缀,对于16进制的立即数还要加上 “0x“ 或 ”&“
二、寄存器寻址
寄存器寻址就是:利用寄存器中的数值作为操作数。(这种寻址方式执行效率较高)
eg:
ADD R0 , R1 , R2 ; R0 = R1+R2
三、寄存器间接寻址
寄存器间接寻址就是:以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中
eg:
ADD R0 , R1 ,[R2] ; R0 = R1+R2 [ ] 表示取值符
四、基址变址寻址
基址变址寻址就是:将寄存器(基址寄存器)的内容与地址中给出的地址偏移量相加,从而得到一个操作数的有效地址
eg:
(1) LDR R0 , [R1 , #4] ; R0 = [R1 + 4] (2) LDR R0 , [R1 , #4]! ; R0 = [R1 + 4] , ! 叹号表示,同时还要改变基址寄存器中的值,R1 = R1 + 4 (3) LDR R0 , [R1], #4 ; R0 = [R1] 同时 改变基址寄存器的值 R1 = R1+4 (4)LDR R0 , [ R1 , R2] ; R0 = [ R1 + R2]
判断是否位基址变址寻址的关键是看:最后基址寄存器是否有改变,如eg (3),如果不改变就是寄存器寄存器间接寻址
五、多寄存器寻址
多寄存器寻址: 一条指令可以完成多个寄存器值的传送
这种寻址方式可以用一条指令传送最多16个通用寄存器的值
eg:
LDMIA R0 , {R1,R2,R3,R4} ; R1 = [R0] , R2 = [R0+4] , R3 = [R0+8] ,R4 = [R0+12]
其中,后缀 IA 表示每次执行完 加载/存储 操作后,R0 按字长度增加
六、相对寻址
相对寻址就是: 以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址
eg:
BL NEXT ; 跳转指令BL就采用了相对寻址 ..... NEXT .... ..... MOV PC,LR;
七、堆栈寻址
堆栈是一种数据结构(它其实就是存储器中的一块连续存储单元,配合一个专用寄存器--存放堆栈指针实现的一种工具),它按先进先出的方式工作。
这里的专用寄存器叫堆栈指针,用来指示当前堆栈的操作位置,堆栈指针总是指向栈顶
名词解释:
递增堆栈:数据向高地址方向生长
递减堆栈:数据向低地支方向生长
满堆栈:堆栈指针指向最后一个数据
空堆栈:堆栈指针指向最后一个数据的下一个位置
相关文章推荐
- ARM学习笔记(八)--寻址方式
- [国嵌笔记][023][ARM寻址方式]
- arm蛋疼汇编part 2 -- arm寻址方式
- ARM指令寻址的几种方式
- 2: 心法筑基--ARM汇编指令之寻址方式
- ARM处理器的三级流水线和ARM指令及寻址方式
- ARM指令的寻址方式
- 入门 ARM 汇编(二)—— 寻址方式
- ARM高分笔记--(二)ARM工作模式
- 【学习笔记】汇编:如何区分寻址方式
- 四 ARM汇编--寻址方式
- ARM指令寻址方式
- 8086汇编学习笔记6-寻址方式
- ARM寄存器的7种工作模式和几种寻址方式
- ARM寻址方式小结 [ARM]
- 汇编--学习笔记(二)-寻址方式
- ARM寻址方式
- ARM汇编编程基础之三 —— 基本寻址方式与基本指令
- ARM 汇编寻址方式
- ARM的寻址方式