我正在尝试在程序集中使用从 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