2016-07-25 82 views
2

據我所知,LLVM不會讓你執行使用特定的處理器寄存器。這是否意味着使用LLVM的語言,不能用於開發OS,引導加載程序或例如需要直接訪問寄存器的東西?在操作系統開發中可以使用基於LLVM的語言嗎?

是否有任何其他原因LLVM IR 可以不能用於操作系統開發?

+0

對於需要訪問特定特殊寄存器的部分,無論如何您都將使用匯編。 – fuz

+0

@FUZxxl這就是我要求的。所以我不能用LLVM讓它停止使用Assembly? – Mahdi

+1

如果這就是你所問的,是的,你不能。儘管如此,這種代碼通常很少是操作系統的代碼。你也無法用其他任何方式來擺脫它。 – fuz

回答

3

LLVM是一個抽象機器。因此,它不會直接允許您訪問某些硬件寄存器。但是,仍然可以使用內聯彙編(通過call asm LLVM位代碼助記符)或編程幾個需要訪問程序集中的固定硬件寄存器的函數,並從LLVM代碼中調用它們。

相關問題