Continúo mi práctica con el ensamblaje de MIPS y el código de máquina. Estoy haciendo un problema que asume lo siguiente:
• variables a-j are assigned temporary registers $0-$8.
• the base address of arrays A and D are in $9 and $10.
• if need register to store an intermediate result, use remaining temporary or saved registers or register $at.
$0 - a $1 - b
$2 - c $3 - d
$4 - e $5 - f
$6 - g
Estos son los problemas:
a) f = a - 20 + b + c - d;
b) D[i] = A[j] << 6;
c) f = g - A[D[5]]
Este es mi intento:
a) addi $0, $0, 101100
add $5, $1, $2
add $5, $5, $0
sub $5, $5, $3
En cuanto a b) yc), no estoy muy seguro de cómo hacerlo. He intentado encontrar ejemplos en línea, pero no he podido, y los ejemplos de los que estoy hablando no son tan buenos.
Si alguien puede verificar y ver si hay algún problema o si tiene algún consejo o ayuda, lo agradecería.