Linux汇编代码学, 反汇编简单C及分析汇编代码工作流程
发布时间
阅读量:
阅读量
经过的普通用户+如需引用或转载,请注明出处 + 《Linux内核分析》MOOC课程(https://mooc.study.163.com/course/USTC-1000029000)
现代计算机普遍采用了冯·诺依曼体系结构这一设计理念。其核心理念体现在程序由存储于内存中的指令驱动CPU运行的机制上,并通过eip(32位)寻址机制实现对内存的操作。这周课程深入学习了基于Linux系统的汇编语言(如AT&T汇编)等知识。
作为本周课程的一部分,在指导我们进行反汇编的过程中,请完成对一个简单C语言程序的反汇编操作;在完成该过程后深入分析其运行机制,并深入理解现代计算机的工作原理。
c语言代码
int g(int x)
{
return x+3;
}
int f(int y)
{
return g(y);
}
int main(void)
{return f(2)+4;
}
汇编代码及分析:使用gcc -S -o main.s main.c -m32生成32位的汇编文件main.s
删掉以点开头的代码,链接作用
g: 函数g
pushl %ebp 将ebp入栈 ,esp-4
movl %esp, %ebp 栈顶指针保存到ebp
以下是改写的文本
main:
pushl %ebp ebp入栈,esp-4
全部评论 (0)
还没有任何评论哟~
