2. Cargar registro desde memoria¶
2.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 + immN] es el contenido de la dirección de memoria obtenida al sumar Rn y el desplazamiento immN. Los desplazamientos se miden en bytes. Estas instrucciones afectan a las banderas de condición.
2.2. Carga de registro¶
ldr(Rt, [Rn, imm7])
Rt = [Rn + imm7]Carga una palabra de 32 bitsldrb(Rt, [Rn, imm5])
Rt = [Rn + imm5]Carga un byteldrh(Rt, [Rn, imm6])
Rt = [Rn + imm6]Carga una media palabra de 16 bits
Cuando se carga un byte o una media palabra, se extiende con ceros a 32 bits.
Los desplazamientos inmediatos especificados se miden en bytes. Por lo tanto, en el caso de ldr, 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 ldrh, 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.