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

Assembleur Discussion :

Interpréteur d'assembleur


Sujet :

Assembleur

  1. #1
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Interpréteur d'assembleur
    [Bonjour,

    Je n'y connais pas grand chose en langages assemblés. Il semble qu'il faille écrire un source qui est ensuite compilé. Arrêtez moi si je me trompe...

    Mais existe t-il des interpréteurs de langage assemblés ?

    Eric
    Eric JOYE

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Août 2003
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    Peut-être, en tant qu'émulateur.

  3. #3
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut Re: Question bête
    Citation Envoyé par JOYE
    Mais existe t-il des interpréteurs de langage assemblés ?
    ... l'interpréteur d'un langage assemblé c'est le processeur lui-même ! L'assembleur est un langage compilé et non interprété.

    Il existe peut-être une sorte d'émulateur qui interprête le langage assemblé mais je n'en connais pas.

    Un débogueur peut s'apparenter à un interpréteur de langage assemblé mais il ne faut pas confondre ...
    Avant de poster, merci de consulter les règles du forum

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 96
    Points : 116
    Points
    116
    Par défaut
    Et bochs alors ? C un émulateur d'asm non ?
    Responsable du projet SKAN (OS à but didactique)
    Contactez moi pour toutes questions ou remarques sur le projet.

  5. #5
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut
    Salut !

    Ouf ! La question de Joye est pertinente et intéressante.
    et certainement pas bete ... pas du tout.
    Avant tout, je rectifie : Non, le processeur n'est pas l'interpréteur du language assemblé. Le processeur exécute du code machine. Code machine et code assembleur sont deux choses différentes. Le processeur ne connait même pas l'existence du code assembleur, il ne connait que le code machine ... tout le reste lui est inconnu.
    Bon ... ceci dit, je continue.
    Il existe, pour les languages de haut niveau, deux écoles.
    L'interpréteur et le compilateur. Plus le language est évolué, plus les instructions sont puissantes. L'interpréteur, une a une, traduit chaque instruction du language évolué en bloc de code machine et ensuite exécute ce bloc de code machine. Ensuite il passe a l'instruction du language évolué suivante et recommence ... jusqu'a la dernière.
    Le compilateur, lui, traduit " toutes " les instructions du language évolué en un seul gros bloc de code machine et ensuite exécute tout d'un coup.
    Un interpréteur, c'est un peu un compilateur " ligne par ligne ".
    La différence qui oppose interpréteur et compilateur est essentiellement un facteur de vitesse d'exécution. En principe, un interpréteur sera toujours pluis lent qu'un compilateur ... mais plus le language utilisé est puissant, plus cette différence diminue. Interpréter du code assembleur, d'un point théorique, pourquoi pas. Chaque instruction assembleur, une a une, serait traduite dans son correspondant machine et ensuite exécutée. Pourquoi pas dans le fond ! ... mais cela prendrait un temps énorme !
    Pour traduire et exécuter une seule instruction assembleur, par exemple mov eax,ebx , il faudrait des centaines d'instruction machine appartenant au programme qui interprète ... l'interpréteur luiu même. Alors qu'en principe, 95 % des instructions assembleur, correspondent chacune a une instruction machine ..... d'ou son nom de language de bas niveau ... le plus bas possible d'ailleurs. Ce qui veut dire que ..... si un language de haut niveau prend 2 fois plus de temps a etre exécuté par un interpréteur plutot qu'un compilateur, le language assembleur, lui, mettra peut etre 100 ou 500 fois plus de temps a etre exécuté par un interpréteur plutot que par un compilateur. C'est absurde !!! l'avantage essentiel du language assembleur est la vitesse et l'optimisation. Son interprétation jette tout ca a l'égout. Voila. Donc, théoriquement, ta question est même très intéressante ... pratiquement, cela n'aurait pas de sens. Bon, maintenant faut pas confondre avec le mot "émulateur" aussi. Ca, c'est encore autre chose ! Mais un réel interpréteur de language assembleur, ca n'existe pas ...

  6. #6
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Je complèterai la réponse de - Robby - tout en essayant de répondre a la question de l'émulation qui vient tout naturellement en lisant ce sujet.

    Il existe des émulateurs de PC... et on peux les classer dans deux catégories bien distincte :
    La premère est la plus répandue inclue les émulateurs où le processeurs "émulé" EST le processeur du PC : c'est le vrai processeur qui exécute les instructions. C'est par exemple le cas de VMWare. La deuxième catégorie est celle où l'émulateur émule aussi le microprocesseur, tel que Bosch...

    Les deux méthodes ont des avantages et inconvégnients : Si on émule le processeur, on va bien moins vite, mais on peut émuler un autre microprocesseur (Un AMD64bit par exemple)...

    De ce fait, les deux types d'émulateurs peuvent trouver leur utilité selon les circonstances...

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  7. #7
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    Si on veut jouer sur les mots, on peut même dire que le processeur est un interpréteur de langage binaire. En effet quand une instruction binaire arrive dans un processeur (Intel ou AMD) il faut d'abord qu'il la comprenne (ie qu'il l'interprète). Les processeurs actuels d'ordinateur sont de type CISC : ils connaissent énormément d'instructions élémentaires. Bref quand le code binaire correspondant à MOV EAX,EBX arrive, il faut que le processeur détermine qu'il veut faire un MOV et quels opérandes il devra utiliser. C'est d'ailleurs ce qui fait que les "gros" processeurs sont plus lents que les processeurs de type RISC qui ne connaissent que peu d'instructions. Ce type de processeur n'a pas besoin d'interpréter les codes binaires qui arrivent, il les exécute directement.
    Windows XP - Delphi 7
    Nous ne controlons une chose que si nous sommes capables de la détruire à tout moment. [Frank Herbert - Dune]

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 96
    Points : 116
    Points
    116
    Par défaut
    Les processeurs actuels d'ordinateur sont de type CISC
    Non pas du tt !!! Il existe pleins (euh) de processeurs RISC sur le marché (UltraSPARC, etc...)

    ref quand le code binaire correspondant à MOV EAX,EBX arrive, il faut que le processeur détermine qu'il veut faire un MOV et quels opérandes il devra utiliser.
    En faisant en plus toutes les modifications d'adressage quand le paging et/ou la segmentation sont activés
    Responsable du projet SKAN (OS à but didactique)
    Contactez moi pour toutes questions ou remarques sur le projet.

  9. #9
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Aller, on pousse encore :

    CISC : Complete Instruction Set Computers : Cela concerne les microprocessuers et microcontrôleurs tels que les x86, 68HC11, ... Les instructions prennent généralement plusieurs cycles d'horloge (On peut pas vraiment donner de moyenne... Ca dépends entre autre des modes d'adressage... Donc on va dire qu'au minimum, une instruction prends 2-3 cycles d'horloge)... Ces micros possèdent des centaines d'instructions... Les commandes et les données arrivent "à la queuleuleu"...

    RISC : Reduced Insctruction Set Computers : Ca conserve les Alpha (A vérifier, j'ai un doute d'un coup), les PIC, ... Les instructions prennent généralement un seul cycle d'horloge, les sauts conditiennels deux si il y a effectivement un saut. Il y a très peu d'instructions (a peine quelques dizaines)... La vitesse accrue est due au fait que les commandes et les données arrivent par des chemins différents, simultanément... Tout est donc lu d'un seul coup...

    Wala.... J'ai essayé de faire simple pour que les non-initiés ne soient pas perdus... On trouve plein d'infos sur le Web, n'hésitez pas a chercher si je vous ait mis l'eau à la bouche

    Bon développement !


    -- Edit --

    Ce que j'apelle COMMANDE et DONNEE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LDAA         #$FF
    Commande     Donnée

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  10. #10
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    oops

    Je me suis embrouillé dans les architectures de Von Neumann et Harvard. Il y a aissi biend des micro RISC que CISC qui utilisent deux bus porur transférer les commandes et les données...

    Désolé...

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  11. #11
    Membre régulier

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 59
    Points : 84
    Points
    84
    Par défaut
    Je suis tomber ici par erreur mais il existe bien des interpreteurs pour le language assembleur (language machine compilé) il suffit de regarder les emulateur pour atari amiga gameboy ... qui interpretre et execute sur un pc du langauge compiler pour une autre plate forme. pour ce qui est de l'emulation d'un pc (pas de windows) il existe un outil sous linux (dons j'ai perdu le non) qui emule une machine complete...

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 96
    Points : 116
    Points
    116
    Par défaut
    Je suis tomber ici par erreur mais il existe bien des interpreteurs pour le language assembleur (language machine compilé) il suffit de regarder les emulateur pour atari amiga gameboy ... qui interpretre et execute sur un pc du langauge compiler pour une autre plate forme. pour ce qui est de l'emulation d'un pc (pas de windows)
    Peut être mais...

    Ce que tu décris la, ce sont des émulateurs, c pas pareil !!!

    il existe un outil sous linux (dons j'ai perdu le non) qui emule une machine complete...
    Oui il en existe des tas (style vmwre ou bochs) et ils fonctionnent aussi sous win$
    Responsable du projet SKAN (OS à but didactique)
    Contactez moi pour toutes questions ou remarques sur le projet.

Discussions similaires

  1. Tutoriels, F.A.Q : la rubrique Assembleur de Developpez.com
    Par Alcatîz dans le forum Assembleur
    Réponses: 3
    Dernier message: 07/06/2007, 19h14
  2. ecrire son OS (assembleur ??)
    Par Anonymous dans le forum Programmation d'OS
    Réponses: 9
    Dernier message: 25/11/2002, 19h25
  3. Random en Assembleur
    Par funx dans le forum Assembleur
    Réponses: 9
    Dernier message: 02/09/2002, 17h05
  4. Créer un interpréteur de langage inspiré du Basic
    Par Picasso dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 11/05/2002, 17h10
  5. Quel désassembleur/assembleur pour un exe Windows ?
    Par Anonymous dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 17/04/2002, 10h59

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