2. Încărcare registru din memorie

2.1. Convenții ale documentului

Notație: Rt, Rn denotă registrele ARM R0-R7, cu excepția cazurilor menționate. immN reprezintă o valoare imediată având o lățime de N biți, deci imm5 este limitat la intervalul 0-31. [Rn + immN] este conținutul adresei de memorie obținute prin adunarea lui Rn cu decalajul immN. Decalajele sunt măsurate în octeți. Aceste instrucțiuni afectează indicatorii de condiție.

2.2. Încărcare registru

  • ldr(Rt, [Rn, imm7]) Rt = [Rn + imm7] Încarcă un cuvânt pe 32 de biți

  • ldrb(Rt, [Rn, imm5]) Rt = [Rn + imm5] Încarcă un octet

  • ldrh(Rt, [Rn, imm6]) Rt = [Rn + imm6] Încarcă o jumătate de cuvânt pe 16 biți

Când se încarcă un octet sau o jumătate de cuvânt, acesta este extins cu zerouri până la 32 de biți.

Decalajele imediate specificate sunt măsurate în octeți. Astfel, în cazul lui ldr, valoarea pe 7 biți permite accesarea valorilor aliniate la cuvinte pe 32 de biți cu un decalaj maxim de 31 de cuvinte. În cazul lui ldrh, valoarea pe 6 biți permite accesarea valorilor aliniate la jumătăți de cuvânt pe 16 biți cu un decalaj maxim de 31 de jumătăți de cuvânt.