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 :

Notation eax,%eax et point d'entrée


Sujet :

x86 32-bits / 64-bits Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 58
    Par défaut Notation eax,%eax et point d'entrée
    Bonjour,

    j'essaie d'étudier l'Assembleur à mes heures perdues et quelques notions m'échappent.
    Sur un code Assembleur, qui est en fait un MBR d'un OS (poorOS), je trouve la notation.
    D'après ce que j'ai compris ça veut dire mettre la valeur décimale 54 dans le registre eax.
    Dans un autre code complètement différent je trouveet là j'ai compris que ça veut aussi dire 'mettre 54 dans eax'.
    Quelle est la différence (dans la signification) entre la notation et ?

    Je ne comprends pas non plus quel est le point d'entrée d'un code Assembleur ? Il en existe qu'un seul comme main() en C ou plusieurs en fonction du format de fichier (bin,elf...) ?

    Merci beaucoup pour vos futures réponses

  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
    Par défaut
    Bonjour,

    En réalité, les deux fragments de code veulent dire la même chose, c'est simplement la syntaxe qui diffère.

    Dans le premier cas (mov eax, 54) il s'agit de la syntaxe dites "Intel", alors que dans les second (mov %54, $eax) il s'agit de la syntaxe "AT&T".

    D'une manière générale la syntaxe Intel est commune au monde Windows (avec quelques différences propres aux différents programmes d'assemblage) alors que la syntaxe AT&T n'est présente que dans le monde des Unices (Unix, Linux, etc.). GAS (GCC), l'assembleur commun aux Unices ne supportait que la syntaxe AT&T - c'est pourquoi on en trouve beaucoup en ce qui concerne l'assembleur sous Linux par exemple - mais il supporte aujourd'hui les deux syntaxes.

    Wikipedia (en) a un petit chapitre à ce sujet: http://en.wikipedia.org/wiki/X86_ass...anguage#Syntax

    Je ne comprend pas non plus qu'elle est le point d'entré d'un code assembleur.
    il en existe qu'un seul comme main() en C ou plusieurs en fonction du format de fichier(bin,elf...)?
    Comme dans tout programme, il n'existe qu'un seul point d'entrée (la première instruction assembleur d'un programme à être exécutée lorsqu'un processus démarre).

    Ceci dit, le "main()" d'un langage de haut niveau ne correspond pas forcément au point d'entrée en assembleur, pour peu qu'il y ait du code d'initialisation avant d'appeler "main()". C'est dépendant du compilateur et de ses réglages...

Discussions similaires

  1. delphi32.exe Point d'entrée introuvable
    Par Négrier dans le forum EDI
    Réponses: 6
    Dernier message: 04/11/2005, 15h47
  2. mcinfo.exe-Point d'entrée introuvable
    Par Milouz79 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 03/08/2005, 21h31
  3. Export DLL et noms des points d'entrée
    Par Dozer dans le forum MFC
    Réponses: 5
    Dernier message: 03/06/2005, 09h49
  4. A quoi sert l'instruction test eax,eax ?
    Par microseb dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 25/01/2005, 21h12
  5. visualiser les points d'entrée d'un dll
    Par DenisLorrain dans le forum Windows
    Réponses: 4
    Dernier message: 06/07/2004, 00h20

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