вызов функций сборки из c

Я пытаюсь использовать функцию в сборке, вызванную из проекта C. Эта функция должна вызывать функцию libc, скажем printf () , но я продолжаю получать ошибку сегментации.

В файле .c у меня есть объявление функции, скажем

int do_shit_in_asm()

В файл .asm, у меня есть

.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

Любые указатели комментарии будут оценены.

as func.asm -o func.o

gcc prog.c func.o -o prog
26
задан buruzaemon 1 July 2014 в 01:48
поделиться