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 16-bits Assembleur Discussion :

Lier du code Assembleur à du code C


Sujet :

x86 16-bits Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Par défaut Lier du code Assembleur à du code C
    BONJOUR:
    je suis encore débutant en langage Assembleur. Je voudrais utiliser une fonction écrite en asm dans mon code C; le problème est qu'elle ne marche pas. Le compilateur DEVc++ affiche <<\Untitled12.cpp expected `(' before '{' token >> c'est la ligne ou apparait le mots asm
    Aidez-moi svp à lier ce code. Merci à l'avance.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    // Procedure de saisie d'un caractere au clavier :
    // _ Appel procedure en c 5.1 Microsoft
    int saisie_car (unsigned int *ptr_car )
    {
    // _ le retour se fait dans le registre AL
    // _ AX = 0 , pas de caractere recu
    // - AX = 1 , un caractre recu
    // _ Definition du caractere envoye
    // _ 0 < car < 0x100 : codes ascii standart + codes ascii
    // etendu
    // _ 0xFF < car < 0x1FF : codes des cles IBM etendu ,
    // code de la cles + 0x100
     
     
     
    // PUBLIC _saisie_car
     
    //_saisie_car proc near
    // sauvegarde du contexte
    asm {
    push bp
    mov bp,sp
    push si
     
    //pointe l'adresse du caractere a metre a jour
    mov si,4[bp]
     
    //saisie du caractere
    mov ah,6
    mov dl,0x0ff
     
     
     
    int 0x21
    jz err //pas de caractere recu
    //un caractere est recu test si sequence escape(code cles IBM etendu)
    cmp al,0
    jz etendu //sequence caractere escape
    //mise a jour du carractere recu : codes standarts et etendu ascii
    xor ah,ah
    mov [si],ax
    mov al,byte ptr 1
    jmp fin
    //saisie du second caractere
    etendu:
    mov ah,6
    mov dl,0x0ff
    int 0x21
    jz err //pas de second caractere
    //pointe le caractere
    mov ah,al
    xor al,al
    mov [si],ax
    mov al,byte ptr 1
    jmp fin
    //pas de caractere recu , retourne faux et code nul
    err: xor al,al
    xor ah,ah
    mov [si],ax
    //restitution du contexte
    fin: pop si
    pop bp
    ret
    }
    }
    //_saisie_car endp
    main()
    {unsigned int ptr_car;int n;
    n= saisie_car (&ptr_car ) ; }

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Dev-CPP utilise le compilateur MinGW (un portage de GCC sous windows),et malheureusement GCC ne reconnaît pas cette syntaxe pour ajouter du code assembleur dans ton code C...

    Pour la syntaxe gcc, voir http://www.ibiblio.org/gferg/ldp/GCC...bly-HOWTO.html (en anglais)

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Par défaut
    merci pour le lien mais ceci ne parait pas facile

  4. #4
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bah qui a dit que la programmation était facile?

    Sinon,pour pouvoir utiliser la syntaxe que tu as utilisée,il faudrait passer par le compilateur C++ de microsoft...

    Sinon,t'as pas vraiment le choix

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Par défaut
    Citation Envoyé par supersnail Voir le message
    Bah qui a dit que la programmation était facile?

    Sinon,pour pouvoir utiliser la syntaxe que tu as utilisée,il faudrait passer par le compilateur C++ de microsoft...

    Sinon,t'as pas vraiment le choix
    merci beaucoup pour ta reponse ;n'importe quelle version de c++ peut compiler ma code?

  6. #6
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Je pense oui...

    Tu peux prendre la version express,normalement ça compilera (mais bon,c'est pas portable )

Discussions similaires

  1. Transformation d'un code Assembleur en code C
    Par cedric06000 dans le forum Assembleur
    Réponses: 1
    Dernier message: 24/07/2009, 11h04
  2. Editer/colorer syntaxiquement du code assembleur
    Par gnogno dans le forum Langage
    Réponses: 8
    Dernier message: 26/09/2005, 22h34
  3. Réponses: 5
    Dernier message: 21/12/2004, 18h12
  4. Outils d'analyse statique de code assembleur ?
    Par atomic dans le forum Assembleur
    Réponses: 4
    Dernier message: 11/06/2004, 11h42
  5. Peut-on faire du son juste avec du code assembleur ?
    Par Rick1602 dans le forum Assembleur
    Réponses: 7
    Dernier message: 26/03/2004, 17h39

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