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 :

Précision sur une instruction : push offset


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 83
    Points : 0
    Points
    0
    Par défaut Précision sur une instruction : push offset
    Bonjour,

    j'ai cette instruction : push offset MsgBoxCaption

    j'aimerais savoir a quoi set l'utilisation de offset et pourquoi est t'il indispensable dans ce cas.

    Car offset, si je ne me trompe pas, c'est le déplacement entre deux emplacement mémoire...

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Citation Envoyé par lirycs78 Voir le message
    Bonjour,

    j'ai cette instruction : push offset MsgBoxCaption

    j'aimerais savoir a quoi set l'utilisation de offset et pourquoi est t'il indispensable dans ce cas.

    Car offset, si je ne me trompe pas, c'est le déplacement entre deux emplacement mémoire...

    Merci d'avance.
    L'opérateur OFFSET (syntaxe MASM) retourne l'offset de l'expression qui suit. En 32 bits, l'offset est fait par rapport à l'adresse 0. Le résultat est donc qu'en 32 bits, l'opérateur offset retourne l'adresse de l'expression suivante: dans ton cas, l'adresse de MsgBoxCaption.

    Sans offset, c'est le contenu de l'expression qui est poussé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    .data
    var DWORD 3 ; déclare une variable nommée 'var' qui vaut 3 (sur 32 bits)
     
    .code
     
    push var ; pousse le contenu de var, donc: 3
    push offset var ; pousse l'adresse de la variable 'var'
    Une fois compilé, si par exemple la variable 'var' se trouve en 0x402000, on aura:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    push dword ptr [0x402000] ; push var
    push offset 0x402000 ; push offset var

Discussions similaires

  1. Attente sur une instruction
    Par coucou_tt_le_monde dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/07/2007, 10h44
  2. [XSD] Précision sur une réponse dans la FAQ
    Par femtosa dans le forum Valider
    Réponses: 3
    Dernier message: 27/03/2007, 17h00
  3. [MySQL] Erreur sur une instruction UPDATE
    Par Sir Tengu dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/12/2006, 13h59
  4. [POO Basique] Besoin de précision sur une notion de base
    Par alois.cochard dans le forum Langage
    Réponses: 8
    Dernier message: 15/09/2006, 09h01
  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