试验4内容是比较多的,不过没关系,照着书上要求来,就可以
一.实验过程
1.不用main函数,编写f.c程序并保存在c:\minic下
编译时,没有问题

连接时,报错Linker Error:Undefined symbol ‘_main’in module C0S

错误信息说明,c语言的入口函数main函数是被C0S.obj所调用,错误信息与c0s.obj有关(因为c0s.obj是启动代码)
2.使用link.exe连接f.obj文件,生成f.exe文件,debug查看汇编代码,文件共有541个字节,不能正确返回,从反编译后的指令看到,偏移地址为0开始的程序就是我们编写的程序


3.编写m.c文件,编译,连接,debug查看m.exe的汇编代码

与上一个不能正确返回的程序比较,这个程序中我们编写的程序位于偏移地址为01FA的位置,这个程序有4.17KB字节。但是我们编写的部

本文探讨了C程序为何必须从main函数开始执行的机制,分析了C0S.obj文件的作用,以及如何通过修改该文件使程序跳过main函数。通过实验,深入理解了编译与连接过程,揭示了C语言程序运行的底层细节。
最低0.47元/天 解锁文章
5234

被折叠的 条评论
为什么被折叠?



