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

C Discussion :

Intégrer un code assembleur dans un programme


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 65
    Par défaut Intégrer un code assembleur dans un programme
    slt tout le monde

    pouvez vous m'aider SVP a me donner un exemple programme C qui fait appel a des sous programmes en assembleur ?
    et pour la compilation ça necessite l'instalation d' un compilateur assembleur
    ou le compilateur C suffit tout seul

    merci d'avance
    en attente de votre réponse

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Salut,

    cela dépend de ton compilo...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  3. #3
    Membre chevronné Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Par défaut
    Lis ce tutoriel-là au chapitre 4 : http://beuss.developpez.com/tutoriels/pcasm/
    Sinon il y l'ASM inline mais c'est dépendant du compilateur et plus limité.

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 65
    Par défaut
    resalut

    oui je sais ;moi je possede le compilateur C sous windows, meme il y a des gens qui m'en disait que le compilateur c compile le fonctions assembleurs appelées par une source C.
    mais le probléme réside dans comment j'appelle des fonctions assembleurs dans un programme C ? ou j'intégre des instructions assembleurs de dans ?

    voici les etapes que j'ai trouvé dans une documentation Web:
    - creer des fichiers objets qui contiennet le code des fonctions assembleurs
    - les rendre exécutables
    -les rassembler dans une bibliothéque avec l'extension.h
    - les référencer ds le programme par le nom de la biblio.
    - puis les appeler normalement.

    mais comment faire ça?
    merci de me répondre le plus tôt possible
    c'est urgent
    et merci encore une fois

  5. #5
    Membre chevronné Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Par défaut
    Voilà un exemple pour FASM, en 32b :

    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
    format MS COFF
     
    public _f
    extrn _puts
     
    section '.text' code readable executable
    _f:
            push msg
            call _puts
            pop ecx
     
            ret
     
    section '.rdata' data readable
            msg  db  'Message', 0
    Tu crées un fichier objet (.obj) à partir de ça simplement en tapant "fasm fichier.asm".

    Puis tu crées un programme en C qui appelle la fonction f() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void f (void);
     
     
    int main (void)
    {
       f ();
     
       return 0;
    }
    Tu compiles le tout avec ton compilateur préféré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -Wall -Wextra fichier.c fichier.obj -o fichier.exe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cl /W4 /nologo fichier.c fichier.obj
    Il ne faut pas forcément ajouter les underscores au début des identifiants, ça dépend de la plate-forme. Si il y a quelque chose que tu ne comprends je ne peux que te conseiller de lire le tutoriel que j'ai linké dans l'autre message.

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par laracroft87 Voir le message
    pouvez vous m'aider SVP a me donner un exemple programme C qui fait appel a des sous programmes en assembleur ?
    C'est généralement possible, voire intégré à ton environnement de développement, mais la vraie question est "est-ce bien nécessaire ?"

    Qu'est que tu voudrais faire en assembleur que tu ne pourrais pas faire en C ?

Discussions similaires

  1. Intégrer du code Java dans un programme Qt en C++
    Par black_hole dans le forum Qt
    Réponses: 7
    Dernier message: 11/12/2012, 20h42
  2. Réponses: 4
    Dernier message: 22/04/2007, 08h31
  3. introduire du code assembleur dans un programme C++
    Par hzaki1986 dans le forum C++
    Réponses: 1
    Dernier message: 14/04/2007, 17h14
  4. probleme d'insertion de code assembleur dans du c++
    Par Pragmateek dans le forum C++
    Réponses: 4
    Dernier message: 05/03/2006, 23h30
  5. Réponses: 5
    Dernier message: 14/01/2006, 15h16

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