5.5. Loading constants into registers

There is no single ARM instruction that can load an arbitrary 32-bit immediate constant into a register without performing a data load from memory. This is because all ARM instructions are precisely 32 bits long and do not use the instruction stream as data.

Thumb instructions have the same limitation for similar reasons.

A data load can place any 32-bit value in a register, but there are more direct and efficient ways to load many commonly-used constants.

The following sections describe:

Copyright © 1997, 1998 ARM Limited. All rights reserved.ARM DUI 0040D
Non-Confidential