2014-10-01 37 views
0

我一直在寫基於x86-64架構的最新小內核。當照顧一些用戶空間代碼時,我意識到我幾乎不使用rbp。然後,我看了一些其他的東西,發現編譯器現在變得越來越聰明,他們真的不再使用rbp了。 (我可能在這裏是錯的。)rbp/ebp(x86-64)寄存器仍然以傳統方式使用嗎?

我想知道是否在許多情況下不需要常規使用rbp/epb,或者我在這裏是錯誤的。如果不需要這種用法,那麼它是否可以像通用寄存器一樣使用?

由於

回答

0

它僅需要如果你在你的堆棧幀(記錄數組長度將需要更多的存儲器和更多的計算)具有可變長度的陣列。它不再需要展開,因爲現在有用於此的元數據。

如果您手動編寫整個裝配功能,但它是誰呢?程序集只能用於粘貼到C(或其他)函數中。

相關問題