Intégrer une procédure Assembleur dans un programme C - Programmation
Marsh Posté le 23-02-2001 à 21:12:32
Dans ton fichier asm tu déclares effectivement ta fonction en public :
PUBLIC TaFonction
Et dans le C
extern void TaFonction(int, int, ...)
Par contre tu seras peut-être amené à changer la déclaration de la fonction dans le fichier asm en fonction du format d'exportation utilisé par ton compilateur. Pour t'en assurer, édite une lib générée avec ce compilo dans un éditeur hexa, et regarde s'il ajoute des caractères au nom de la fonction (qui apparaît explicitement sous forme d'une chaîne de caractère).
Watcom par exemple ajoute un "_" après le nom, Visual l'exporte tel quel il me semble ...
Marsh Posté le 23-02-2001 à 21:20:55
Ok c'est vraiment génial. Et je suppose que je dois linker en même temps l'obj de ma procédure avec l'obj de mon programme C.
ENCORE UN GRAND MERCI.
Marsh Posté le 23-02-2001 à 21:25:44
dans ton C
extern ma_fonction(int a);
dans ton asm
ma_fonction: ...
Marsh Posté le 23-02-2001 à 21:50:57
z51 a écrit a écrit : Dans ton fichier asm tu déclares effectivement ta fonction en public : PUBLIC TaFonction Et dans le C extern void TaFonction(int, int, ...) Par contre tu seras peut-être amené à changer la déclaration de la fonction dans le fichier asm en fonction du format d'exportation utilisé par ton compilateur. Pour t'en assurer, édite une lib générée avec ce compilo dans un éditeur hexa, et regarde s'il ajoute des caractères au nom de la fonction (qui apparaît explicitement sous forme d'une chaîne de caractère). Watcom par exemple ajoute un "_" après le nom, Visual l'exporte tel quel il me semble ... |
Ok c'est vraiment génial. Et je suppose que je dois linker en même temps l'obj de ma procédure avec l'obj de mon programme C.
ENCORE UN GRAND MERCI.
Marsh Posté le 23-02-2001 à 20:50:24
Bonjour,
Dernièrement j'ai reçu un dossier en Assembleur dans lequel je devais ecrire une procédure et non pas une MACRO avec laquelle je devais l'intégrer dans un programme C et faire appel de cette procédure dans ce programme C. Cependant je n'ai trouvé aucune informations concernant cette manipulation. On m'a dit qu'il fallait déclarer dans le code source du fichier ASM la procédure en PUBLIC et faire appel de cette procédure en C en EXTERN. Mais pour l'instant cela ne veut pas marcher du tout. POUVEZ VOUS M'AIDER??? Je suis totalement bloqué !!! Je vous remercie d'avance et espère que vous avez réponse à ma question. A bientôt.