0%

存储和加载指令

存储和加载指令

ldr 指令寻址之1: 地址偏移模式 (unsigned offset)

1
LDR Xd, [Xn, $offset]

首先在 Xn 寄存器的内容上加上一个 offset 偏移量后作为内存地址,加载此地址的内容到 Xd 寄存器。

ldr 指令寻址之2: 变基模式

  • 前变基模式(pre-index 模式): 先更新偏移地址然后再访问内存。
  • 后变基模式(post-index 模式):先访问内存地址然后再更新偏移地址。
1
2
3
LDR X0, [X1, #8]! // 前变基模式。先更新X1 的值为 X1+8,然后义新的X1值为地址,加载内存的值到X0

LDR X0, [X1], #8 // 后变基模式。以x1的值为地址,加载该内存地址的值到X0,然后在更新X1寄存器为X1+8

ldr 指令寻址之3: 标签(literal

PC + label offset

ldr 伪指令

1
LDR x7, =MY_LABEL

move 指令

  • 16位立即数
  • 16立即数左移16,32,48位

多字节加载和存储指令 ldp 和stp