ARM寻址方式

来源:互联网 发布:超星阅读器 mac 编辑:程序博客网 时间:2024/05/17 02:49

一。指令从哪里找操作数呢?
通过寻址
二。寻址方式
1.立即数寻址(立即数也不是随便给的,除以4的结果在0-255之间就可以)
操作数本身就在指令中。前面加#
例子:ADD R0,R0,#0x3f;
2.寄存器寻址
操作数在寄存器中。效率较高
例子:ADD R0,R1,R2;
3.寄存器间接寻址
操作数在内存中。加中括号,代表地址
例子:LDR R0,[R2];
LDR{条件} Rd, <地址>
STR{条件} Rd, <地址>
LDR{条件}B Rd, <地址>
STR{条件}B Rd, <地址>

4.基址变址寻址
有两个值,操作数在内存中。基地址加上一个偏移量得到操作数在内存中的地址
例子:LDR R0,[R1,#4];
5.相对寻址
有两个值,操作数在内存中。PC指针当前值为基地址,指令中的地址标号作为偏移量,两个相加得到操作数在内存中的地址
例子:用到跳转指令,NEXT是地址标号
BL NEXT;
…….
NEXT
……..
MOV PC,LR;

0 0