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 :

ASM inline pushad/popad


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut ASM inline pushad/popad
    Bonjour a tous.

    Je suis en train d'ecrire un bout de code asm inline dans mon projet C.
    J'ai besoin d'y faire une sauvegarde / restoration de contexte.

    Plutot que d'empliler tous les registres a la main, je comptais utiliser pushad et popad (et les cs ds es fs gs ss a la main).

    Simplement, lors de la compilation, le compilateur me dit qu'il ne connait pas pushad et popah.

    J'ai essaye avec popa et pusha, pas de souci...

    Sauriez-vous d'ou le probleme peut venir ?

  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 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Si ton compilateur n'admet pas d'instructions inline 32 bits, je pense que tu peux contourner le problème en les faisant précéder du préfixe 0x66 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    db 0x66
    pusha
    ...
    db 0x66
    popa
    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
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut re
    Bonjour, merci d'avoir repondu.

    Le compilateur en question est gcc 4.1.2.
    J'ai teste ta methode, malheureusement ca ne marche pas.

    En revanche, j'ai eu l'idee de mettre popal et pushal au lieu de popad et pushad (l de long evidement), et ca a marche.

    J'ai cherche de la doc sur ces deux instructions que je ne connaissait pas et voila ce sur quoi je suis tombe :

    https://www.cs.binghamton.edu/piperm...ry/000035.html

    Merci d'avoir porte attention a mon post.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/01/2012, 18h54
  2. [QUESTION] ASM Inline in C# ?
    Par KeLx86 dans le forum C#
    Réponses: 3
    Dernier message: 11/06/2008, 12h14
  3. asm inline avec gcc
    Par snakemetalgear dans le forum Autres éditeurs
    Réponses: 27
    Dernier message: 08/04/2007, 02h10
  4. erreur ASM inline sur 'INT' avec delphi7
    Par the_magik_mushroom dans le forum Langage
    Réponses: 1
    Dernier message: 03/11/2005, 01h41
  5. GCC - ASM inline
    Par Edouard Kaiser dans le forum Linux
    Réponses: 2
    Dernier message: 11/07/2005, 09h22

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