| Assembleur 370 |
CR |
| Compare Registers |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre contenant la première valeur à comparer. |
| R2 |
Ce paramètre permet d'indiquer un registre contenant la seconde valeur à comparer. |
Description
Cette instruction permet d'effectuer la comparaison d'un registre et d'un autre registre.
Remarques
- L'instruction CR compare le contenu de deux registres, chacun contenant une valeur entière signée sur 32 bits. Elle met à jour le code condition du programme selon
que la première valeur est inférieure, égale ou supérieure à la seconde. C'est une opération non destructive : les registres ne sont pas modifiés.
- CR est souvent utilisée en préambule d'un saut conditionnel (exemple : BNE, BE, BL, BH). Elle permet d'introduire une logique de décision simple entre deux
variables entières. Elle constitue une base pour les structures de contrôle, comme les boucles et les tests.
- La comparaison est arithmétique signée, donc le bit de signe est pris en compte. Cela signifie que ?1 est bien inférieur à 0, contrairement aux comparaisons logiques.
Cette nuance est importante pour manipuler des valeurs entières correctement.
- CR est limitée à la comparaison entre valeurs en registre uniquement. Elle ne permet pas de comparer une valeur mémoire directement, contrairement à d'autres
instructions comme C. Cela implique qu'une valeur mémoire doit être chargée dans un registre au préalable.
- L'instruction est rapide car elle ne nécessite aucun accès mémoire, ce qui réduit le temps d'exécution. Elle est adaptée aux comparaisons fréquentes dans des boucles
ou des fonctions critiques. Sa performance est utile en contexte temps réel ou dans les traitements massifs.
- CR modifie uniquement les indicateurs du PSW (Program Status Word), mais pas les opérandes. Elle est donc sécurisée dans les routines sensibles où il est impératif de
préserver les données. Cela permet de comparer sans risque d'altérer l'état du programme.
- L'ordre des registres est important : R1 - R2 est la soustraction logique évaluée. Si R1 < R2, le code condition reflétera une valeur négative. Il faut donc respecter
l'ordre pour obtenir le résultat attendu.
- CR est souvent utilisée en combinaison avec SR, LR, AR,..., pour des traitements numériques avancés. Elle joue un rôle clé dans les algorithmes où plusieurs registres
sont manipulés successivement. C'est une instruction essentielle à la logique arithmétique du langage Assembleur 370.
Dernière mise à jour : Mardi, le 22 août 2017