| Assembleur 370 |
MR |
| Multipy Registers |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre contenant le multiplicande (opérande à multiplier). Après l'opération, le résultat est stocké dans R1 (haut) et R1+1 (bas). Il doit être pair (R0, R2, R4, etc.) car le résultat est sur 64 bits (2 registres). |
| R2 |
Ce paramètre permet d'indiquer un registre contenant le multiplicateur (valeur par laquelle on multiplie). Cette valeur n'est pas modifiée. |
Description
Cette instruction permet d'effectuer la multiplication de deux registres et de mettre le résultat dans le première registre.
Remarques
- L'instruction MR effectue une multiplication entière signée entre deux registres généraux. Le multiplicande est dans R1, le multiplicateur dans R2, et le résultat
s'étale sur R1 et R1+1. Cela permet de gérer des résultats jusqu'à 64 bits, en préservant la précision.
- Le registre R1 doit obligatoirement être pair, car le résultat occupe une paire de registres (R1 et R1+1). Si R1 est impair, l'instruction provoquera une erreur
d'exécution. Ce comportement est typique des opérations 64 bits dans l'architecture 370.
- Le registre R2 contient la valeur utilisée comme multiplicateur, mais il n'est pas modifié par l'opération. Cela permet de réutiliser cette valeur dans d'autres
instructions sans devoir la recharger. L'instruction est donc non destructive pour l'opérande source.
- Le résultat de la multiplication est divisé entre partie haute (R1) et partie basse (R1+1). Ce format permet d'entreposer le résultat complet, même si celui-ci
dépasse 32 bits. Il faut ensuite interpréter les deux registres ensemble pour lire la valeur finale.
- Le format de l'instruction MR est compact : elle n'utilise que deux registres comme opérandes. Cela la rend rapide à exécuter et facile à coder, notamment dans les
boucles de calcul. C'est une solution efficace pour les multiplications internes à la machine.
- Comme il s'agit d'une multiplication signée, l'interprétation des bits en complément à deux est cruciale. Une erreur de signe dans l'un des registres entraînera un
résultat incorrect. Il est donc important de s'assurer que les registres contiennent bien des entiers signés valides.
- L'instruction MR ne permet pas de gérer directement les valeurs en mémoire. Elle nécessite que les deux opérandes soient déjà chargés dans les registres généraux.
Une instruction comme L devra souvent précéder MR pour préparer les données.
- L'usage de MR est courant dans des algorithmes numériques bas niveau, comme ceux de traitement matriciel. Sa capacité à fournir un produit 64 bits en fait un outil
adapté aux calculs intensifs. Elle constitue un composant essentiel dans l'arsenal des instructions arithmétiques du 370.
Dernière mise à jour : Mardi, le 22 août 2017