任务详情:
0 推荐在OpenEuler系统中实现
1 编辑并运行2.3.1中的代码,要求在不修改t2.c 和 t1.c中main函数中的代码的情况下,程序运行结果是你的后四位学号。提交代码和运行结果截图。
2 网上学习objdump命令,提交不少于5篇博客链接和微信读书上的图书链接,并给出你认为最好的讲解资源的链接或图书名及章节
3 用objdump分析第1步中的可执行文件和目标文件,提交你的分析截图以及如何和教材讲解内容对应的,比如obj文件的文件头,代码段,数据段等,可执行文件如何链接mysum的。

1 编辑并运行2.3.1中的代码,要求在不修改t2.c 和 t1.c中main函数中的代码的情况下,程序运行结果是你的后四位学号。提交代码和运行结果截图。

书中2.3.1相关代码如下:

t1.c

#include <stdio.h>
 
int g = 100;
static int s;
 
int main()
{
    int a = 1;
    static int c = 3;
    int b = 2;
    c = mysum(a,b);
    printf("sum = %d\n",c);
    return 1;
}

t2.c

extern int g;
int mysum(int x ,int y)
{
    return x+y+g;
}

观察该程序可知,程序打印出整型变量c的值,在不更改main函数的情况下,将g改为1327,即可输出本人的后四位学号1330。

代码如下:

#include <stdio.h>

int g = 1327;
static int s;

int main()
{
    int a = 1;
    static int c = 3;
    int b = 2;
    c = mysum(a,b);
    printf("sum = %d\n",c);
    return 1;
}

extern int g;
int mysum(int x ,int y)
{
    return x+y+g;
}

相关截图如下:
20191330雷清逸 2.3.1测试
20191330雷清逸 2.3.1测试

2 网上学习objdump命令,提交不少于5篇博客链接和微信读书上的图书链接,并给出你认为最好的讲解资源的链接或图书名及章节

博客链接:
https://www.cnblogs.com/baiduboy/p/7061365.html
https://blog.csdn.net/q2519008/article/details/82349869
https://www.cnblogs.com/liuyimin/p/7344439.html
https://linux265.com/course/linux-command-objdump.html
https://blog.csdn.net/zhengqijun_/article/details/78192280

微信图书链接:
https://weread.qq.com/web/reader/96e32f205aba8a96e7e649a

我认为最好的讲解资源:
https://linux265.com/course/linux-command-objdump.html

相关文章:

  • 2021-12-21
  • 2022-02-06
  • 2021-07-17
  • 2021-08-12
  • 2021-12-25
  • 2021-05-22
  • 2021-06-27
  • 2021-06-05
猜你喜欢
  • 2021-11-23
  • 2022-02-14
  • 2021-12-08
  • 2021-07-27
  • 2022-01-06
  • 2022-02-20
  • 2021-12-06
相关资源
相似解决方案