OVH Cloud OVH Cloud

routine assembleur

2 réponses
Avatar
jean.dupont.3
Bonjour,
J'ai écris une routine en assembleur avec as que je souhaite appeler
dans un programme en c,sous linux, mais je ne sais pas comment
exporter le nom de la fonction dans le fichier source assembleur.
Merci d'avance.

2 réponses

Avatar
Richard Delorme
Bonjour,
J'ai écris une routine en assembleur avec as que je souhaite appeler
dans un programme en c,sous linux, mais je ne sais pas comment
exporter le nom de la fonction dans le fichier source assembleur.
Merci d'avance.


dans le source asm :

.global mafonction
mafonction:
/* la routine en assembleur */


Dans le source C, il faut déclarer un prototype de la fonction, par
exemple :

int mafonction(int arg1, int arg2);

PS : fr.comp.os.linux est inconnu chez moi...

--
Richard

Avatar
AnonymousFC3
Jean:
cela est probalement documente avec gcc. (Voir Linux Documentation
project).www.linuxdoc.org

Ceci dit il est aise de'ecrire une fonction courte en C, de la compiler avec
le "switch" qui genere le code assembleur source.
Tout y est, meme le passage de parametres!

A noter que passer un pointeur, un objet de donne ne s'applique qu'a un
objet similaire, Donc il serait utile si il faut passer des parametres
(aller et valeur retournee), de decrire une fonction similaire.

Sinon un document interessant est la specifification de l'ABI (apppl. Binary
Interface).

Evidement, tout ceci a surtout un interet academique: on peut a peu pres
ecrire tout en C... ou presque, et cela est plus facile.
Seul le tres bas niveau beneficie de l'assembleur...

Bonne chance.

Jean Dupont wrote:

Bonjour,
J'ai écris une routine en assembleur avec as que je souhaite appeler
dans un programme en c,sous linux, mais je ne sais pas comment
exporter le nom de la fonction dans le fichier source assembleur.
Merci d'avance.