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.
Non-ConfidentialPDF file icon PDF versionARM DUI0473M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.