彙編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()函數內部調用了其他函數, 則執行到這一行系統會自動爲之新建一個幀。

生成新的幀叫入棧,棧的回收叫出棧,後進先出。
從內存的結束地址開始,從高位到低位分配。





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