| Assembleur 370 |
SRL |
| Shift Right Single Logical |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre destination. Contient l'opérande à décaler (un mot de 32 bits). Reçoit le résultat du décalage à droite. |
| D2(B2) |
Ce paramètre permet d'indiquer une adresse mémoire contenant la valeur du nombre de bits (de 0 à 31) à décaler. L'adresse effective est calculée ainsi : Adresse effective = D2 + contenu de B2. Cette valeur est lue et utilisée pour déterminer le nombre de positions à décaler. |
Description
Cette instruction permet d'effectuer un décalage de bits vers la droite, du nombre de position spécifié par l'opérande, d'un registre de 32 bits.
Remarques
- L'instruction SRL effectue un décalage logique à droite sur un mot de 32 bits. Les bits décalés sortent par la droite, tandis que des zéros sont injectés à gauche.
Cela en fait une opération adaptée aux entiers non signés.
- Le registre R1 sert à la fois d'opérande source et de destination. Il contient la valeur à décaler et reçoit directement le résultat du décalage. Aucun autre registre
n'est modifié pendant l'opération.
- Le second paramètre (D2(B2)) désigne l'adresse mémoire contenant la valeur de décalage. Cela permet d'appliquer des décalages dynamiques, déterminés à l'exécution.
La valeur lue doit être un entier non signé compris entre 0 et 31.
- Contrairement à un décalage arithmétique (SRA), le bit de signe n'est pas conservé. Le bit de poids fort est toujours remplacé par zéro. L'instruction est donc
inadaptée pour les nombres signés négatifs.
- SRL est très utile pour effectuer des divisions rapides par des puissances de 2. Par exemple, un décalage de 1 bit divise la valeur par 2 (entier non signé).
Cela permet d'optimiser certaines opérations mathématiques simples.
- L'instruction est pratique pour manipuler des masques binaires, des drapeaux ou des champs de bits. Elle permet d'extraire ou d'aligner certaines portions d'un mot
de 32 bits. Elle est donc fréquemment utilisée dans les traitements bas niveau.
- Le champ D2 correspond à un offset sur 12 bits, s'ajoutant au registre de base B2. Ce mécanisme permet de localiser précisément la valeur de décalage en mémoire.
Il offre une grande souplesse dans l'adressage des données.
- Un mauvais paramétrage du décalage (exemple supérieur à 31) peut produire un résultat inattendu. Il est donc important de valider la valeur lue en mémoire avant son
utilisation. Cela évite des effets de bord dans le registre destination.
Dernière mise à jour : Mardi, le 22 août 2017