ARM寻址方式

ARM寻址方式

定义

处理器根据指令中给出的信息来找到所需操作数的方式

立即数寻址

操作数本身就在指令中给出,只需要取出指令就得到了操作数的方式。(操作数称为立即数)

ADD R0, R0, #0X3F; //R0 = R0 +3F

第二个数就是操作数,需要用#来作为前缀


寄存器寻址

操作数存在寄存器中,利用寄存器中的数值作为操作数

ADD R0, R1, R2; //R0 = R1 + R2

寄存器间接寻址

寄存器中存放的是操作数在内存中的地址

LDR RO, [R2]; //R0 = R2

内存中第1000这个地址存放的是数据5,寄存器间接寻址就是在寄存器中放入的需要的数据在内存里面的地址


基址变址寻址

将寄存器里面的内容(基地址)与指令中给出的地址偏移量想加,从而得到操作数在内存中的地址。

LDR RO, [R2,#4]; //R0 = 【R2 +4】

内存中第1004这个地址存放的是数据5,基址变址寻址就是在寄存器中放入的地址加上偏移量得到的就是存放数据的地址。


相对寻址

与基址变址寻址相类似

相对寻址:PC指针当前的值为基地址,指令中的地址编号,作为偏移量,将两址想加之后得到的操作数作为有效地址。

BL Next 跳转到子程序Next出执行

Next


Mov PC ,LR 从子程序中返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值