L'assembleur et le langage C pour du graph

Fermé
blackfiever Messages postés 1 Date d'inscription lundi 1 janvier 2007 Statut Membre Dernière intervention 1 janvier 2007 - 1 janv. 2007 à 02:24
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 2 janv. 2007 à 02:09
Bonjour,

Pour un petit projet de Licence informatique, on doit faire afficher une chaine de caractere dans une fenetre X11 en assembleur mais en utilisant des fonctions de c.

Pour dabord simplifier mon programme, je fais :

-----------DEBUT GRAPH.C------------
#include <stdio.h>
#include <stdlib.h>
#include "f1.h"


void toto(void){
printf("sa marche");
}

---------------FIN----------------------




----------DEBUT GRAPH.H--------------
#ifndef _INCLUDE_GRAPH_H_
#define _INCLUDE_GRAPH_H_

void toto(void);

#endif
---------------FIN------------------------



------------DEBUT pp.asm ------------
BIT32

EXTERN toto

SECTION .data

SECTION .text
GLOBAL _start

_start:
call toto
add esp, 4
mov eax, 1
int 0x80

-----------------FIN--------------


Voila le probleme qu'elles sont les commandes pour reunir ces deux fichiers
pour compiler l'asm : nasm -f elf pp.asm
pour je pense compiler le graph.c et graph.h : gcc -c graph.c

mais apres kel sont les commandes pour les reunir "ld" "gcc"?? koi pour creer un executable et dire a pp.asm ke la focntion qu'on lui avait defini en extern est dans le fichier graph.c


Franchement merci à toute personne qui peut m'aider
A voir également:

1 réponse

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
2 janv. 2007 à 02:09
ld ou gcc c'est comme tu veux.

ld graph.o pp.o -o ton_appli

Avec gcc c'est la même commande mais si tu choisis gcc, il va chercher une fonction main qui n'existe pas puisque ton point d'entrée est _start.
Donc pour ça, il suffit de remplacer _start par main.
0