| Assembleur 370 |
CLR |
| Compare Logical Registers |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre contenant la première opérande. |
| R2 |
Ce paramètre permet d'indiquer un registre contenant la deuxième opérande. |
Description
Cette instruction permet d'effectuer la comparaison logique d'un registre et d'un autre registre.
Remarques
- L'instruction CLR compare deux registres de façon logique, c'est-à-dire bit à bit sans tenir compte du signe. Elle est utile pour comparer des valeurs considérées
comme non signées (entiers positifs, adresses, drapeaux). C'est une alternative à l'instruction C (Compare) pour les données en registre.
- R1 contient la première opérande et R2 la seconde, toutes deux sur 32 bits. Aucune donnée n'est modifiée?: CLR ne fait que mettre à jour le code condition. Elle
est donc non destructive et sûre à utiliser dans des enchaînements logiques.
- Le résultat de la comparaison est exploité via les instructions de branchement conditionnel (comme BCR ou BC). Par exemple, on peut sauter à une routine si les deux
registres sont égaux. CLR est donc souvent combinée avec des tests logiques.
- Comme il s'agit d'une comparaison logique, elle est inadaptée pour les entiers signés. Une valeur négative serait considérée comme très grande, faussant les tests
d'ordre. Pour des entiers avec signe, l'instruction CR (Compare Registers) serait plus appropriée.
- Cette instruction est très rapide, car elle n'implique pas d'accès mémoire. Elle est souvent utilisée pour des tests de boucles ou de validation de résultats
intermédiaires. C'est une bonne pratique de privilégier les comparaisons entre registres quand c'est possible.
- CLR est pratique pour vérifier l'égalité ou la différence de deux données calculées ou reçues. Elle est utile dans les mécanismes de synchronisation, d'attente
active ou de détection d'état. Son efficacité est appréciée en environnement système.
- Elle peut être utilisée dans des routines de traitement de drapeaux ou de statuts, lorsqu'on compare des bitfields codés en registre. Le test logique évite toute
ambigüité liée aux représentations signées. Cela renforce la robustesse du code bas niveau.
- CLR est également précieuse pour la portabilité des routines système entre plateformes IBM 370. Sa sémantique simple et claire (comparaison logique) évite les
comportements inattendus. Elle s'inscrit dans les instructions fondamentales de contrôle de flux.
Dernière mise à jour : Mardi, le 22 août 2017