DÉCALAGE
ET ROTATION
Fonction Introduction
Fonction Index des mnémoniques
Fonction Multiplier par 2x

Page précédente Fonction prochaine partie
Fonction partie précédente



 

Monter Descendre Retour Introduction
puce Les instructions de décalage et rotation vous permettent de décaler des valeurs bit par bit. Utilent en graphisme on peut aussi les utiliser pour diviser ou multiplier par 2x, échanger entre eux les octets / mots de poids faible avec ceux de poids lourd...

puce Il faudra obligatoirement utiliser un mode d'adressage parmi ceux proposés.

puce Notez que les instructions ASL et LSL produisent le même résultat.

puce N'oubliez pas que les indicateurs changent pour certaines instructions.





 
Monter Descendre Retour Index des mnémoniques
ASLArithmetic Shift to the Left
déplacement arithmétique gauche
LSRLogical Shift to the Right
déplacement logique droit
ROLXROtate to the Left EXtended
rotation gauche avec extension
ASRArithmetic Shift to the Right
déplacement arithmétique droit
ROLROtate to the Left
rotation gauche
RORXROtate to the Right EXtended
rotation droite avec extension
LSLLogical Shift to the Left
déplacement logique gauche
RORROtate to the Right
rotation droite




 

Retour ASL Arithmetic Shift to the Left
déplacement arithmétique gauche
Monter Descendre

DESCRIPTION
puce Décale (sans modifier le signe) un opérande d'un certain nombre de bits vers la gauche.

puce Voici un exemple pour un octet, on voit que les bits de poids faible succéssifs sont rempacés par des 0 et que les bits de poids fort passent tout d'abord par l'indicateur C avant d'être perdus.

Indicateur Cbit
76543210
001101001
011010010
110100100
101001000
...........................

puce Il y a trois possibilités pour cette instruction :
puce Décale un registre de données du nombre de pas contenu dans un autre registre de données.
puce Décale un registre de données, du nombre de pas donné par une valeur immédiate de 1 à 8 inclus.
puce Décale un mot contenu à une adresse d'un pas.

MODES D'ADRESSAGE
puce (An), -(An), (An)+, y(An), x(An,Xn.s), y, z

TAILLE DES DONNÉES
puce Octet / Mot / Mot long

INDICATEURS
XValeur du dernier bit sorti de l'opérande destination
NStandard
ZStandard
VArmé si le bit de poids fort a été modifié à la fin de l'opération
CValeur du dernier bit sorti de l'opérande destination

SYNTAXES

puce ASL Dx,Dy
puce ASL <valeur>,Dy
puce ASL <adresse>





 

Retour ASR Arithmetic Shift to the Right
déplacement arithmétique droit
Monter Descendre

DESCRIPTION
puce Décale (sans modifier le signe) un opérande d'un certain nombre de bits vers la droite.

puce Voici un exemple pour un octet, on voit que les bits de poids forts succéssifs gardent leur valeur et que les bits de poids faibles passent tout d'abord par l'indicateur C avant d'être perdus.

bitIndicateur C
76543210
001001000
000100100
000010010
000001001
...........................
bitIndicateur C
76543210
101001000
110100100
111010010
111101001
...........................

puce Il y a trois possibilités pour cette instruction :
puce Décale un registre de données du nombre de pas contenu dans un autre registre de données.
puce Décale un registre de données, du nombre de pas donné par une valeur immédiate de 1 à 8 inclus.
puce Décale un mot contenu à une adresse d'un pas.

MODES D'ADRESSAGE
puce (An), -(An), (An)+, y(An), x(An,Xn.s), y, z

TAILLE DES DONNÉES
puce Octet / Mot / Mot long

INDICATEURS
XValeur du dernier bit sorti de l'opérande destination
NStandard
ZStandard
VArmé si le bit de poids fort a été modifié à la fin de l'opération
CValeur du dernier bit sorti de l'opérande destination

SYNTAXES

puce ASR Dx,Dy
puce ASR <valeur>,Dy
puce ASR <adresse>





 

Retour LSL Logical Shift to the Left
déplacement logique gauche
Monter Descendre

