| Assembleur 370 |
CLC |
| Compare Logical Characters |
Syntaxe
Paramètres
| Nom |
Description |
| D1(B1) |
Ce paramètre permet d'indiquer l'adresse de départ du premier opérande (en mémoire). |
| D2(B2) |
Ce paramètre permet d'indiquer l'adresse de départ du deuxième opérande (en mémoire). |
| L |
Ce paramètre permet d'indiquer la longueur (en octets) des données à comparer - de 1 à 256. |
Description
Cette instruction permet d'effectuer la comparaison logique de deux chaînes de caractères.
Remarques
- L'instruction CLC compare deux chaînes de caractères octet par octet en mémoire, sans tenir compte de leur valeur numérique ou de leur signe. Elle est donc parfaitement
adaptée à la comparaison logique de chaînes alphanumériques. C'est une opération très courante dans les programmes de traitement de texte ou de saisie.
- Les deux opérandes doivent être en mémoire et la comparaison porte sur un nombre d'octets précisé par le paramètre L. Cela permet de comparer des segments de
longueur variable jusqu'à 256 octets. Cette flexibilité rend CLC très utile pour des contrôles conditionnels ou des tris.
- L'instruction ne modifie aucun des opérandes : elle est totalement non destructive. Seul le code condition est mis à jour pour indiquer si les chaînes sont égales, ou
si l'une est supérieure à l'autre. Cela permet de l'utiliser en toute sécurité dans des structures de boucle ou de test.
- CLC est souvent utilisée pour comparer des zones de texte ou des champs de fichiers. Elle est très fréquente dans les traitements de données structurées (exemple :
comparaisons de clefs, codes, noms). Son comportement est cohérent quel que soit le codage (EBCDIC, ASCII,...).
- Le paramètre L est essentiel : il détermine le nombre exact d'octets à comparer. Une erreur sur cette valeur peut conduire à des comparaisons incomplètes ou à des
dépassements mémoire. Il est donc impératif de bien dimensionner cette longueur.
- CLC met à jour le condition code selon trois cas : les chaînes sont égales, la première est inférieure, ou elle est supérieure. Cela permet ensuite d'utiliser des
instructions de branchement conditionnel (BC, BNE,...). C'est une base pour le contrôle de flux dans les traitements de chaînes.
- Grâce au système d'adressage D(B), les zones mémoire à comparer peuvent être dynamiques et indexées. On peut ainsi facilement intégrer CLC dans des boucles de
traitement de tableaux ou de structures. Cela permet d'automatiser les comparaisons en séquence.
- L'instruction CLC est souvent associée à MVC (Move Character), avec laquelle elle partage la même syntaxe d'adressage. Après une comparaison réussie ou échouée,
une action conditionnelle de copie ou de traitement peut être enclenchée. CLC joue donc un rôle central dans les structures de décision des programmes assembleur.
Dernière mise à jour : Mardi, le 22 août 2017