Estoy tratando de usar una función en ensamblado, invocada desde un proyecto C. Se supone que esta función llama a una función libc, digamos printf()
, pero sigo recibiendo un error de segmentación.llamando a funciones de ensamblado desde c
En el archivo .c tengo la declaración de la función digamos
int do_shit_in_asm()
En el archivo asm que tienen
.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
Cualquier
punteros
comentario será bienvenido.
as func.asm -o func.o
gcc prog.c func.o -o prog
+1 para el nombre de la función –
"Cualquier puntero sería apreciado": int * ptr; – Sapph
@Sapph +1 pero no ayuda :)) –