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

    代码段

    数据段



  • 相关阅读:
    scss-数据类型
    scss-@import
    scss-&父选择器标识符
    scss-嵌套属性
    Python之NumPy(axis=0 与axis=1)区分
    Java map 详解
    java之JDBC多条语句执行
    p-value值的认识
    numpy.random之常用函数
    Python random模块sample、randint、shuffle、choice随机函数
  • 原文地址:https://www.cnblogs.com/daijunxi2019/p/15485056.html
Copyright © 2020-2023  润新知