2016-07-25 47 views
2

据我所知,LLVM不会让你执行使用特定的处理器寄存器。这是否意味着使用LLVM的语言,不能用于开发OS,引导加载程序或例如需要直接访问寄存器的东西?在操作系统开发中可以使用基于LLVM的语言吗?

是否有任何其他原因LLVM IR 可以不能用于操作系统开发?

+0

对于需要访问特定特殊寄存器的部分,无论如何您都将使用汇编。 – fuz

+0

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

+1

如果这就是你所问的,是的,你不能。尽管如此,这种代码通常很少是操作系统的代码。你也无法用其他任何方式来摆脱它。 – fuz

回答

3

LLVM是一个抽象机器。因此,它不会直接允许您访问某些硬件寄存器。但是,仍然可以使用内联汇编(通过call asm LLVM位代码助记符)或编程几个需要访问程序集中的固定硬件寄存器的函数,并从LLVM代码中调用它们。

相关问题