RV Carga y almacenaje (load y store)
En RV toda la relación que hay entre el procesador y la RAM se realiza mediante estas instrucciones.
nemónico | nombre | ejemplo | explicación |
lw | cargar palabra | lw x10 , 15(x11) | carga en el registro x10 la palabra que se encuentra en la memoria con dirección (la almacenada en x11 ) más 15 bytes. |
lh | cargar media palabra | lh x10 , 15(x11) | carga en el registro x10 la media palabra que se encuentra en la memoria con dirección (la almacenada en x11 ) más 15 bytes. |
lb | cargar el byte | lb x10 , 15(x11) | carga en el registro x10 el byte que se encuentra en la memoria con dirección (la almacenada en x11 ) más 15 bytes. |
lhu | cargar media palabra sin signo | lhu x10 , 15(x11) | carga en el registro x10 la media palabra que se encuentra en la memoria y lo espande como un valor positivo con dirección (la almacenada en x11 ) más 15 bytes. |
lbu | cargar el byte sin signo | lb x10 , 15(x11) | carga en el registro x10 el byte que se encuentra en la memoria (considerandolo como positivo) con dirección (la almacenada en x11 ) más 15 bytes. |
sw | guardar palabra | sw x10 , 15(x11) | guarda el contenido del registro x10 en (la dirección que almacena el x11) más 15 bytes |
sh | guardar media palabra | sh x10 , 15(x11) | guarda el contenido de medio registro x10 en (la dirección que almacena el x11) más 15 bytes |
sb | guardar byte | sb x10 , 15(x11) | guarda el contenido del byte x10 en (la dirección que almacena el x11) más 15 bytes |
* cuando la palabra es menor que un registro entonces se almacena la parte menos significativa.
Cuando decimos que se guarda en la dirección almacenada en x11 más 15 bytes en realidad queremos decir en la dirección almacenada en x11 más (15 * 8) ya que un byte ocupa 8 bits.