cs_david23
Messages postés3Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention 3 décembre 2002
-
27 nov. 2002 à 19:14
gblade
Messages postés85Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention19 mai 2003
-
3 déc. 2002 à 11:25
Quelqu'un pourrait-il m'expliquer la marche à suivre pour appeler un routine en assembleur depuis un code en C ou C++?
(syntaxe, passage de paramètre...)
Un petit exemple simple serait bienvenu.
(J'utilise gcc et nasm sous linux)
gblade
Messages postés85Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention19 mai 2003 27 nov. 2002 à 23:37
je travail sous win32 uniquement donc ca va etre dur de repondre mais pour le standard C les appels de fonctions de tte facon ont tjrs la mm syntaxe, les caracteristiques sont :
- passage des arguments de droite a gauche
- c la fonction appelante qui vide la pile
- ajout d'un underscore devant le nom des fonctions
- respect de la casse
voila c tt ce ke je sait ^^
pr un exemple je crois ke ca sera pas possible vu quon a pas le mm environnement
cs_david23
Messages postés3Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention 3 décembre 2002 29 nov. 2002 à 19:01
Ok. je vais être plus précis.
Je travaille habituellement uniquement en C++. Je débute en assembleur. Ce que je veux faire est appeler une routine assembleur depuis un programme C++.
Je compile le code C++ et obtient un fichier obfet 'machin.o'
J'assemble la routine en assembleur avec nasm -f elf ... et j'obtien un autre fichier objet 'routinetruc.o' J'aimerais ensuite pouvoir les linker ensemble (g++ -o executable routinetruc.o machin.o)
Evidement ça marche pas tout seul car le linker ne sais pas que la fonction que j'appelle depuis le C++ est codeé dans 'routinetruc.o'
Le seul truc qui me manque, c'est comment je déclare dans mon code assembleur ce lien.
cs_david23
Messages postés3Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention 3 décembre 2002 3 déc. 2002 à 11:09
j'ai pas réussi avec public (mauvaise syntaxe pour nasm ou je sais pas koi) mais avec GLOBAL, c'est ok! Merci.
Il me reste maintenant à en apprendre plus sur l'assembleur pour coder cette routine (string matching)...
Vous n’avez pas trouvé la réponse que vous recherchez ?