2. Register aus dem Speicher laden

2.1. Dokumentkonventionen

Notation: Rt, Rn bezeichnen die ARM-Register R0-R7, sofern nicht anders angegeben. immN steht für einen unmittelbaren Wert mit einer Breite von N Bits, daher ist imm5 auf den Bereich 0-31 beschränkt. [Rn + immN] ist der Inhalt der Speicheradresse, die durch Addition von Rn und dem Offset immN ermittelt wird. Offsets werden in Bytes gemessen. Diese Anweisungen beeinflussen die Bedingungs-Flags.

2.2. Register-Laden

  • ldr(Rt, [Rn, imm7]) Rt = [Rn + imm7] Lädt ein 32-Bit-Wort

  • ldrb(Rt, [Rn, imm5]) Rt = [Rn + imm5] Lädt ein Byte

  • ldrh(Rt, [Rn, imm6]) Rt = [Rn + imm6] Lädt ein 16-Bit-Halbwort

Wenn ein Byte oder Halbwort geladen wird, wird es auf 32 Bit mit Nullen erweitert.

Die angegebenen unmittelbaren Offsets werden in Bytes gemessen. Daher ermöglicht im Fall von ldr der 7-Bit-Wert den Zugriff auf 32-Bit-wortausgerichtete Werte mit einem maximalen Offset von 31 Wörtern. Im Fall von ldrh ermöglicht der 6-Bit-Wert den Zugriff auf 16-Bit-halbwortausgerichtete Werte mit einem maximalen Offset von 31 Halbwörtern.