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 937
    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 937
    Points : 59 416
    Points
    59 416
    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.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  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