ARM VERSION 1.2 Computer Hardware User Manual


 
ARM Instruction Reference
4-8 Copyright © 2000, 2001 ARM Limited. All rights reserved. ARM DUI 0068B
FlexOffset
is a flexible offset applied to the value in
Rn
(see Flexible offset syntax on
page 4-9).
label
is a program-relative expression. See Register-relative and
program-relative expressions on page 3-23 for more information.
label
must be within ±4KB of the current instruction.
!
is an optional suffix. If
!
is present, the address including the offset is
written back into
Rn
. You cannot use the
!
suffix if
Rn
is r15.
Zero offset
The value in
Rn
is used as the address for the transfer.
Pre-indexed offset
The offset is applied to the value in
Rn
before the data transfer takes place. The result is
used as the memory address for the transfer. If the
!
suffix is used, the result is written
back into
Rn
.
Rn
must not be r15 if the
!
suffix is used.
Program-relative
This is an alternative version of the pre-indexed form. The assembler calculates the
offset from the PC for you, and generates a pre-indexed instruction with the PC as
Rn
.
You cannot use the
!
suffix.
Post-indexed offset
The value in
Rn
is used as the memory address for the transfer. The offset is applied to
the value in
Rn
after the data transfer takes place. The result is written back into
Rn
.
Rn
must not be r15.