9.ARM寻址方式

9.ARM寻址方式

1.立即数寻址

    立即数寻址,是一种特殊的寻址方式,操作数本身就是在指令中给出。只有取出指令就取到了操作数。这个操作数就称为立即数,对应的寻址方式就是立即数寻址方式。例如:

ADD R0,R1,#0X45;这汇编的意思:R1+0x45->R0

 

在以上两条指令中,第二个源操作数,是立即数,要求以"#"为前缀。

2.寄存器寻址

寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是一种执行效率较高的寻址方式。

该指令的执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中

3.寄存器间接寻址

寄存器间接寻址就是寄存器中的存放的是操作数在内存中的地址。例如以下指令:

在第一条指令中,以寄存器R2的值作为操作数的地址,在存储器中取得一个操作数后与R1相加,结果存入寄存器R0中。第二条指令将以R1的值为地址的存储器中的数据传送到R0中。

 

4.基址变址寻址

基址变址寻址就是将寄存器里的内容(基地址)与指令中给出的地址偏移量相加,从而得到操作数在内存中的地址:

 

5.相对寻址

与基址变址寻址方式相类似,相对寻址PC指针的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。以下程序段完成子程序的调用和返回,跳转指令BL采用了相对寻址方式:

 

转载于:https://www.cnblogs.com/FORFISH/p/5188694.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值