IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

Différence entre SAL et SHL ?


Sujet :

Assembleur

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Différence entre SAL et SHL ?
    J'aurais également une autre question : quelqu'un pourrait m'expliquer exactement la différence entre un "sal" ( shift arithmetic left ) et un "shl" ( shift logical left ) ? et aussi en sar et shr ? J'ai déja regardé un peu mais il me semble que ça fait presque la même chose

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 963
    Points : 59 639
    Points
    59 639
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    SHL et SAL font la même chose : décalage vers la gauche en ajoutant un 0 dans le bit de poids faible et en récupérant le bit de poids fort dans le flag carry.

    SHR et SAR, par contre, se comportent différemment :

    - SHR fait un décalage vers la droite en ajoutant un 0 dans le bit de poids fort et en récupérant le bit de poids faible dans le flag carry;

    - SAR fait en décalage vers la droite en réinjectant le bit de signe et en récupérant le bit de poids faible dans le flag carry.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Tout cela à l'air d'être si simple maintenant
    Merci Alcatiz.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Ces instructions, on des signification, leur comportement n'est pas le fait du hasard.

    SAL / SAH => Arithmétique
    SHL / SHR => Logique (Pourquoi H ?)

    Le décalage logique, considère que quand on décale, il faut bien mettre quelque chose là où il n'y a plus rien. Par convention on met rien, donc des bits nuls.

    Le décalage arithmétique, assure une division par deux euclidienne c'est à dire qui vérifie les propriétés :

    a = 2b + r

    où 0 <= r < 2.

    Ce qui signifie que dans la division euclidienne par 2, -5 divisé par 2 est égal à -3 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Nombre négatif, bit de signe : 1
     
    -5 : 1011
    -3 : 1101
     
    Nombre positif, bit de signe : 0
     
    5 : 0101
    2 : 0010
    dans ces deux exemples, on a bien injecté le bit de signe devant.

    J'espère que ces précisions auraient servi à quelque chose :/

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    T'inkiète Blustuff , je suis tjs avide de connaissance ! Merci de ton intervention

  6. #6
    Membre du Club Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    Je n'afirmerais rien, mais il me semble que
    SAL / SAH => Arithmétique
    SHL / SHR => Logique (Pourquoi H ?)
    manipulent des octets, pas des chaines, ils ne te seront donc pas utiles ici...
    Il faut faire pointer un registre sur un caractère de la chaine, le comparer a un autre caractère, puis incrementer le registre....
    Car chaque octet représente un caractère...
    Voilà, Mais peut etre le savais-tu. , juste que dans ce cas, je ne voit pas pourquoi cet epilogue sur SAL, SAH...
    Bon code !
    Arpent

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  2. Réponses: 5
    Dernier message: 11/12/2002, 12h31
  3. Différence entre TCP, UDP, ICMP
    Par GliGli dans le forum Développement
    Réponses: 1
    Dernier message: 13/09/2002, 08h25
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 15h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo