持續更新...
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()函數內部調用了其他函數, 則執行到這一行系統會自動爲之新建一個幀。
生成新的幀叫入棧,棧的回收叫出棧,後進先出。
從內存的結束地址開始,從高位到低位分配。