You copied the Doc URL to your clipboard.

3.4.1. ADR

Generates a PC-relative address.

Syntax

ADRRd, label

where:

Rd

Is the destination register.

label

Is a PC-relative expression. See PC‑relative expressions.

Operation

ADR generates an address by adding an immediate value to the PC, and writes the result to the destination register.

ADR facilitates the generation of position-independent code, because the address is PC-relative.

If you use ADR to generate a target address for a BX or BLX instruction, you must ensure that bit[0] of the address you generate is set to 1 for correct execution.

Restrictions

In this instruction Rd must specify R0-R7. The data-value addressed must be word aligned and within 1020 bytes of the current PC.

Condition flags

This instruction does not change the flags.

Examples

    ADR    R1, TextMessage   ; Write address value of a location labelled as
                             ; TextMessage to R1
    ADR    R3, [PC,#996]     ; Set R3 to value of PC + 996.
Was this page helpful? Yes No