| Assembleur 370 |
CP |
| Compare Packed |
Syntaxe
Paramètres
| Nom |
Description |
| D1(L1,B1) |
Ce paramètre permet d'indiquer l'adresse du premier opérande paqueté. D1 = déplacement, L1 = longueur (en octets), B1 = registre de base. L'adresse effective : B1 + D1, on lit L1 octets. |
| D2(L2,B2) |
Ce paramètre permet d'indiquer l'adresse du second opérande paqueté. Idem que ci-dessus, avec D2, L2, B2. |
Description
Cette instruction permet d'effectuer la comparaison de deux chaînes de données.
Remarques
- L'instruction CP compare deux opérandes au format packed decimal, codés en BCD (Binary Coded Decimal). Chaque octet contient deux chiffres décimaux, sauf le dernier
portant aussi le signe. Elle est utilisée pour des comparaisons numériques précises en environnement comptable ou financier.
- Les deux opérandes sont situés en mémoire, et leur adresse effective est calculée à partir d'un registre de base et d'un déplacement. La longueur en octets est précisée
séparément pour chaque opérande. Cela permet de comparer des entiers de longueurs différentes, bien que l'instruction fasse une extension implicite si nécessaire.
- Le format packed permet de représenter jusqu'à 31 chiffres dans 16 octets, ce qui optimise la mémoire. L'instruction CP tire parti de ce codage pour des comparaisons
compactes et rapides. Elle est donc couramment utilisée dans les traitements de comptes, montants et soldes.
- CP ne modifie aucun des opérandes, elle se contente de mettre à jour le code condition. Le programme peut ensuite utiliser une instruction de branchement conditionnel
selon le résultat de la comparaison. Elle est donc non destructive.
- Si les opérandes sont de longueurs différentes, la comparaison est faite comme s'ils étaient préalablement alignés à gauche et complétés par des zéros à droite. Cette
caractéristique évite d'avoir à normaliser manuellement les données. Elle facilite le traitement d'entrées de formats variés.
- CP permet de comparer des nombres signés en notation packed, ce qui est une exigence dans la gestion comptable. Elle prend bien en compte le signe final des opérandes
(C, D, F). Une comparaison de 123D à 123C donne un résultat inégal.
- Cette instruction est souvent couplée à BNE, BE, BL, BH pour diriger le flux selon la comparaison. Elle est donc fondamentale dans les tests de seuils, bornes et
validations numériques. Sa précision la rend idéale pour les applications critiques.
- CP est une alternative efficace à l'instruction CLC, mais spécifique aux données packed. Elle est donc incontournable dans les programmes
COBOL compilés, où les zones numériques sont fréquentes. Son usage est essentiel pour manipuler des données décimales internes
avec rigueur.
Dernière mise à jour : Mardi, le 22 août 2017