DESCRIPTION
puce Décale un opérande d'un certain nombre de bits vers la gauche.

puce Voici un exemple pour un octet, on voit que les bits de poids faible succéssifs sont rempacés par des 0 et que les bits de poids fort passent tout d'abord par l'indicateur C avant d'être perdus.

Indicateur Cbit
76543210
001101001
011010010
110100100
101001000
...........................

puce Il y a trois possibilités pour cette instruction :
puce Décale un registre de données du nombre de pas contenu dans un autre registre de données.
puce Décale un registre de données, du nombre de pas donné par une valeur immédiate de 1 à 8 inclus.
puce Décale un mot contenu à une adresse d'un pas.

MODES D'ADRESSAGE
puce (An), -(An), (An)+, y(An), x(An,Xn.s), y, z

TAILLE DES DONNÉES
puce Octet / Mot / Mot long

INDICATEURS
XValeur du dernier bit sorti de l'opérande destination
NStandard
ZStandard
VForcé à 0
CValeur du dernier bit sorti de l'opérande destination

SYNTAXES

puce ASL Dx,Dy
puce ASL <valeur>,Dy
puce ASL <adresse>





 

Retour LSR Logical Shift to the Right
déplacement logique droit
Monter Descendre

DESCRIPTION
puce Décale un opérande d'un certain nombre de bits vers la droite.

puce Voici un exemple pour un octet, on voit que les bits de poids forts succéssifs sont remplacés par des 0.

bitIndicateur C
76543210
001001000
000100100
000010010
000001001
...........................

puce Il y a trois possibilités pour cette instruction :
puce Décale un registre de données du nombre de pas contenu dans un autre registre de données.
puce Décale un registre de données, du nombre de pas donné par une valeur immédiate de 1 à 8 inclus.
puce Décale un mot contenu à une adresse d'un pas.

MODES D'ADRESSAGE
puce (An), -(An), (An)+, y(An), x(An,Xn.s), y, z

TAILLE DES DONNÉES
puce Octet / Mot / Mot long

INDICATEURS
XValeur du dernier bit sorti de l'opérande destination
NStandard
ZStandard
VForcé à 0
CValeur du dernier bit sorti de l'opérande destination

SYNTAXES

puce ASR Dx,Dy
puce ASR <valeur>,Dy
puce ASR <adresse>





 

Retour ROL ROtate to the Left
rotation gauche
Monter Descendre

DESCRIPTION
puce Effectue une rotation d'un certain nombre de bits vers la gauche.

puce Voici un exemple pour un octet, on voit que les bits de poids faibles succéssifs sont remplacés par les bits de poids fort qui sont passés juste avant par l'indicateur C.

Indicateur Cbit
76543210
?01101001
011010010
110100101
101001011
...........................

puce Il y a trois possibilités pour cette instruction :
puce Décale un registre de données du nombre de pas contenu dans un autre registre de données.
puce Décale un registre de données, du nombre de pas donné par une valeur immédiate de 1 à 8 inclus.
puce Décale un mot contenu à une adresse d'un pas.

MODES D'ADRESSAGE
puce (An), -(An), (An)+, y(An), x(An,Xn.s), y, z

TAILLE DES DONNÉES
puce Octet / Mot / Mot long

INDICATEURS
Xinchangé
NStandard
ZStandard
VForcé à 0
CValeur du dernier bit de poids fort sorti de l'opérande

SYNTAXES

puce ROL Dx,Dy
puce ROL <valeur>,Dy
puce ROL <adresse>





 

Retour ROR ROtate to the Right
rotation droite
Monter Descendre

DESCRIPTION
puce Effectue une rotation d'un certain nombre de bits vers la droite.

puce Voici un exemple pour un octet, on voit que les bits de poids forts succéssifs sont remplacés par les bits de poids faibles qui sont passés juste avant par l'indicateur C.

bitIndicateur C
76543210
101001000
010100100
001010010
000101001
...........................

puce Il y a trois possibilités pour cette instruction :
puce Décale un registre de données du nombre de pas contenu dans un autre registre de données.
puce Décale un registre de données, du nombre de pas donné par une valeur immédiate de 1 à 8 inclus.
puce Décale un mot contenu à une adresse d'un pas.

