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 ...