通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的

2023-07-29,,

实验一:通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的

学号:20135114

姓名:王朝宪

注: 原创作品转载请注明出处   《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

1

1)实验部分(以下命令为实验楼64位Linux虚拟机环境下适用,32位Linux环境可能会稍有不同)

使用

    gcc –S –o main.s main.c -m32

命令编译成汇编代码,如下代码中的数字请自行修改以防与他人雷同

    int g(int x)
    {
    return x + 3;
    }
    int f(int x)
    {
    return g(x);
    }
    int main(void)
    {
    return f(8) + 1;
    }

图一:简单的c程序代码

图二:实验楼操作过程

图三:通过反汇编c程序而生成的汇编代码

2)根据本周所学知识分析汇编代码的工作过程,撰写一篇署名博客,并在博客文章中注明“真实姓名(与最后申请证书的姓名务必一致) + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”,博客内容的具体要求如下:

题目自拟,内容围绕计算机是如何工作的进行;

博客中需要使用实验截图

博客内容中需要仔细分析汇编代码的工作过程中堆栈的变化

总结部分需要阐明自己对“计算机是如何工作的”理解。

代码分析:汇编代码工作过程中的堆栈变化

总结:存储程序计算机模型为冯诺依曼体系结构,计算机的CPU从IP所指向的内存中的代码段取一条指令执行,执行完IP自加1,再继续执行下一条,这就是计算机的工作过程。

3)请提交博客文章URL到网易云课堂MOOC平台,编辑成一个链接可以直接点击打开。

通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的的相关教程结束。

《通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的.doc》

下载本文的Word格式文档,以方便收藏与打印。