ARM寻址方式

一。指令从哪里找操作数呢?
通过寻址
二。寻址方式
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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值