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, armasm generates the appropriate instruction.

  • If the immediate value cannot be constructed with a single MOV or MVN instruction, armasm:

    • 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 armasm.

See also


armasm Reference Guide: