Ich versuche, eine Funktion in Assembly zu verwenden, die von einem C-Projekt aufgerufen wird. Diese Funktion soll eine libc-Funktion aufrufen, sagen wir printf()
, aber ich bekomme immer einen Segmentierungsfehler.Aufruf von Assembly-Funktionen von c
In der C-Datei ich die Erklärung der Funktion des
int do_shit_in_asm()
In der .asm Datei
.extern printf
.section .data
printtext:
.ascii "test"
.section .text
.global do_shit_in_asm
.type do_shit_in_asm, @function
do_shit_in_asm:
pushl %ebp
movl %esp, %ebp
push printtext
call printf
movl %ebp, %esp
pop %ebp
ret
Alle
Zeiger
Kommentare geschätzt würde ich sagen lassen.
as func.asm -o func.o
gcc prog.c func.o -o prog
+1 für Funktionsname –
"Alle Zeiger würden geschätzt werden": int * ptr; – Sapph
@Sapph +1 aber es hilft nicht :)) –