You copied the Doc URL to your clipboard.

Load immediate 32-bit values to a register using LDR Rd, =const

The LDR Rd,=const pseudo-instruction can construct any 32-bit numeric value in a single instruction. 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.

See also

Concepts
Reference

Assembler Reference:

Was this page helpful? Yes No