网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>int Add(int x, int y)
{
int z = 0;
z = x + y;
return z;
}int main()
{
int a = 10;
int b = 20;
int c = 0;c = Add(a, b);
printf(“%d\n”, c);
return 0;
}
学习基础
在学习这个执行过程之前,我们需要找到反汇编 ,我们需要通过打断点运行并调试代码后在调试处,点击窗口然后就能够找到反汇编,此外我们还可以通过调试的监视窗口监视数据变化过程.
若对调试步骤有疑惑可以点击👉🔗:http://t.csdnimg.cn/nQiJn
学习开始
首先,为main函数先开辟栈帧空间
根据逐步运行结果可以发现esp地址减小了,说明ebp被压入栈内,esp上移
move是 将esp的值给ebp
给esp的地址减0E4h
将ebx压入栈顶,esp上移
将esi压入栈顶,esp上移
将edi压入栈顶,esp上移
动态理解
简化版过程动图:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
.net/topics/618636735)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!