Comment faire un décalage à gauche ou à droite pour déplacer une séquence d'octets d'un nombre de bits spécifié? Suggestions ?Décale une séquence d'octets de N bits. Langue d'assemblage
0
A
Répondre
1
https://board.flatassembler.net/topic.php?t=19767
Jetez un oeil à
shld
etshrd
. Vous pouvez les enchaîner pour faire plusieurs changements de mots {q | d}. Si la valeur du décalage est supérieure à 32 bits (ou 64 bits pour le code 64 bits), déplacez ensuite les unités entières et ajoutez lessh{l|r}d
aux derniers bits.
0
Il y a des instructions comme SHL (décalage vers la gauche) et SHR (décalage à droite) que vous pouvez utiliser.
Par exemple:
SHL 2 $, r0 qui signifie décaler tous les bits de la valeur stockée dans le registre à zéro par deux dans la direction gauche.
Qu'est-ce que vous avez fait jusqu'à présent? –
Pour mon cas particulier, j'ai découvert une manière différente d'atteindre mon objectif. Je dois x ou deux chaînes avec décalage relatif et j'utilise le décalage d'adresse. Mais ma solution à mon problème n'est pas la réponse. – Rubyko