x86-64 下函數調用及棧幀原理

緣起 在 C/C++ 程序中,函數調用是十分常見的操作。那麼,這一操作的底層原理是怎樣的?編譯器幫我們做了哪些操作?CPU 中各寄存器及內存堆棧在函數調用時是如何被使用的?棧幀的創建和恢復是如何完成的?針對上述問題,本本文進行了探索和研究。 通用寄存器使用慣例 函數調用時,在硬件層面我們需要關注的通常是cpu 的通用寄存器。在所有 cpu 體系架構中,每個寄存器通常都是有建議的使用方法的,而編譯器
相關文章
相關標籤/搜索