ARM Instruction Reference

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.

4-8

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

ARM DUI 0068B

Page 118
Image 118
ARM VERSION 1.2 manual Zero offset, Pre-indexed offset, Program-relative, Post-indexed offset