2. Załaduj rejestr z pamięci

2.1. Konwencje dokumentu

Notacja: Rt, Rn oznaczają rejestry ARM R0-R7 z wyjątkiem przypadków, gdy stwierdzono inaczej. immN reprezentuje wartość natychmiastową o szerokości N bitów, stąd imm5 jest ograniczone do zakresu 0-31. [Rn + immN] to zawartość adresu pamięci uzyskanego przez dodanie Rn i przesunięcia immN. Przesunięcia mierzone są w bajtach. Te instrukcje wpływają na flagi warunku.

2.2. Załadowanie rejestru

  • ldr(Rt, [Rn, imm7]) Rt = [Rn + imm7] Załaduj 32-bitowe słowo

  • ldrb(Rt, [Rn, imm5]) Rt = [Rn + imm5] Załaduj bajt

  • ldrh(Rt, [Rn, imm6]) Rt = [Rn + imm6] Załaduj 16-bitowe półsłowo

Gdy ładowany jest bajt lub półsłowo, jest rozszerzane zerami do 32 bitów.

Określone przesunięcia natychmiastowe mierzone są w bajtach. Stąd w przypadku ldr 7-bitowa wartość umożliwia dostęp do wartości wyrównanych do 32-bitowego słowa z maksymalnym przesunięciem 31 słów. W przypadku ldrh 6-bitowa wartość umożliwia dostęp do wartości wyrównanych do 16-bitowego półsłowa z maksymalnym przesunięciem 31 półsłów.