| Assembleur 370 |
SRP |
| Shift and Round Decimal |
Syntaxe
Paramètres
| Nom |
Description |
| D1(L1,B1) |
Ce paramètre permet d'indiquer l'adresse de la donnée décimale packed à décaler et arrondir. D1 est l'adresse de la valeur à décaler et arrondir. L1 est la longueur de la donnée à partir de l'adresse D1. B1 est un registre qui contient un offset utilisé pour calculer l'adresse effective où se trouve la valeur. Cette valeur peut être un nombre décimal packed (comprimé), et elle sera à la fois décalée et arrondie. |
| D2(B2) |
Ce paramètre permet d'indiquer une adresse contenant la valeur du nombre de décimales à décaler. D2 est l'adresse contenant le nombre de décalages à effectuer (en termes de chiffres décimaux). B2 est un registre qui contient un offset pour l'adresse où se trouve cette valeur. |
| I3 |
Ce paramètre permet d'indiquer un mode d'arrondi (code d'opération d'arrondi). I3 est un entier immédiat qui contient la valeur du mode d'arrondi. Ce mode peut être spécifique (par exemple, arrondi vers zéro, arrondi vers l'infini, etc.) en fonction des besoins de l'opération. |
Description
Cette instruction permet d'effectuer un décalage et d'arrondir un bloc de données.
Remarques
- L'instruction SRP travaille sur des valeurs décimales au format packed, codées sur plusieurs octets. Elle permet d'effectuer simultanément un décalage décimal (décimales
à gauche ou à droite) et un arrondi. Elle est particulièrement utile pour le traitement précis de données financières.
- Le premier paramètre (D1(L1,B1)) désigne la valeur packed à manipuler. Cette donnée subit à la fois le décalage décimal et l'arrondi selon les autres paramètres.
Le résultat de l'opération est écrit à la même adresse, modifiant directement la donnée.
- Le second paramètre (D2(B2)) donne l'adresse contenant le nombre de chiffres à décaler. Il s'agit d'un décalage en chiffres décimaux, et non en bits ou octets.
Cela permet un contrôle très fin du positionnement de la virgule décimale.
- Le paramètre I3 est un valeur immédiate indiquant le mode d'arrondi à appliquer. Il peut imposer des règles comme "arrondi vers zéro", "arrondi supérieur",...
Cette flexibilité est essentielle dans des calculs où l'exactitude du dernier chiffre compte.
- Le décalage peut être positif ou négatif, provoquant un décalage à gauche ou à droite. Un décalage positif augmente la valeur en déplaçant la virgule vers la droite.
Un décalage négatif réduit la valeur en la décalant vers la gauche.
- Comme l'opérande est modifié en place, il faut s'assurer que sa longueur (L1) est suffisante. Un décalage trop important pourrait entraîner une perte de précision
ou un débordement. La taille de l'opérande packed est donc un élément crucial à maîtriser.
- SRP est souvent utilisée dans des calculs comptables ou monétaires, pour garantir la cohérence des arrondis. Elle évite l'usage de routines manuelles de décalage et
de traitement conditionnel. Elle améliore ainsi la lisibilité et l'efficacité du code.
- Il faut bien distinguer SRP des autres instructions de décalage binaire. Ici, l'opération se fait en décimal BCD packed, pas en binaire pur. Cela rend cette instruction
unique dans son genre, et adaptée aux applications métiers.
Dernière mise à jour : Mardi, le 22 août 2017