| Assembleur 370 |
XR |
| eXclusive Or Registers |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre de destination. Contient le premier opérande. Après l'exécution de l'instruction, il contiendra le résultat du XOR entre R1 et R2. |
| R2 |
Ce paramètre permet d'indiquer un registre source. Contient le deuxième opérande pour l'opération XOR. |
Description
Cette instruction permet d'effectuer une opération de «Ou exclusif binaire» d'un registre à un autre registre.
Remarques
- L'instruction XR effectue un XOR logique bit à bit entre deux registres généraux. Le résultat est entreposé dans le registre R1, remplaçant sa valeur initiale.
Cette opération est utile pour manipuler ou comparer des drapeaux binaires.
- L'instruction est réversible : appliquer XR deux fois avec le même registre R2 rétablit la valeur initiale de R1. C'est un principe souvent exploité pour des
échanges de valeurs sans registre temporaire. Cependant, cette méthode peut devenir difficile à lire pour les non-initiés.
- Lorsque R1 et R2 sont identiques, le résultat du XOR est toujours zéro. Cela permet une mise à zéro rapide d'un registre sans utiliser d'instruction explicite de
chargement de zéro. C'est un idiome courant pour initialiser un registre à 0 efficacement.
- XR modifie les codes condition (Condition Code), ce qui permet de tester le résultat de l'opération. Par exemple, on peut enchaîner un saut conditionnel basé sur
le fait que le résultat est nul ou non. Cela rend XR pertinent dans des constructions de contrôle.
- Cette instruction est plus rapide et plus compacte que de passer par des opérations mémoire pour des traitements logiques. Elle est donc souvent privilégiée pour
les manipulations binaires internes entre registres. Son efficacité en fait une instruction clé pour les algorithmes bas niveau.
- XR est non destructive pour R2, ce qui signifie que seul R1 est modifié. Cela facilite la conservation des données originales dans R2 tout en appliquant une
transformation à R1. C'est utile pour dériver de nouvelles valeurs sans perdre les anciennes.
- L'instruction opère sur l'ensemble des 32 bits des registres concernés. Il faut donc veiller à ce que les données contenues dans R1 et R2 soient bien interprétées
bit à bit. C'est une opération purement logique, indépendante du type de données entreposées.
- Dans certaines routines de chiffrement ou de contrôle d'intégrité, XR est utilisé pour introduire une obfuscation légère. Combinée à des masques ou valeurs
pseudo-aléatoires, elle permet de brouiller temporairement des données. Elle reste cependant insuffisante pour des usages de sécurité forte.
Dernière mise à jour : Mardi, le 22 août 2017