Load addresses to a register using ADRL

The ADRL pseudo-instruction enables you to generate an address, within a certain range, without performing a data load. ADRL accepts a PC-relative expression, that is, a label with an optional offset where the address of the label is relative to the current PC.


The label used with ADRL must be within the same code section. The assembler faults references to labels that are out of range in the same section.

ADRL is not available in Thumb state on processors before ARMv6T2.

The assembler converts an ADRL rn,label pseudo-instruction by generating:

The available range depends on the instruction set in use:


±64KB to a byte or halfword-aligned address.

±256KB to a word-aligned address.

32-bit Thumb

±1MB to a byte, halfword, or word-aligned address.

16-bit Thumb

ADRL is not available.

Show/hideSee also

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0473C