You copied the Doc URL to your clipboard.

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.