我可以在C中使用asm()而不是asm吗?

b5buobof  于 2023-10-16  发布在  其他
关注(0)|答案(1)|浏览(108)

我想写一个简单的操作系统,以供学习之用。我可以用C语言而不是汇编语言编写一个操作系统吗?
范例:

int main()
{
asm("mov ax,70C0h"
    "add ax,520"
    "jmp $");
}
zkure5ic

zkure5ic1#

你不能使用内联汇编编写操作系统,因为C编译器将编译和链接现有操作系统上的代码。它只能在你的操作系统上执行。我建议用汇编语言编写你的操作系统,然后用NASM(一种常见的x86编译器)编译它。我推荐this tutorial来创建你自己的 Bootstrap 。之后,您可以坚持使用16位真实的模式或切换到32-bit protected mode

相关问题