2.3.1测试

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链接

代码段

数据段



原文地址:https://www.cnblogs.com/daijunxi2019/p/15485056.html