了解程序语言在汇编级是如何执行的
cpu是如何维持堆栈的
堆栈:一个先进后出的结构
寄存器:一个cpu临时存储数据的地方,虽然存储空间小但是运行速度非常快
cpu不能直接进行例如加法、减法等运算操作,他必须将数据装入寄存器才能进行计算
EBP寄存器永远指向某一个函数栈帧的开始处
ESP寄存器永远指向一个函数栈帧的栈顶
栈从上向下生长
汇编中比较重要的的指令:
指针(c语言):
int x = 10;
int y = 20;
int *xp = &x;
int *yp = &y;
先来看看c语言的简单代码:
int demo(){
int x = 10;
int y = 20;
int sum = add(&x, &y);
printf("the sum is %d\n", sum);
return sum;
}
int add(int *xp, int *yp){
int x = *xp;
int y = *yp;
return x + y;
}
再