| Assembleur 370 |
CL |
| Compare Logical |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre contenant l'adresse du 1er opérande (en mémoire). |
| D2(X2,B2) |
Ce paramètre permet d'indiquer une adresse effective du deuxième opérande (en mémoire aussi). |
Description
Cette instruction permet d'effectuer la comparaison logique d'une chaîne de données et d'un registre.
Remarques
- L'instruction CL effectue une comparaison octet par octet entre deux zones mémoire, sans tenir compte du signe des données. Elle repose sur une logique binaire pure,
ce qui la rend adaptée aux comparaisons de chaînes de caractères ou de données brutes. C'est une alternative à la comparaison arithmétique.
- Les deux opérandes sont situés en mémoire, ce qui distingue CL des instructions de comparaison utilisant directement les registres. Le registre R1 contient l'adresse
du premier opérande, pas sa valeur. Cette nuance est importante pour éviter une mauvaise interprétation des paramètres.
- L'instruction est utile pour comparer des chaînes ou des zones de données, souvent dans des traitements de texte ou des validations. Elle permet de vérifier rapidement
si deux segments mémoire sont identiques sur un nombre d'octets. CL est donc courante dans les boucles de recherche ou de tri.
- CL met à jour le code condition (condition code) du processeur selon le résultat de la comparaison. Les instructions de branchement peuvent alors agir en fonction de
l'égalité ou de la différence détectée. Cela rend CL très efficace dans les contrôles conditionnels.
- CL est une instruction non destructive : elle ne modifie ni les registres ni la mémoire comparée. Elle est donc sécurisée pour une utilisation dans des routines
sensibles ou répétitives. Elle est idéale pour les tests sans effets secondaires.
- Le mécanisme d'adressage D2(X2,B2) du second opérande permet une grande flexibilité pour pointer dynamiquement dans des structures mémoire. On peut ainsi comparer
des blocs successifs ou indexés dans des tableaux. C'est utile dans les algorithmes de traitement de chaînes.
- Comme il s'agit d'une comparaison logique, CL ne fait aucune distinction entre nombres positifs et négatifs. Les données sont vues comme valeurs brutes, ce qui
convient bien aux chaînes codées en EBCDIC ou en ASCII. Cela évite les erreurs de traitement dues au bit de signe.
- CL est souvent utilisée en conjonction avec d'autres instructions de traitement de chaînes comme MVC (Move Character). Elle permet
de décider si une opération de copie ou de transformation est nécessaire. Son usage est fondamental dans les programmes de gestion de fichiers ou de saisies.
Dernière mise à jour : Mardi, le 22 août 2017