zoukankan      html  css  js  c++  java
  • ARM寻址方式

    立即数寻址:

    操作数本身就在指令中

    例子:ADD R0R0#0X3F(注意:立即数需要在数据前面加上一个#)

    寄存器寻址:

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

    例子:ADD R0R1R2

    寄存器间接寻址:

    数据存放在内存中,寄存其中存放的不是操作数本身,而是其在内存中的地址。通常需要加上一个[]

    例子:LDR R0[R2]

    基地址变址寻址:

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

    例子:LDR R0[R1,#4]

    注意:R1中存放的是一个基地址

    相对寻址:
    与基址变址寻址相类似,相对寻址PC指针的当前值为基地址。指令中的地址标号作为偏移量,将两者相加后得到操作数的有效地址。

    例子:BL NEXT   ;跳转到子程序NEXT处执行

          ............

    NEXT:

          ............

          MOV PC, LR   ;从子程序返回

  • 相关阅读:
    对Promise的理解?
    对JavaScript垃圾回收机制的理解?
    说明split()与join()函数的区别?
    目标检测评估标准
    训练自己的数据集
    ssd_mobilenet_demo
    c++读取数据
    0XFF
    python读取数据
    快速排序
  • 原文地址:https://www.cnblogs.com/big-devil/p/8589392.html
Copyright © 2011-2022 走看看