您的位置:首页 > 其它

ARM寻址方式

2015-12-11 17:18 190 查看
一。指令从哪里找操作数呢?

通过寻址

二。寻址方式

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: