sunplusedu的个人空间 https://blog.eetop.cn/sunplusedu [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

总结:arm 指令的寻址方式

已有 612 次阅读| 2013-9-30 10:57 |个人分类:ARM学习


    1、立即寻址   操作数在指令中直接给出

    ADD R0,R0,#1 ;R0←R0+1

    ADD R0,R0,#0x3f ;R0←R0+0x3f

    2、寄存器寻址   操作数在寄存器

    ADD R0,R1,R2 ;R0←R1+R2

    3、寄存器间接寻址操作数的地址在寄存器

    ADD R0,R1,[R2] ;R0←R1+[R2]

    LDR R0,[R1] ;R0←[R1]

    STR R0,[R1] ;[R1]←R0

    4、基址变址寻址   操作数地址 = 基址寄存器 + 指令中给出的地址偏移

    LDR R0,[R1,#4] ;R0←[R1+4]

    LDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+4

    LDR R0,[R1] ,#4 ;R0←[R1]、R1←R1+4

    LDR R0,[R1,R2] ;R0←[R1+R2]

    5、多寄存器寻址   类似寄存器寻址,此处是多个寄存器而已

    LDMIA R0,{R1,R2,R3,R4} ;R1←[R0]

    ;R2←[R0+4]

    ;R3←[R0+8]

    ;R4←[R0+12]

    6、相对寻址   目标地址 = pc 当前值 + 指令给出的标号偏移地址

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

    ......

    NEXT

    ......

    MOV PC,LR ;从子程序返回

    7、堆栈寻址

    arm 微处理器支持这四种类型的堆栈工作方式。

    - 满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成。

    - 满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。

    - 空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。

- 空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。

 来自凌阳ARM培训网,更多相关推荐:http://emb.sunplusedu.com/questions/2013/0717/1988.html 


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 2

    评论
  • 1927

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-12 03:58 , Processed in 0.023664 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部