|Non-Confidential||PDF version||ARM DUI0473M|
|Home > Writing ARM Assembly Language > Instruction and directive relocations|
The assembler can embed relocation directives in object files to indicate labels with addresses that are unknown at assembly time. The assembler can relocate several types of instruction.
A relocation is a directive embedded in the object file that enables source code to refer to a label whose target address is unknown or cannot be calculated at assembly time. The assembler emits a relocation in the object file, and the linker resolves this to the address where the target is placed.
The assembler relocates the data directives
DCDU if their syntax contains an external
symbol, that is a symbol declared using
This causes the bottom 8, 16, or 32 bits of the address to be used
REQUIRE directive emits a relocation
to signal to the linker that the target label must be present if
the current section is present.
The assembler is permitted to emit a relocation for these instructions:
The assembler emits a relocation for these instructions if the label used meets any of the following requirements, as appropriate for the instruction type:
BX instructions, the
assembler emits a relocation also if:
RELOCdirective to control the relocation at a finer level, but this requires knowledge of the ABI.
IMPORT sym ; sym is an external symbol DCW sym ; Because DCW only outputs 16 bits, only the lower ; 16 bits of the address of sym are inserted at ; link-time.