Datasheet

95
11011B–ATARM–21-Feb-12
SAM3N
10.12.5 LDR, PC-relative
Load register from memory.
10.12.5.1 Syntax
LDR{type}{cond} Rt, label
LDRD{cond} Rt, Rt2, label ; Load two words
where:
type is one of:
B unsigned byte, zero extend to 32 bits.
SB signed byte, sign extend to 32 bits.
H unsigned halfword, zero extend to 32 bits.
SH signed halfword, sign extend to 32 bits.
- omit, for word.
cond is an optional condition code, see “Conditional execution” on page 84.
Rt is the register to load or store.
Rt2 is the second register to load or store.
label is a PC-relative expression. See “PC-relative expressions” on page 84.
10.12.5.2 Operation
LDR loads a register with a value from a PC-relative memory address. The memory address is
specified by a label or by an offset from the PC.
The value to load or store can be a byte, halfword, or word. For load instructions, bytes and half-
words can either be signed or unsigned. See “Address alignment” on page 83.
label must be within a limited range of the current instruction. Table 10-19 shows the possible
offsets between label and the PC.
You might have to use the .W suffix to get the maximum offset range. See “Instruction width
selection” on page 86.
10.12.5.3 Restrictions
In these instructions:
Rt can be SP or PC only for word loads
Rt2 must not be SP and must not be PC
Rt must be different from Rt2.
When Rt is PC in a word load instruction:
Table 10-19. Offset ranges
Instruction type Offset range
Word, halfword, signed halfword, byte, signed
byte
4095 to 4095
Two w o r d s 1020 to 1020