assembler-objektdatei mit gcc linken

Hallo,

ich habe ein Problem und zwar möchte ich mit Hilfe des c-Programms driver.c
Code:
int main()
{
	int status = 0;
	status = asm_main();
	
return status;
}

die Assemblerfunktion aus der Datei main.s
Code:
segment .text
        global  asm_main
asm_main:
        enter   0,0               ; setup routine
        pusha

        popa
        mov     eax, 0            ; return back to C
        leave                     
        ret

Edit: am Quelltext
ausführen.

Hierzu übersetze ich zuerst main.s mit
$nasm -f coff main.s
in die objektdatei main.o
und möchte nun beide linken mit
$gcc -o prog main.o driver.c
Nun bekomme ich folgende Fehlermeldung:
main.o: file not recognized: File format not recognized
collect2: ld gab 1 als Ende-Status zurück

Wieso erkennt der C Kompiler nicht die Objektdatei???
Hoffe ihr könnt mir weiter helfen
 
versuchs mal mit nasm -elf ;)
*alte make datei rauskram*
Code:
NASM?=nasm
GCC?=gcc
prog: asm_io.o driver.o namen.o
	$(GCC) -o namen driver.o asm_io.o namen.o
namen.o: namen.asm
	$(NASM) -f elf namen.asm
asm_io.o: asm_io.asm
	$(NASM) -f elf -d ELF_TYPE asm_io.asm
driver.o: driver.c
	$(GCC) -c driver.c
 
Zurück
Oben