3. Memorizzazione di un registro in memoria

3.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 + imm5] è il contenuto dell’indirizzo di memoria ottenuto sommando Rn e l’offset imm5. Gli offset sono misurati in byte. Queste istruzioni non influenzano i flag di condizione.

3.2. Memorizzazione di registri

  • str(Rt, [Rn, imm7]) [Rn + imm7] = Rt Memorizza una parola a 32 bit

  • strb(Rt, [Rn, imm5]) [Rn + imm5] = Rt Memorizza un byte (b0-b7)

  • strh(Rt, [Rn, imm6]) [Rn + imm6] = Rt Memorizza una mezza parola a 16 bit (b0-b15)

Gli offset immediati specificati sono misurati in byte. Quindi nel caso di str 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 strh 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.