| Assembleur 370 |
X |
| eXclusive Or |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre général contenant la première opérande. Reçoit aussi le résultat après l'opération XOR. |
| D2(X2,B2) |
Ce paramètre permet d'indiquer une adresse effective de l'opérande mémoire (32 bits = 4 octets). Calculée comme : Adresse effective = D2 + contenu de X2 + contenu de B2. |
Description
Cette instruction permet d'effectuer une opération de «Ou exclusif binaire» d'une opérande à un registre.
Remarques
- L'instruction X réalise une opération OU exclusif binaire (XOR) entre un registre et une valeur mémoire. Elle compare chaque bit : si les bits sont différents, le
résultat est 1 ; sinon, 0. C'est une opération logique souvent utilisée dans les algorithmes de cryptage ou de vérification.
- Le registre R1 joue un double rôle : il contient la première opérande et reçoit le résultat final. Cela signifie que l'opération est destructrice : la valeur d'origine
de R1 est remplacée. Il est donc important de préserver R1 si la valeur initiale doit être réutilisée.
- L'adresse mémoire de la seconde opérande est calculée dynamiquement : D2 + X2 + B2. Cela permet d'accéder à des données variables ou à des tableaux. Cette souplesse
est utile pour les traitements sur des blocs en mémoire.
- L'opérande mémoire doit être exactement de 4 octets, comme la taille d'un mot standard. Si la donnée en mémoire est plus petite ou plus grande, cela peut provoquer
une erreur ou des résultats inattendus. L'alignement correct en mémoire est aussi essentiel pour des performances optimales.
- Le XOR est souvent utilisé pour mettre à zéro un registre en le XORant avec lui-même : X R1,R1. C'est plus rapide que l'utilisation d'instructions comme LHI R1,0.
Cette astuce est largement exploitée dans les routines système ou bas niveau.
- L'instruction X permet de manipuler les bits à un niveau très fin, par exemple pour inverser des bits spécifiques. En XORant avec un masque, on peut activer ou
désactiver certains bits de manière conditionnelle. C'est très utile pour la gestion des drapeaux (flags) ou des permissions.
- XOR est une opération réversible : appliquer deux fois la même opération avec la même valeur redonne la valeur initiale. Cela permet d'échanger deux valeurs sans
variable temporaire via une série de trois XOR. Cette propriété est parfois exploitée dans des optimisations ou des cryptages simples.
- L'instruction X ne modifie aucun indicateur de condition (CC), contrairement à d'autres instructions arithmétiques. Cela signifie qu'elle peut être utilisée sans
perturber un enchaînement de tests logiques ou de branchements. C'est utile dans des contextes où les drapeaux système doivent rester inchangés.
Dernière mise à jour : Mardi, le 22 août 2017