2.3.1测试
0 在OpenEuler系统中实现
1 编辑并运行2.3.1中的代码,要求在不修改t2.c 和 t1.c中main函数中的代码的情况下,程序运行结果是你的后四位学号。提交代码和运行结果截图。
本次实验在openeuler系统中实现 本人学号后四位为1313,为使运行结果为1313,修改 g 的值为1310。t1.c文件
t2.c文件
用gcc把源文件转换成二进制可执行文件
gcc t1.c t2.c
如图可见编译后运行的结果为1313
2 网上学习objdump命令,提交不少于5篇博客链接和微信读书上的图书链接,并给出你认为最好的讲解资源的链接或图书名及章节
博客链接
https://blog.csdn.net/q2519008/article/details/82349869
https://blog.csdn.net/u014608280/article/details/81948141
https://www.cnblogs.com/zendu/p/4987879.html
https://www.cnblogs.com/baiduboy/p/7061365.html
https://www.cnblogs.com/xiangjunhong/p/12749675.html
https://www.cnblogs.com/ZhaoKevin/p/12329667.html
https://blog.csdn.net/wwchao2012/article/details/79980514
图书链接
https://weread.qq.com/web/reader/db8329d071cc7f70db8a479
个人认为最好的博客
https://www.cnblogs.com/xiangjunhong/p/12749675.html
https://blog.csdn.net/wwchao2012/article/details/79980514
3 用objdump分析第1步中的可执行文件和目标文件,提交你的分析截图以及如何和教材讲解内容对应的,比如obj文件的文件头,代码段,数据段等,可执行文件如何链接mysum的。
objdump -f a.out
-f
--file-headers
显示objfile中每个文件的整体头部摘要信息。
objdump -h a.out
-h
--section-headers
--headers
显示目标文件各个section的头部摘要信息。
objdump -S a.out
-S
--source
尽可能反汇编出源代码,尤其当编译的时候指定了-g这种调试参数时,效果比较明显。隐含了-d参数。
显示t1.c的汇编代码
gcc -S -o t1.s t1.c
目标文件反汇编
gcc -c -o t1.o t1.c
objdump -s -d t1.o > t1.o.txt
目标文件t1.o的反汇编结果输出到文件t1.o.txt。
相同的将目标文件t2.o的反汇编结果输出到文件t2.o.txt。
可见callq将mysum链接
代码段
数据段