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