STP指令
STP <Wt1>, <Wt2>, [<Xn|SP>], #<imm>
Store Pair of Registers calculates an address from a base register value and an immediate offset, and stores two 32-bit words or two 64-bit doublewords to the calculated address, from two registers.
将<Wt1>, <Wt2>寄存器中的值保存到内存[<Xn|SP>+#imm]中
LDP指令
LDP <Xt1>, <Xt2>, [<Xn|SP>], #<imm>
Load Pair of Registers calculates an address from a base register value and an immediate offset, loads two 32-bit words or two 64-bit doublewords from memory, and writes them to two registers
将内存[<Xn|SP>+#imm]、[<Xn|SP>+#imm+8]中的值保存到 <Xt1>, <Xt2>两个寄存器中
ADR指令
ADR <Xd>, <label>
Compute address of label at a PC-relative offset.
Form PC-relative address:adds an immediate value to the PC value to form a PC-relative address, and writes the
result to the destination register.
PC指针加上一个立即数得到一个PC相对地址,将这个地址写道目的寄存器
The ADR instruction adds a signed, 21-bit immediate to the value of the program counter that fetched this instruction,
and then writes the result to a general-purpose register. This permits the calculation of any byte address within
±1MB of the current PC.
ADRP指令
ADRP <Xd>, <label>
Compute address of 4KB page at a PC-relative offset
Form PC-relative address to 4KB page:adds an immediate value that is shifted left by 12 bits, to the PC value to form a PC-relative address, with the bottom 12 bits masked out, and writes the result to the destination register.
得到4KB页对齐的PC相对地址:将一个立即数左移12位,加上PC值(低12位清零),形成一个PC的相对地址,其低12位为0(4K页对齐),将结果写入目的寄存器。
The ADRP instruction shifts a signed, 21-bit immediate left by 12 bits, adds it to the value of the program counter with
the bottom 12 bits cleared to zero, and then writes the result to a general-purpose register. This permits the
calculation of the address at a 4KB aligned memory region. In conjunction with an ADD (immediate) instruction, or
a load/store instruction with a 12-bit immediate offset, this allows for the calculation of, or access to, any address
within ±4GB of the current PC.