You copied the Doc URL to your clipboard.
Load immediate values using MOV32
To load any 32-bit immediate value, a pair of MOV
and MOVT
instructions is equivalent to a MOV32
pseudo-instruction.
In ARMv6T2 and later, both ARM and Thumb instruction sets include:
- A
MOV
instruction that can load any value in the range0x00000000
to0x0000FFFF
into a register. - A
MOVT
instruction that can load any value in the range0x0000
to0xFFFF
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
immediate value in a register. Alternatively, you can use the MOV32
pseudo-instruction.
The assembler generates the MOV
, MOVT
instruction
pair for you.
You can also use the MOV32
instruction
to load addresses into registers by using a label or any PC-relative
expression in place of an immediate value. The assembler puts a
relocation directive into the object file for the linker to resolve
the address at link-time.