| Assembleur 370 |
SLDL |
| Shift Left Double Logical |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre pair (R0, R2, R4, ..., R14). Il contient la moitié haute de l'opérande 64 bits. Le registre R1+1 contient la moitié basse. Ensemble, R1:R1+1 forment un double mot logique de 64 bits. Le résultat du décalage est replacé dans ces deux registres. Si R1 est impair → erreur : les instructions double mot nécessitent un registre pair. |
| D2(B2) |
Ce paramètre permet d'indiquer l'adresse mémoire contenant le nombre de bits (entre 0 et 63) par lequel effectuer le décalage. L'adresse est calculée ainsi : Adresse effective = D2 + contenu de B2. Le contenu à cette adresse est interprété comme une valeur non signée. |
Description
Cette instruction permet d'effectuer un décalage de bits logique vers la gauche, du nombre de position spécifié par l'opérande, d'un registre de 64 bits.
Remarques
- L'instruction SLDL permet un décalage logique à gauche sur un double mot de 64 bits, réparti entre deux registres. Elle diffère de SLDA en ce qu'elle ignore le signe,
car le résultat est traité comme non signé. C'est utile pour manipuler de grandes valeurs entières sans notion de positivité ou négativité.
- Le registre R1 doit être pair, car il est couplé à R1+1 pour former le double mot. Une utilisation incorrecte (ex. R3) entraînerait une erreur d'exécution.
Cette contrainte est systématique dans les instructions de traitement double longueur.
- L'adresse donnée par D2(B2) désigne un emplacement mémoire contenant le nombre de bits à décaler. Ce décalage peut aller de 0 à 63 bits, selon la valeur non signée lue
à cette adresse. Il faut s'assurer que cette adresse pointe bien vers un entier valide.
- Le décalage est logique, donc les bits décalés hors des registres sont perdus, et les nouveaux bits à droite sont remplis de zéros. Il n'y a pas de propagation de bit
de signe, contrairement au décalage arithmétique. Cela permet une manipulation fiable des valeurs binaires pures.
- SLDL est couramment utilisée dans des opérations comme la manipulation de bitmasks, les rotations partielles, ou le traitement de blocs binaires. Elle permet de faire
glisser les bits dans une structure de 64 bits sans altérer leur nature logique. Cela est essentiel dans les algorithmes orientés performance.
- Les deux registres R1 et R1+1 sont mis à jour ensemble, garantissant la cohérence du résultat sur 64 bits. Ce comportement évite les désynchronisations entre parties
haute et basse du mot. Toute opération intermédiaire entre les deux registres romprait cette logique.
- Le choix entre SLDA (arithmétique) et SLDL (logique) dépend du type de données manipulées : signées ou non signées. Dans un contexte de calcul binaire pur, SLDL est
préférée pour éviter les effets de bord liés au bit de signe. Ce choix impacte directement la fiabilité des résultats numériques.
- Comme toute instruction de décalage, SLDL peut être utilisée à la place d'une multiplication rapide par 2n, sur 64 bits. Elle est bien plus performante que
les instructions arithmétiques classiques pour ces usages. Cela la rend précieuse en traitement de flux, compression, et cryptographie.
Dernière mise à jour : Mardi, le 22 août 2017