| Assembleur 370 |
XC |
| eXclusive Or Characters |
Syntaxe
Paramètres
| Nom |
Description |
| D1(L,B1) |
Ce paramètre permet d'indiquer une zone destination et opérande 1. D1 : Déplacement (offset dans le segment). L : Longueur en octets (1 à 256). B1 : Registre de base. Cette zone sera modifiée. |
| D2(B2) |
Ce paramètre permet d'indiquer une zone source / opérande 2. D2 : Déplacement. B2 : Registre de base. Cette zone n'est pas modifiée. |
Description
Cette instruction permet d'effectuer une opération de «Ou exclusif binaire» d'un bloc de données à un autre bloc de données.
Remarques
- L'instruction XC effectue un OU exclusif (XOR) octet par octet entre deux zones mémoire. Elle modifie directement la zone D1(L,B1) avec le résultat.
C'est une opération binaire très efficace pour manipuler des blocs de données.
- Le paramètre L spécifie la longueur du bloc à traiter (de 1 à 256 octets). Cela permet de réaliser des opérations sur des chaînes ou tampons de taille variable.
Attention : les deux zones mémoire doivent avoir la même taille pour éviter des erreurs.
- Contrairement à l'instruction X, XC travaille directement sur la mémoire, sans utiliser de registre. Cela permet de libérer les registres pour d'autres usages, ce
qui est précieux dans les routines optimisées. Le traitement s'effectue intégralement en mémoire, sans passage par les registres généraux.
- Une utilisation classique de XC est la mise à zéro rapide d'un bloc mémoire : en faisant XC D1(L,B1),D1(B1), on XOR une zone avec elle-même, ce qui donne zéro.
C'est plus rapide que remplir octet par octet avec une boucle.
- L'opérande source D2(B2) n'est jamais modifiée, seule la destination est affectée. Cela permet de conserver des données constantes utilisées comme masque pour
l'opération. Ainsi, on peut appliquer un masque XOR à plusieurs zones sans altérer la source.
- L'instruction XC ne modifie pas les registres de condition (CC), ce qui la rend discrète dans le flot de contrôle. Elle peut donc être utilisée sans perturber les
instructions conditionnelles suivant. C'est utile dans les traitements logiques insensibles aux changements d'état du processeur.
- XC est souvent utilisée dans les algorithmes de cryptographie basique ou d'obfuscation de données. Le XOR étant réversible, l'instruction peut servir à
encoder/décoder un message à l'aide d'un masque. Cela rend XC particulièrement utile dans les routines de sécurité simples.
- Une précaution importante : les zones mémoire ne doivent pas se chevaucher partiellement. Si les blocs source et destination se superposent, le résultat peut être
imprévisible. Il est donc essentiel de s'assurer que les adresses sont correctement séparées ou strictement identiques.
Dernière mise à jour : Mardi, le 22 août 2017