2010-05-18 83 views
1

實現一個自定義的虛擬機,我來使用寄存器(這些將存儲指針,並將爲空時爲空)。但是,我意識到我實際上不知道如何管理基於寄存器的內存。就像,如果我所有的寄存器都用完了,並且一些代碼需要另一個,我該怎麼辦?最好不要創建一個新的。
這是用C++編寫的。註冊管理技巧

回答

2

我不認爲這是機器的問題,而是它是機器程序員的問題。你可以做什麼(IMO)只是提供將寄存器的值來回移動到內存中的方法。問題解決了:)

+0

同意,這是編譯器或彙編寫入程序的問題,而不是VM。如果編譯器基於LLVM,那麼可以使用便捷的傳遞,這些傳遞可以執行內存 - >註冊和註冊 - >內存轉換(主要用於SSA),並且輸出寄存器分配器很好。 – 2010-05-18 18:51:16