Reemplazo de los cambios lógicos de la izquierda con otras instrucciones en MIPS

0

Así que digamos que tenemos dos registros $ s0 y $ s1. El registro $ s0 puede tomar valores de 0 a 31 y se usa para mostrar cuántos bits de registro $ s1 se desplazarán hacia la izquierda. ¿Cómo puedo hacer esto sin usar sll o srl. Sé que el desplazamiento lógico de la izquierda por n bits es lo mismo que multiplicar con 2 ^ n. Este ejercicio da una pista de que esto se puede hacer solo con 4 instrucciones. Ambos registros son de 32 bits.

    
pregunta CharisAlex

1 respuesta

1

La sugerencia es correcta, puedes hacerlo todo multiplicando. El truco es darse cuenta de que usa el valor en $ S0 como contador. No requiere manipulación de bits. Le daré algo de código en C y le permitiré traducirlo al ensamblaje de MIPS:

for (; $s0 > 0; $s0--)
{
    $s1 = $s1 + $s1;   // or $s1 = 2 * $s1
}
    
respondido por el tcrosley

Lea otras preguntas en las etiquetas