The STM32 Cortex-M0 instruction set
3.4.1
ADR
Load PC-relative address.
Syntax
ADR Rd, label
where:
●
'Rd' is the destination register
●
'label' is a PC-relative expression (see
Operation
ADR determines the address by adding an immediate value to the PC. It writes the result to
the destination register.
ADR produces 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 to1 for correct execution.
Restrictions
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
ADR
R3, [PC,#996]
42/91
PC-relative expressions on page
; write address value of a location labelled as
; TextMessage to R1
; Set R3 to value of PC + 996.
Doc ID 022979 Rev 1
PM0215
39)
Need help?
Do you have a question about the STM32F0 Series and is the answer not in the manual?