4.8 Load addresses into registers

It is often necessary to load an address into a register. There are several ways to do this.

For example, you might have to load the address of a variable, a string literal, or the start location of a jump table.
Addresses are normally expressed as offsets from a label, or from the current PC or other register.
You can load an address into a register either:
  • Using the instruction ADR.
  • Using the pseudo-instruction ADRL.
  • Using the pseudo-instruction MOV32.
  • From a literal pool using the pseudo-instruction LDR Rd,=Label.
Related concepts
4.9 Load addresses to a register using ADR
4.10 Load addresses to a register using ADRL
4.5 Load immediate values using MOV32
4.11 Load addresses to a register using LDR Rd, =label
Non-ConfidentialPDF file icon PDF versionARM DUI0379G
Copyright © 2007, 2008, 2011, 2012, 2014, 2015 ARM. All rights reserved.