|Non-Confidential||PDF version||ARM DUI0473M|
|Home > Writing ARM Assembly Language > Load addresses to a register using ADRL|
ADRL pseudo-instruction loads an address within a certain range, without performing a data load. The range is wider than that of the
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 r pseudo-instruction
The available range depends on the instruction set and encoding.
Any value that can be generated by two
ADD or two
SUB instructions. That is, any value that can be produced by the
addition of two values, each of which is 8 bits rotated right by any even number of
bits within a 32-bit word. The range is relative to the PC.
±1MB to a byte, halfword, or word-aligned address.
ADRL is not available.