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

x86 32-bits / 64-bits Assembleur Discussion :

[Débutant] Explications sur quelques instructions en Assembleur


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut [Débutant] Explications sur quelques instructions en Assembleur
    Bonjour,

    Je viens de me lancer dans l'assembleur pour découvrir. Pour ça j'ai acheté un livre et je commence à voir un problème. Je vous met l'exemple ici :

    8048375: 89 e5 mov ebp,esp
    8048377: 89 ec 08 sub esp,0x8
    Voilà, d'après ce que j'ai compris avec la première ligne Esp = Ebp = e5
    après je dois soustraire 8 à e5.
    donc je prends la calculette sous linux et je fais avec E5 ( 229(decimal) ) :
    229-8 = 221 (DD en hexa)

    ...

    dans mon exemple du livre il trouve EC !! et moi je trouve DD !

    Dites moi si j'ai bien compris... (je pense pas.)

    Merci pour votre aide

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Jai,

    Ce n'est pas ça du tout.

    Dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    8048375: 89 e5 mov ebp,esp
    8048375 représente l'adresse où on se trouve pour le code
    89 e5 représente le code machine à exécuter, en hexadécimal
    mov ebp,esp est le mnémonique correspondant à ce code, et signifie
    "mettre la valeur de esp dans ebp".

    Je te laisse le soin de décomposer l'autre ligne sur ce modèle.

    Mais pour apprendre, chercher à désassembler comme ça n'est pas la meilleure manière de faire.

    Écris du code compilable et exécutable, tu verras plus tard le code généré.
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par droggo Voir le message
    Jai,

    Ce n'est pas ça du tout.

    Dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    8048375: 89 e5 mov ebp,esp
    8048375 représente l'adresse où on se trouve pour le code
    89 e5 représente le code machine à exécuter, en hexadécimal
    mov ebp,esp est le mnémonique correspondant à ce code, et signifie
    "mettre la valeur de esp dans ebp".

    Je te laisse le soin de décomposer l'autre ligne sur ce modèle.

    Mais pour apprendre, chercher à désassembler comme ça n'est pas la meilleure manière de faire.

    Écris du code compilable et exécutable, tu verras plus tard le code généré.
    Oui, ça vient d'un simple programme en C. Il (le livre) a voulu qu'on voit comment ça se passe dans le processeur à ce moment là .

    Edit: J'aimerais aussi savoir, la commande objdump ne donne pas le même résultat (avec le même programme) sur mon Linux installé et sur le linux fournis sur un live CD avec le livre :S
    C'est normal ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Enfaite, 89 représente le code machine du registre ebp ? et e5 le code machine du registre esp ? car je veux bien mettre la valeur de esp dans ebp mais si je sais pas quel valeur ils ont...

    Merci pour votre aide !
    Et bonne année !!

    Edit: AHH j'crois que je comprend enfaite ! le code machine en héxa a rien à voir avec le code assembleur enfaite ? ils ne sont pas liés... c'est bien ça ? (je sais, je suis chiant...)

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Jei,

    Si ton bouquin te montre de tels exemples sans t'expliquer en quelques lignes (au moins !) comme le lire/comprendre, jette-le tout de suite.
    Si les cons volaient, il ferait nuit à midi.

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

Discussions similaires

  1. brêve explication sur quelques notions basiques
    Par I'm_HERE dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 15/02/2010, 20h01
  2. Réponses: 17
    Dernier message: 11/11/2008, 12h17
  3. explication sur quelques login sql server 2k
    Par Bba_M dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/07/2006, 09h23
  4. Réponses: 9
    Dernier message: 09/05/2006, 16h11
  5. Explication sur une instruction...
    Par snoop dans le forum C++
    Réponses: 5
    Dernier message: 03/05/2006, 22h56

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