ARM寻址方式

ARM 寻址方式(处理器根据指令信息找到操作数的方式)

  • 1、立即数寻址( 操作数直接在指令中 mov R1,#3:将3放到R0)
  • 2、寄存器寻址 ( 操作数放在寄存器中 mov R0,R1:将R0的值放到R1中)
  • 3、寄存器间接寻址
            (操作数在寄存器值为地址指向的内存中 mov R0,[R2]:将R2中的值为地址指向内存中的数放到R0中)
  • 4、寄存器位移寻址
            (当第二个数为位移方式时、将寄存器的值先位移处理得到操作数 mov R0,R1,lsl#3:将R1中值左移3位放到R0中)
  • 5、寄存器基址寻址(也叫基址变址寻址)
            由间接寻址发展而来,先对寄存器中的值进行计算,再以结果为地址,取其指向内存值为操作数。
            示例: LDR R0, [R1,   #4]:先将R1中的值加4 然后以结果为地址 对应的内存操作数放到R0
  • 6、多寄存器寻址
            一条指令传送多个(最多16个)寄存器值
            示例: STMIA R0!,{R2-R7,R12}:将 R2 到 R7 和 R12 放到 R0 指向的地址中
  • 7、相对寻址
            以程序计数器 PC 的当前值为基地址,指令中的地址标号作为偏移量,
            将两者相加之后得到操作数的有效地址 BL NEXT:跳转到NEXT标签处
  • 8、拷贝寻址。将连续的寄存器值进行操作。
            STMIA R0! ,{R1-R7}:将R1~R7的数据保存到R0指向的地址中
  • 9、堆栈寻址。将栈用于操作数保存或者导出的操作。
            STMFD SP!,{R1-R7,LR}:将R1~R7,LR入栈,SP更新。满递减堆栈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值