Multiplicar um valor de registo por uma constante em MIPS?
Estou a aprender a fazer MIPS e estou confuso com a multiplicação. Digamos que estava a converter o seguinte código C em MIPS.
c = b + a*3
com a,b,c armazenados nos registos $s1,$s2,$s3 respectivamente. Como é que vou escrever a * 3 em MIPS? Existe uma instrução de tipo adicional para multiplicação ou eu guardo 3 em um registro temporário e uso o operador de mult como este?
addi $t0, $zero, 3
mult $s1,$t0
Em caso afirmativo, como posso obter o valor final ou o produto desta operação para completar o meu código C?
2
1 answers
O conjunto de instruções MIPS não fornece uma instrução mult com valor imediato. Portanto, você teria que armazenar o valor em um registro temporário e, em seguida, usar instruções de mult. O resultado da instrução de mult seria armazenado em registros lo e hi dando o menor 32-bit do resultado e superior 32-bit do resultado, respectivamente.
2
Author: Rahul Behl, 2017-05-29 06:32:06