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 :

Compiler un prog asm


Sujet :

Assembleur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 74
    Points
    74
    Par défaut Compiler un prog asm
    Bonjour,

    Je n'ait pas pu assister au 2 première semaines de cours en Assembleur et je suis en peu perdu et c'est pour ça que j'essaye de me ratrapper ce week-end....

    Voici le programme que le prof nous a donné:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    .MODEL small,stdcall
    .STACK 4096
    .386
     
    .DATA
    formule db "Bonjour à tous !",13,10,"$"
     
    .CODE
     
    main proc
    	mov ax,@data
    	mov ds,ax
    	mov es,ax
     
    ;affichage de la formule
    	mov ah, 09h
    	mov dx, offset formule
    	int 21h
     
    ;attente d'une touche
    	mov ah, 00h
    	int 16h
     
    ;fin du programme
    	mov ah, 4Ch
    	mov al, 0
    	int 21h
     
    ;et retour au DOS
    main ENDP
    END main
    J'ai beaucoup de mal à comprend ce programme....
    1) Que signifie les 2 première ligne ? Quelques caractéristiques d'un processeur ?
    2) Je ne voi pas à quoi peut bien servir cette ligne de code: "mov ah, 09h"....
    3)Je supose que "main", c'est le nom de la procédure exécutée en premier lors de l'éxécution du programme (idem que le C) ???
    4)Je supose que la ligne "main ENDP" indique la fin de la procédure ? Mais à quoi sert "END main", alors ?
    -Le reste du programme je ne croit pas que le prof l'a expliqué.

    Et le plus gros problème: comment le compiler ?
    J'ai esseyé avec nasm mais j'ai plein d'erreur, pourquoi ? Les compilateurs ne sont pas compatible entre eux ?

    Merci d'avance...

    edit: Les msg d'erreur du compilateur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ nasm asm110.asm 
    asm110.asm:4: error: attempt to define a local label before any non-local labels
    asm110.asm:4: error: parser: instruction expected
    asm110.asm:5: error: attempt to define a local label before any non-local labels
    asm110.asm:5: error: parser: instruction expected
    asm110.asm:6: error: attempt to define a local label before any non-local labels
    asm110.asm:8: error: attempt to define a local label before any non-local labels
    asm110.asm:13: error: parser: instruction expected
    asm110.asm:20: error: comma or end of line expected
    asm110.asm:33: error: symbol `main' redefined
    asm110.asm:33: error: parser: instruction expected
    asm110.asm:34: error: parser: instruction expected

  2. #2
    Invité
    Invité(e)
    Par défaut
    Je ne suis pas très bon mais je pourrais répondre à ta deuxième question en fait le mov ah,09h sert juste à appeler une interruption...
    C'est à dire que MOV AH,09h séléctionne la fonction 9...
    Puis la deuxième ligne envoie l'adresse de la chaîne à BX...
    Ensuite int 21h apelle l'interruption et lit AH, et BX pour savoir quoi faire...
    Si tu veut en C, on apelle ça passé des arguments...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 74
    Points
    74
    Par défaut
    Merci de ta réponse...

    Est-ce que quelqu'un saurait me dire pourquoi ça ne compile pas ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 74
    Points
    74
    Par défaut
    J'ai su compiler mon programme avec masm615 (en 16 bits)...mais pourquoi avec les autres compilateurs ne veulent pas compilé mon programme ?

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 84
    Points : 78
    Points
    78
    Par défaut
    Salut,

    En fait tu ne peux compiler du code fait pour MASM avec un autre compilateur, car chaqu'un utilise son propre format de fichier.

Discussions similaires

  1. [ASM] - Compiler des ligne ASM
    Par TOTO32 dans le forum Langage
    Réponses: 10
    Dernier message: 03/09/2005, 17h27
  2. [langage] compiler un prog perl
    Par mike21 dans le forum Langage
    Réponses: 20
    Dernier message: 23/11/2004, 17h57
  3. Comment compiler un prog Gtk sous Debian ?
    Par GLDavid dans le forum GTK+
    Réponses: 3
    Dernier message: 25/06/2004, 19h49
  4. compiler un prog open gl
    Par bobbyf dans le forum OpenGL
    Réponses: 2
    Dernier message: 11/03/2004, 08h22
  5. [TP]Compiler un prog sans entrer dans TP7
    Par poppels dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 23/10/2002, 18h46

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