Assembleur 370 |
CLM |
Compare Logical under Mask |
Syntaxe
Paramètres
Nom |
Description |
R1 |
Ce paramètre permet d'indiquer un registre (32 bits = 4 octets) dont le contenu sera comparé. |
M3 |
Ce paramètre permet d'indiquer un masque de 4 bits indiquant quels octets (dans R1 et en mémoire) doivent être comparés. |
D2(B2) |
Ce paramètre permet d'indiquer l'adresse effective de la zone mémoire de 4 octets à comparer. |
Description
Cette instruction permet d'effectuer la comparaison avec un masque d'une chaîne de données et d'un registre
Remarques
- L'instruction CLM permet une comparaison logique partielle sur des mots de 4 octets (32 bits). Grâce au masque M3, on peut choisir quels octets du registre et de
la mémoire doivent être effectivement comparés. Cela évite de manipuler des octets inutilement.
- Le paramètre M3 est un masque sur 4 bits, chaque bit représentant un octet du registre. Un bit à 1 active la comparaison de l'octet correspondant, un bit à 0 l'ignore.
Ce mécanisme donne une grande souplesse à la comparaison.
- L'opérande mémoire pointée par D2(B2) doit contenir 4 octets valides, même si le masque n'en utilise que certains. Une erreur peut survenir si la zone mémoire n'est pas
bien définie. Il est donc crucial de s'assurer que l'adresse cible est correctement alignée.
- CLM est souvent utilisée pour tester certains octets significatifs dans un mot de données, par exemple des champs de statut ou de commande. Cela évite l'extraction
manuelle des octets avec des décalages et des masques binaires. C'est un gain de lisibilité et d'efficacité.
- Le contenu de R1 n'est pas modifié : l'instruction se contente de mettre à jour le code condition. Celui-ci permet ensuite de faire des branchements conditionnels en
fonction du résultat de la comparaison. CLM est donc une instruction non destructive.
- Cette instruction est idéale pour des tests multicritères dans des structures compactes. Par exemple, on peut vérifier si certains champs d'un enregistrement sont à
une valeur donnée, tout en ignorant les autres. Elle permet une logique fine et sélective.
- CLM peut être utilisée dans des boucles ou routines système pour filtrer des données, sans avoir à séparer les octets. Cela améliore la performance des tests conditionnels
sur des structures de données compactes. Elle est donc prisée dans les environnements à contrainte de ressources.
- Il est important de noter que CLM est une instruction logique, donc les valeurs sont comparées bit à bit, sans interprétation de signe. Elle ne convient pas pour
les comparaisons arithmétiques classiques. Elle est strictement utilisée pour la comparaison binaire d'égalité.
Dernière mise à jour : Mardi, le 22 août 2017