adr :相对寻址,与当前位置有关
ldr :绝对寻址,与当前位置无关
在初始化SDRAM时就会用到adr,代码如下:
/* 初始化SDRAM */
ldr r0...SDRAM_CONFIG //使用adr相对跳转, r1=SDRAM_CONFIG地址
add r2,r0,#(13*4)
0:
ldr...r1,=SDRAM_CONFIG
通过以下实例:
ldr r0, _start
adr r0, _start
ldr r0, =_start...] ; c008018 //ldr指令(带=) : r0=c008018 里面内容=0c008014
c00800c: e1a00000 nop (mov r0...ldr r0, =_start
这个取得标号 _start 的绝对地址值(c008014)。这个绝对地址是在 link 的时候确定的。