MODES D'ADRESSAGE
puce (An), -(An), (An)+, y(An), x(An,Xn.s), y, z

TAILLE DES DONNÉES
puce Octet / Mot / Mot long

INDICATEURS
Xinchangé
NStandard
ZStandard
VForcé à 0
CValeur du dernier bit de poids fort sorti de l'opérande

SYNTAXES

puce ROR Dx,Dy
puce ROR <valeur>,Dy
puce ROR <adresse>





 

Retour ROLX ROtate to the Left EXtended
rotation gauche étendue
Monter Descendre

DESCRIPTION
puce Effectue une rotation d'un certain nombre de bits vers la gauche, par rapport à l'instruction ROL nous utilisons aussi l'indicateur X.

puce Cet indicateur X sert ici de bit 32, 16 ou 8.

puce Voici un exemple pour un octet, on voit que les bits de poids faibles succéssifs sont remplacés par la valeur de l'indicateur X. Les bits de poids fort passent par l'indicateur C avant d'être perdus.

Indicateur CIndicateur Xbit
76543210
0001101001
0011010010
1110100100
1111001001
..............................

puce Il y a trois possibilités pour cette instruction :
puce Décale un registre de données du nombre de pas contenu dans un autre registre de données.
puce Décale un registre de données, du nombre de pas donné par une valeur immédiate de 1 à 8 inclus.
puce Décale un mot contenu à une adresse d'un pas.

MODES D'ADRESSAGE
puce (An), -(An), (An)+, y(An), x(An,Xn.s), y, z

TAILLE DES DONNÉES
puce Octet / Mot / Mot long

INDICATEURS
XValeur du dernier bit de poids fort sorti de l'opérande
NStandard
ZStandard
VForcé à 0
CValeur du dernier bit de poids fort sorti de l'opérande

SYNTAXES

puce ROLX Dx,Dy
puce ROLX <valeur>,Dy
puce ROLX <adresse>





 

Retour RORX ROtate to the Right EXtended
rotation droite étendue
Monter

DESCRIPTION
puce Effectue une rotation d'un certain nombre de bits vers la droite, par rapport à l'instruction ROR nous utilisons aussi l'indicateur X.

puce Cet indicateur X sert ici de bit 32, 16 ou 8.

puce Voici un exemple pour un octet, on voit que les bits de poids forts succéssifs sont remplacés par la valeur de l'indicateur X. Les bits de poids faibles passent par l'indicateur C avant d'être perdus.

bitIndicateur XIndicateur C
76543210
1010010000
1101001000
1110100100
1111010011
..............................

puce Il y a trois possibilités pour cette instruction :
puce Décale un registre de données du nombre de pas contenu dans un autre registre de données.
puce Décale un registre de données, du nombre de pas donné par une valeur immédiate de 1 à 8 inclus.
puce Décale un mot contenu à une adresse d'un pas.

MODES D'ADRESSAGE
puce (An), -(An), (An)+, y(An), x(An,Xn.s), y, z

TAILLE DES DONNÉES
puce Octet / Mot / Mot long

INDICATEURS
XValeur du dernier bit de poids fort sorti de l'opérande
NStandard
ZStandard
VForcé à 0
CValeur du dernier bit de poids fort sorti de l'opérande

SYNTAXES

puce RORX Dx,Dy
puce RORX <valeur>,Dy
puce RORX <adresse>





 

Monter Retour Multiplier par 2x
puce En utilisant ces instructions, je me suis rendu compte que chacune concerne soit des nombres signés ou non signés :
    puce ASL est utilisé pour multiplier par 2x un nombre signé

    puce ASR est utilisé pour diviser par 2x un nombre signé

    puce LSL est utilisé pour multiplier par 2x un nombre signé

    puce LSR est utilisé pour diviser par 2x un nombre non signé





 

 

Lisez la section sur les droits d'auteur et la license d'utilisation avant de distribuer Zguide.

Zguide © 1998, Florian DREVET. Tous droits réservés à l'échelle mondiale