J'apprends comment faire MIPS et je suis confus sur la multiplication. Disons que je convertis le code C suivant en MIPS.Multiplier une valeur de registre par une constante dans MIPS?
c = b + a*3
avec a, b, c stockées dans les registres $ s1, s2 $, $ s3 respectivement. Comment suis-je supposé écrire un * 3 dans MIPS? Y at-il une instruction de type addi pour la multiplication ou est-ce que je stocke 3 dans un registre temporaire et utilise l'opérateur mult comme ceci?
addi $t0, $zero, 3
mult $s1,$t0
Si oui, comment puis-je obtenir la valeur finale ou le produit de cette opération pour compléter mon code C?
Le produit 64 bits se trouve dans les registres 'lo' et' hi'. Utilisez les instructions 'mflo' et' mfhi' pour obtenir leurs valeurs (ou simplement 'mflo' si vous êtes seulement intéressé par les 32 bits les moins significatifs). Consultez une référence de jeu d'instructions MIPS pour plus d'informations sur ces instructions. – Michael