码迷,mamicode.com
首页 > 其他好文 > 详细

ARM寻址方式

时间:2018-03-17 14:18:58      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:arm寻址   跳转   指针   立即数   例子   div   ext   log   time   

立即数寻址:

操作数本身就在指令中

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

 

寄存器寻址:

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

例子:ADD R0R1R2

 

寄存器间接寻址:

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

例子:LDR R0[R2]

 

基地址变址寻址:

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

例子:LDR R0[R1,#4]

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

 

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

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

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

NEXT:

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

      MOV PC, LR   ;从子程序返回

ARM寻址方式

标签:arm寻址   跳转   指针   立即数   例子   div   ext   log   time   

原文地址:https://www.cnblogs.com/big-devil/p/8589392.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!