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 :

[FASM] Exemple de traduction en ASM


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [FASM] Exemple de traduction en ASM
    Bonjour,

    Je suis actuellement en train de travailler sur un projet qui consiste à créer un mini compilateur C. J'ai utilisé LEX et YACC jusqu'à présent pour gérer le lexique et la syntaxe. J'ai aussi effectué les vérifications syntaxiques.

    J'utilise une table des symboles qui contient mes variables et un arbre qui contient mon programme, j'ai donc bien avancé et j'en suis désormais à la génération du code assembleur depuis l'arbre.

    Cela dit, je suis (très) loin d'être un expert en ASM et je n'ai pas eu de cours dessus. Je voulais donc vous demandez comment générer ce programme en ASM Intel x86 FASM (enfin le compilo avec cette entête :
    "include 'format PE CONSOLE\r\nwin32ax.inc'\r\nentry stat\r\nsection '.data' data readable writable", normalement c'est FASM).

    Que donnerait en ASM ce petit programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int i = 0;
    int f() {
    i = i +1;
    }
    int main() {
    f();
    }

  2. #2
    Membre actif

    Inscrit en
    Février 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 200
    Points : 235
    Points
    235
    Par défaut
    Si je comprends bien, tu veux incrémenter une variable (globale, locale, passée en argument... ?)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    Main:
     
        mov eax LP.Variable
     
        Call Label
     
    Call ExitProcess WM_NULL
    ________________________
     
    Label:
     
        add D$eax 1
     
    ret
    ________________________

Discussions similaires

  1. [FASM] Où trouver des tutoriels et des exemples ?
    Par _SamSoft_ dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 02/09/2007, 20h09
  2. [Asm Editor] Impossible de compiler du code FASM
    Par _SamSoft_ dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 25/04/2007, 19h30
  3. [FASM=>NASM] Problème traduction avec MOD et $
    Par SteelBox dans le forum Assembleur
    Réponses: 4
    Dernier message: 30/05/2005, 14h16

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