3. Almacenar registro en memoria

3.1. Convenciones del documento

Notación: Rt, Rn denotan los registros ARM R0-R7 excepto donde se indique. immN representa un valor inmediato con un ancho de N bits, de modo que imm5 está restringido al rango 0-31. [Rn + imm5] es el contenido de la dirección de memoria obtenida al sumar Rn y el desplazamiento imm5. Los desplazamientos se miden en bytes. Estas instrucciones no afectan a las banderas de condición.

3.2. Almacenamiento de registro

  • str(Rt, [Rn, imm7]) [Rn + imm7] = Rt Almacena una palabra de 32 bits

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

  • strh(Rt, [Rn, imm6]) [Rn + imm6] = Rt Almacena una media palabra de 16 bits (b0-b15)

Los desplazamientos inmediatos especificados se miden en bytes. Por lo tanto, en el caso de str, el valor de 7 bits permite acceder a valores alineados a palabra de 32 bits con un desplazamiento máximo de 31 palabras. En el caso de strh, el valor de 6 bits permite acceder a valores alineados a media palabra de 16 bits con un desplazamiento máximo de 31 medias palabras.