6 loading constants into registers, Loading constants into registers -25 – ARM VERSION 1.2 User Manual

Page 37

Advertising
background image

Writing ARM and Thumb Assembly Language

ARM DUI 0068B

Copyright © 2000, 2001 ARM Limited. All rights reserved.

2-25

2.6

Loading constants into registers

You cannot load an arbitrary 32-bit immediate constant into a register in a single
instruction without performing a data load from memory. This is because ARM
instructions are only 32 bits long.

Thumb instructions have a similar limitation.

You can load any 32-bit value into a register with a data load, but there are more direct
and efficient ways to load many commonly-used constants. You can also include many
commonly-used constants directly as operands within data-processing instructions,
without a separate load operation at all.

The following sections describe:

how to use the

MOV

and

MVN

instructions to load a range of immediate values, see

Direct loading with MOV and MVN on page 2-26

how to use the

LDR

pseudo-instruction to load any 32-bit constant, see Loading

with LDR Rd, =const on page 2-27

how to load floating-point constants, see Loading floating-point constants on
page 2-29.

Advertising