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 :

Recherche algo de compilateur assembleur x86


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut Recherche algo de compilateur assembleur x86
    Bonjour à tous,

    Je suis en train de me faire un petit compilo assembleur x86 pour mon langage.
    Et si certains mnémoniques sont simples à compiler, d'autres comme "mov" par exemple
    sont de vrais casse-têtes
    Et la seule solution que j'ai trouvé est d'empiler des tests, et ça me fait un code tout moche

    Alors si vous avez un petit algo tout beau pour créer du code x86 je suis preneur.

    En désespoir de cause, je vais me plonger dans le source de Fasm

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 217
    Points : 10 149
    Points
    10 149
    Par défaut
    Peu importe le langage , si c'est un langage assez 'haut niveau' , il est déconseillé de traduire direct ton langage en assembleur.
    Il faudrait passer par l'analyse lexicale et syntaxique.

    Ou alors j'ai pas compris ?

  3. #3
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    T'as pas compris !
    Oui, bon... j'ai pas très bien expliqué non plus ...

    Mon langage (un dérivé du forth) me permet de faire des routines en assembleur, mais avec une syntaxe à la con.
    De plus à la base c'était un assembleur 8086 que j'ai bidouillé pour prendre des instructions x86.
    Par exemple, pour écrire :
    je dois taper :
    donc l'idée c'est de refaire la partie compilation de mots assembleur en version plus standard.
    Ce compilateur va être écrit en Forth, et transforme juste les mnémoniques en code machine.
    Je n'ai pas besoin de choses complexes, et la compilation se fait en une seule passe.

    J'ai survolé le source de YASM, je vais voir aussi avec FASM...

  4. #4
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 217
    Points : 10 149
    Points
    10 149
    Par défaut
    OK je comprends mieux et en gros le mnémonique mov te pose souci à quel niveau ?

  5. #5
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    "mov" est vraiment LE plus gros bousin dans le x86
    Il y a plus de 30 opcodes (sur un octet) qui correspondent à cette instruction, suivant les registres/données concernés
    donc autant pour coder une instruction de type in out ça prend 3 lignes, autant avec mov add et quelques autres,
    j'ai 200 lignes de IF THEN imbriqués et c'est moche

  6. #6
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 217
    Points : 10 149
    Points
    10 149
    Par défaut
    ok j'ai compris ton soucis donc (hourra).

    en pseudo code ça donnerai donc ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(mov AL,adresse)
     ecrire 0XA0 et adresse
     
    if(mov AX,adresse)
     ecrire 0XA1 et adresse
     
    if(mov al,imm8)
     ecrire 0XB0 et imm8
    etc etc non ?
    Mov de je que j'ai lu est de 0xA0 a 0XBF non ?
    Donc cela fait 30 if.
    Si le code est bien indenter et que les if sont pas gros faire 30 if ne pose pas de souci normalement

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

Discussions similaires

  1. [Recherche Algo] Distance levenshtein
    Par Finidrigoler dans le forum Langage
    Réponses: 8
    Dernier message: 09/09/2009, 00h43
  2. [68k] Recherche d'un compilateur
    Par jib2b dans le forum Autres architectures
    Réponses: 3
    Dernier message: 05/06/2006, 22h25
  3. Recherche d'un compilateur
    Par buildozer dans le forum MFC
    Réponses: 2
    Dernier message: 07/10/2005, 16h26
  4. recherche algo de génération de nombre aléatoire
    Par Pascale38 dans le forum MFC
    Réponses: 2
    Dernier message: 26/01/2004, 14h20
  5. Recherche algo tree
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/05/2002, 13h44

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