Maria,
A la instrucción CARGARI efectivamente le falta el parámetro INM que cargue los X bits menos significativos del registro con el inmediato y por ejemplo deje los 32-X bits más significativos en 0. "X" a determinar por el estudiante.
Para hacer R2=mem[R1] deberías:
- cargar en R1 la dirección que quieras leer.
Suponiendo que sea una dirección constante:
Si es una dirección de X bits (o menor) entonces basta con usar
CARGARI R1, direccion
Si es una dirección de más de X bits vas a tener que armar la dirección de a partes, por ejemplo supongamos que queres cargar la dirección 0x12345678 harías
CARGARI R1, 0x1234
CARGARI R2, 16
SHIFTL R1, R2
CARGARI R2, 0x5678
OR R1, R2
Una vez que tenes cargada la dirección en R1 haces
CARGARM R2, R1
Para copiar el contenido de un registro a otro (ej R2=R1) tenes varias opciones, por ejemplo:
CARGARI R2,0
OR R2, R1
Saludos,
Gustavo