我正在尝试在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
void*
,对吗? - user541686