Appeller une routine asm depuis Turbo C

CodeFighter Messages postés 8 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 8 novembre 2004 - 1 nov. 2004 à 23:40
CodeFighter Messages postés 8 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 8 novembre 2004 - 2 nov. 2004 à 15:56
Voila, j'ai ecris quelque routine de bas niveau en assembler, compilé dans un point obj, avec les symboles public déclaré comme tel.

Mais je n'arrive pas a les appellé depuis le c. Le linker me dit qu'elle n'existe pas !

Il doit avoir une astuce !!!

j'aisper que quelque pourra m'aider !!!

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
2 nov. 2004 à 15:42
tous les symboles globaux définis en C sont préfixés d'un underscore '_' . Dans l'ASM, il faut penser à le rajouter.

ex, si tu dit dans le code C qu'il y a une var externe nommée myvar, le linker recherchera _myvar.
0
CodeFighter Messages postés 8 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 8 novembre 2004
2 nov. 2004 à 15:56
Oui, je sais !

Dans mon module c, je declare un truc du style :

extern int Mafonction() ;

Et en asm :

Public _Mafonction

_Mafonction PROCEDURE

...

_Mafonction ENDP

Et pourtant ca marche pas, je comprend pas pourquoi !
0
Rejoignez-nous