| |||
| Home > Writing ARM Assembly Language > Loading addresses into registers | |||
It is often necessary to load an address into a register. You might have to load the address of a variable, a string constant, or the start location of a jump table.
Addresses are normally expressed as offsets from the current PC or other register.
This section describes the following methods for loading an address into a register:
load the register directly, see Direct loading with ADR and ADRL
load the address from a literal pool, see Loading addresses with LDR Rd, =label.
You can also load an address into a register using the MOV32 pseudo-instruction,
see MOV32 pseudo‑instruction.