汇编1

持续更新...
1、CPU自带寄存器, 为了方便快速处理数据
最频繁读写的数据(比如循环变量)都放在寄存器里面

2、ESP寄存器保存当前Stack地址

3、内存模型:堆
程序运行时,系统自动分配一段内存, 程序运行中,对于动态申请内存(新建对象,malloc),系统从预先分配的内存划一部分给用户, 这种主动请求而划分出来的内存叫做Heap(堆)
不会自动消失,必须手动释放。

4、内存模型:栈
函数运行而临时占用的空间
比如:
int main() {
   int a = 2;
   int b = 3;
}
上面代码,开始执行main()函数时为它在内存里面建立一个frame(帧),所有内部变量都在里面,函数执行完自动回收该帧,释放内部变量
从内存的开始地址开始(开始地址会存有少许数据),从低位到高位分配。
假如说:
int main() {
   int a = 2;
   int b = 3;
   return add_a_and_b(a, b);
}
main()函数内部调用了其他函数, 则执行到这一行系统会自动为之新建一个帧。

生成新的帧叫入栈,栈的回收叫出栈,后进先出。
从内存的结束地址开始,从高位到低位分配。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章