4.6 Load immediate values using LDR Rd, =const

The LDR Rd,=const pseudo-instruction generates the most efficient single instruction to load any 32-bit number.

You can use this pseudo-instruction to generate constants that are out of range of the MOV and MVN instructions.

The LDR pseudo-instruction generates the most efficient single instruction for the specified immediate value:

  • If the immediate value can be constructed with a single MOV or MVN instruction, the assembler generates the appropriate instruction.
  • If the immediate value cannot be constructed with a single MOV or MVN instruction, the assembler:
    • Places the value in a literal pool (a portion of memory embedded in the code to hold constant values).
    • Generates an LDR instruction with a PC-relative address that reads the constant from the literal pool.

    For example:

        LDR      rn, [pc, #offset to literal pool]
                              ; load register n with one word
                              ; from the address [pc + offset]

    You must ensure that there is a literal pool within range of the LDR instruction generated by the assembler.

Non-ConfidentialPDF file icon PDF versionARM DUI0473M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.