| Assembleur 370 |
MP |
| Multipy Packed |
Syntaxe
Paramètres
| Nom |
Description |
| D1(L1,B1) |
Ce paramètre permet d'indiquer l'adresse effective de l'opérande destination (et aussi multiplicande). D1 : déplacement, L1 : longueur (en octets) de l'opérande packed, B1 : registre de base pour le calcul de l'adresse. L'opérande à cette adresse est multiplié et ensuite remplacé par le résultat. |
| D2(L2,B2) |
Ce paramètre permet d'indiquer l'adresse effective de l'opérande source (multiplicateur). D2 : déplacement, L2 : longueur (en octets) de l'opérande packed, B2 : registre de base. L'opérande est utilisé pour la multiplication, mais pas modifié. |
Description
Cette instruction permet d'effectuer la multiplication de deux opérandes et de mettre le résultat dans la première opérande.
Remarques
- L'instruction MP réalise une multiplication entre deux valeurs au format packed decimal. Ce format est couramment utilisé pour les calculs décimaux précis, notamment
en finance ou gestion. Le résultat est replacé dans la première opérande (destination).
- Les deux opérandes sont spécifiés avec leur longueur en octets, ce qui permet de manipuler des nombres de taille variable. Cela donne une grande souplesse dans le
traitement de valeurs numériques décimales. Il faut cependant s'assurer que la destination est assez grande pour contenir le résultat.
- L'adresse effective des opérandes est calculée via les expressions D1(L1,B1) et D2(L2,B2). Cela permet de localiser précisément les données en mémoire à l'aide d'un
déplacement et d'un registre de base. Cette méthode est typique du modèle d'adressage de l'architecture 370.
- Le second opérande (source) est utilisé mais non modifié, ce qui permet de le réutiliser dans d'autres calculs. En revanche, la première opérande est écrasée par le
résultat, ce qui impose de sauvegarder sa valeur initiale si nécessaire. La distinction entre opérande actif et passif est donc essentielle.
- Le format packed utilise un octet pour deux chiffres décimaux, plus un demi-octet pour le signe. Cela optimise la mémoire tout en conservant une représentation précise
des nombres décimaux. MP est donc adaptée aux environnements sensibles à la précision comme les applications comptables.
- Le résultat d'une multiplication MP peut être plus grand que les deux opérandes d'origine. Il est crucial de prévoir une longueur suffisante pour le champ de
destination (L1). Sinon, une erreur de dépassement peut survenir et altérer le résultat.
- La précision décimale est conservée, ce qui distingue MP des instructions binaires comme M ou MH. Elle est donc à privilégier pour les applications ne tolérant pas
d'arrondis binaires. Cela renforce sa pertinence dans le traitement de montants monétaires.
- L'instruction MP ne met pas directement à jour les codes condition (CC), ce qui limite son usage dans des branches conditionnelles. Des instructions supplémentaires
peuvent être nécessaires pour tester le résultat après coup. Cela montre que MP est plus orientée calcul que logique de contrôle.
Dernière mise à jour : Mardi, le 22 août 2017