我想写一个简单的操作系统用于学习目的。 我可以使用 C 语言的 asm() 而不是汇编语言来编写操作系统吗?
示例:
int main() { asm("mov ax,70C0h" "add ax,520" "jmp $"); }
您无法使用内联汇编编写操作系统,因为 C 编译器将在现有操作系统上编译和链接代码。之后它只能在您的操作系统上执行。我建议用 Assembly 编写操作系统,然后使用 NASM(一种常见的 x86 编译器)进行编译。我推荐使用本教程来创建您自己的引导加载程序。之后您可以坚持使用 16 位实模式或切换到 32 位保护模式。