2.5.2. Loading with MOV32
In ARMv6T2, both ARM and Thumb‑2 instruction sets include:
a MOV instruction that can load any value in the range 0x00000000 to 0x0000FFFF into a register
a MOVT instruction that can load any value in the range 0x0000 to 0xFFFF into the most significant half of a register, without altering the contents of the least significant half.
You can use these two instructions to construct any 32‑bit constant in a register. Alternatively, you can use the MOV32 pseudo‑instruction. The assembler generates the MOV, MOVT instruction pair for you. See MOV32 pseudo‑instruction for a description of the syntax of the MOV32 pseudo‑instruction.