汇编中调用main函数的问题
各位大哥,小弟想在汇编中调用main函数,碰到点问题,请各位大哥指点一下
pt.c:
#include<stdio.h>
//extern void add(int a, int b);
int
mian()
{
/* int i = add(4, 5);
printf("i = %dn", i);*/
printf("Hello World!n" //就是简单输出一句话
return;
}
#####################################
test_add.s:
#include"pt.c"
.section .data
format1:
.ascii "%%eax : %dn"
.ascii "%%ebx : %dn"
.byte 0
format2:
.ascii "result : %dn"
.byte 0
.globl _start
_start:
pushl $4
pushl $10
call add1
movl (%esp), %eax
addl $8, %esp
pushl %eax
pushl $format2
call printf
addl $8, %esp //这以上的几步就调用了另一个文件中的add函数,不影响
//程序,故add.s中的代码没有贴出
call main //这里在用ld链接的时候出提示没有定义
pushl $0
call exit
###########################################
我的编译步骤:
gcc -c -o pt.o pt.c
as -o test_add.o test_add.s
as -o add.o add.s
ld -dynamic-linker /lib/ld-linux.so.2 -lc -o test_add add.o pt.o test_add.o
然后提示:
test_add.o: In function `_start':
(.data+0x42): undefined reference to `main'
请各位大哥帮忙看看怎么回事,多谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我太Happy了,真的是把main整成mian了,汗
多谢大哥帮忙 !:p
回复 1# barloshi
> mian()
笔误?