ARM易混淆指令

1 ldr

    ldrARM指令,同时又可以作为伪指令[2]。

1.1 ARM指令

ldr r1, [r0]    /* 以r0的内容为地址,并且将该地址处的内容加载到r1 */
ldr r1, label   /* 将标号label处的内容加载到r1 */

1.2 伪指令

ldr r1, =label   /* 伪指令明显的标志是有等号 */

    该伪指令可以用于实现Flash到RAM的程序跳转[1]。

1.3 实例
label: .word 0x32
ldr r0, label      /* 加载label地址处的内容到r0 */
ldr r1, =label     /* 加载label的链接地址(运行时地址)到r1 */

参考资料

[1]连接脚本分析 (.lds)

[2]ARM中LDR伪指令与LDR加载指令


你可能感兴趣的:(ARM易混淆指令)