2020-2021-1 20209308《Linux内核原理与分析》第二周作业 实验一:反汇编一个c程序

  • 过程
    - 1.编写简单的c语言程序
    - 2.反汇编指令 gcc –S –o main.s main.c -m32
    - 3.将无用信息删除后的最后结果2020-2021-1 20209308《Linux内核原理与分析》第二周作业
实验一:反汇编一个c程序

  • 分析
    - 模拟堆栈2020-2021-1 20209308《Linux内核原理与分析》第二周作业
实验一:反汇编一个c程序

  • 总结:计算机在工作时,给每个函数执行时先将函数的地址推入底层堆栈,再将足够的连续的一片内存分给函数程序,函数所需的参数在函数被调用之前就存入栈,方便时常的访问。栈中内存从高地址运行至低地址,一行一行直至函数运行完,或者执行call的指令调用了其他的函数,通过ret指令返回到主函数,最后通过leave指令释放栈。在栈执行中会使用寄存器来保存各种数据或者数据中的地址,eax为累加寄存器,ebx为基址寄存器,ecx计数寄存器,edx数据寄存器;也有专门储存指令的寄存器eip,和堆栈的指针寄存器esp,ebp。