Syntaxe
Paramètres
| Nom |
Description |
| D1(L1,B1) |
Ce paramètre permet d'indiquer l'adresse du multiplicande, un nombre empaqueté en format décimal. Ce nombre sera multiplié par un autre nombre binaire. D1 : déplacement qui spécifie l'offset pour accéder au nombre empaqueté, L1 : longueur (en octets) de la valeur à multiplier, B1 : registre de base contenant l'adresse du multiplicande. Exemple : L'adresse D1(L1,B1) pourrait pointer vers un nombre en format décimal empaqueté comme 12 34 5C. |
| D2(B2) |
Ce paramètre permet d'indiquer l'adresse du multiplicateur ou additionneur. Ce paramètre représente un nombre binaire signé qui servira à multiplier l'opérande empaqueté, ou ajouter au résultat de la multiplication. B2 : registre de base contenant l'adresse de l'opérande binaire. Exemple : D2(B2) peut pointer vers une valeur binaire comme 5. |
Description
Cette instruction permet d'intégrer une chaîne de données à une autre chaîne de données.
Remarques
- L'instruction ED ne réalise ni multiplication ni addition : la description fournie est erronée. Elle sert à formater une chaîne de caractères numériques à
l'aide d'un masque d'édition. Le but est d'afficher ou de structurer des données numériques pour une sortie lisible.
- Le premier opérande D1(L1,B1) contient le masque de formatage (mask), souvent composé de zéros, points, virgules,... Ce masque détermine comment les chiffres du
second opérande doivent être intégrés. C'est l'emplacement du résultat final de l'édition.
- Le second opérande D2(B2) contient les données numériques à éditer, généralement en format packed decimal. Ce contenu est injecté dans le masque du premier opérande,
à partir de la droite. Les chiffres sont associés un à un aux emplacements définis par le masque.
- Les caractères spéciaux du masque, comme zéro de substitution (X'20'), signe, virgule, ou point, permettent une mise en forme avancée. Par exemple, on peut produire
un affichage du type "+00123.45". Cela rend l'instruction utile pour les sorties imprimées ou les fichiers lisibles. La longueur de la zone de destination (D1) doit être
suffisante pour contenir l'ensemble du résultat édité. Une zone trop courte entraîne une interruption programme (abend). Il est donc crucial de dimensionner correctement
la mémoire pour éviter les erreurs.
- ED met à jour les drapeaux conditionnels en fonction du résultat de l'édition (zéro, négatif,...). Cela permet d'enchaîner des instructions conditionnelles selon
le formatage obtenu. Elle peut servir de base à des tests logiques post-traitement.
- Pour effectuer une conversion numérique-vers-affichage, ED est souvent combinée avec CVD (Convert to Decimal). CVD transforme un entier binaire en format packed,
puis ED applique un masque. Cette séquence est fréquente dans les programmes d'affichage de rapports.
- L'instruction ED est puissante mais complexe, car elle repose sur un bon design du masque d'édition. Une simple erreur dans les caractères du masque peut produire
des résultats incohérents. Il est donc important de bien tester chaque format d'affichage prévu.
Dernière mise à jour : Mardi, le 22 août 2017