2. Caricamento di un registro dalla memoria¶
2.1. Convenzioni del documento¶
Notazione: Rt, Rn indicano i registri ARM R0-R7, tranne dove indicato. immN rappresenta un valore immediato avente una larghezza di N bit, quindi imm5 è vincolato all’intervallo 0-31. [Rn + immN] è il contenuto dell’indirizzo di memoria ottenuto sommando Rn e l’offset immN. Gli offset sono misurati in byte. Queste istruzioni influenzano i flag di condizione.
2.2. Caricamento di registri¶
ldr(Rt, [Rn, imm7])
Rt = [Rn + imm7]Carica una parola a 32 bitldrb(Rt, [Rn, imm5])
Rt = [Rn + imm5]Carica un byteldrh(Rt, [Rn, imm6])
Rt = [Rn + imm6]Carica una mezza parola a 16 bit
Quando viene caricato un byte o una mezza parola, esso viene esteso con zeri a 32 bit.
Gli offset immediati specificati sono misurati in byte. Quindi nel caso di ldr il valore a 7 bit consente di accedere a valori allineati alla parola a 32 bit con un offset massimo di 31 parole. Nel caso di ldrh il valore a 6 bit consente di accedere a valori allineati alla mezza parola a 16 bit con un offset massimo di 31 mezze parole.