Syntaxe
Paramètres
| Nom |
Description |
| D1(L1,B1) |
Ce paramètre permet d'indiquer la zone mémoire cible où les données compactées seront stockées. Il est constitué de deux éléments : D1 : C'est un registre ou une zone mémoire où le résultat sera écrit, (L1, B1) : Ces paramètres spécifient la longueur des données (avec L1 étant la longueur des données en octets ou en mots) et un registre ou pointeur d'adresse B1 qui spécifie l'adresse de la zone mémoire où les données compactées vont être entreposées. |
| D2(L2,B2) |
Ce paramètre permet d'indiquer la zone mémoire source d'où les données seront lues et compactées dans la zone cible spécifiée par D1(L1, B1). Il est constitué de : D2 : Un registre ou une zone mémoire contenant les données à compacter, (L2, B2) : Ces paramètres spécifient la longueur des données (L2) et l'adresse de la source (entreposée dans le registre ou le pointeur B2). |
Description
Cette instruction permet de copier un bloc de données de décimal dans un bloc de données compacté.
Remarques
- L'instruction PACK transforme une représentation décimale zonée en une forme compacte, appelée décimal empaqueté (packed decimal). Elle est utilisée pour optimiser
l'espace mémoire lors du traitement de données numériques. Cela permet de stocker deux chiffres par octet au lieu d'un seul.
- Le format packed decimal est très utile pour les calculs financiers en environnement mainframe. Chaque octet contient deux chiffres décimaux en BCD (Binary Coded Decimal),
sauf le dernier contenant aussi le signe. L'instruction PACK prépare donc les données pour des opérations arithmétiques.
- Les paramètres de PACK sont composés d'adresses mémoire et longueurs, ce qui permet de travailler sur des zones de taille variable. Cela donne une grande souplesse dans
la gestion des chaînes numériques. Il faut toutefois veiller à ce que les longueurs soient compatibles entre source et destination.
- D1(L1,B1) représente la zone de destination dans laquelle les données compactées seront placées. Cette zone doit être suffisamment grande pour contenir tous les chiffres
convertis. Un espace insuffisant entraînerait un résultat incorrect ou tronqué.
- D2(L2,B2) désigne la zone source, où les chiffres sont initialement stockés en format zoné. C'est généralement une représentation où chaque chiffre occupe un octet
complet. L'instruction PACK ignore les caractères non numériques dans cette zone.
- Le dernier demi-octet de la zone compactée contient le signe (positif ou négatif). Il est copié depuis la source s'il est présent ou défini automatiquement.
C'est un détail crucial pour les traitements arithmétiques ultérieurs.
- Cette instruction est souvent utilisée en préparation à l'utilisation de l'instruction CVB ou AP. Elle fait partie d'un ensemble d'instructions pour la conversion et
l'arithmétique décimale. Elle simplifie les manipulations de valeurs alphanumériques représentant des nombres.
- PACK est une instruction non destructive pour la source : elle ne modifie pas D2(L2,B2). Cela permet de l'utiliser plusieurs fois sur la même donnée d'origine avec
différents formats de destination. Elle favorise ainsi la réutilisabilité et la modularité du code.
Dernière mise à jour : Mardi, le 22 août 2017