我想写一个简单的操作系统,以供学习之用。我可以用C语言而不是汇编语言编写一个操作系统吗?范例:
int main() { asm("mov ax,70C0h" "add ax,520" "jmp $"); }
zkure5ic1#
你不能使用内联汇编编写操作系统,因为C编译器将编译和链接现有操作系统上的代码。它只能在你的操作系统上执行。我建议用汇编语言编写你的操作系统,然后用NASM(一种常见的x86编译器)编译它。我推荐this tutorial来创建你自己的 Bootstrap 。之后,您可以坚持使用16位真实的模式或切换到32-bit protected mode。
1条答案
按热度按时间zkure5ic1#
你不能使用内联汇编编写操作系统,因为C编译器将编译和链接现有操作系统上的代码。它只能在你的操作系统上执行。我建议用汇编语言编写你的操作系统,然后用NASM(一种常见的x86编译器)编译它。我推荐this tutorial来创建你自己的 Bootstrap 。之后,您可以坚持使用16位真实的模式或切换到32-bit protected mode。