Assembleur 370 |
SRDL |
Shift Right Double Logical |
Syntaxe
Paramètres
Nom |
Description |
R1 |
Ce paramètre permet d'indiquer un registre pair (R0, R2, R4, ..., R14). Contient la moitié haute du double mot (64 bits). Le registre R1+1 contient la moitié basse. Le résultat du décalage est stocké dans ces deux registres. Remarque : R1 doit être un registre pair. L'instruction fonctionne sur un double mot (64 bits), donc R1 doit être suivi par le registre R1+1 (par exemple, R2 et R3 pour un double mot). |
D2(B2) |
Ce paramètre permet d'indiquer une adresse mémoire contenant la valeur du nombre de bits (de 0 à 63) à décaler. L'adresse effective est calculée ainsi : Adresse effective = D2 + contenu de B2. Le contenu à cette adresse est un entier non signé, représentant le nombre de bits de décalage. |
Description
Cette instruction permet d'effectuer un décalage de bits logique vers la droite, du nombre de position spécifié par l'opérande, d'un registre de 64 bits.
Remarques
- L'instruction SRDL effectue un décalage logique à droite sur un double mot (64 bits). Contrairement à SRDA, le bit de signe n'est pas conservé, les zéros sont
introduits à gauche. Elle est donc réservée aux valeurs non signées.
- Le registre R1 doit obligatoirement être pair (R0, R2, ... R14). Il est utilisé avec le registre R1+1 pour former un double mot de 64 bits. Cette contrainte évite
les erreurs de décalage mal aligné.
- La quantité de décalage (0 à 63) est stockée à une adresse mémoire indirecte. Cette souplesse permet un contrôle dynamique du nombre de bits à décaler. Cela évite
d'avoir à coder le décalage en dur dans l'instruction.
- Le contenu des registres R1 et R1+1 est modifié en place avec le résultat du décalage. Cela permet une opération rapide, sans avoir à utiliser d'autres registres ou
la mémoire. Le registre contenant la valeur de décalage reste inchangé.
- Le décalage logique introduit des zéros à gauche, quels que soient les bits originaux. Cela est utile pour traiter des masques binaires, des entiers non signés ou
des flux de données. Les bits de poids faible sont perdus lors du décalage.
- Cette instruction est adaptée aux traitements bit à bit sur des données longues. Elle est très utilisée dans les opérations de chiffrement, compression ou manipulation
de paquets. Elle favorise une gestion précise des 64 bits.
- Un mauvais usage, comme fournir un registre impair à R1, entraîne une erreur. Il est donc impératif de valider la paire de registres utilisée avant l'appel. Un oubli
de cette contrainte peut corrompre les données.
- SRDL est utile pour effectuer des divisions par des puissances de deux, sans tenir compte du signe. Elle est ainsi différente de SRDA, gardant la cohérence pour les
entiers signés. Ce comportement la rend plus performante dans des algorithmes purement logiques.
Dernière mise à jour : Mardi, le 22 août 2017