我可以在C中使用asm()代替asm吗?

问题描述 投票:0回答:1

我想写一个简单的操作系统用于学习目的。 我可以使用 C 语言的 asm() 而不是汇编语言来编写操作系统吗?

示例:

int main()
{
asm("mov ax,70C0h"
    "add ax,520"
    "jmp $");
}
c operating-system assemblies
1个回答
0
投票

您无法使用内联汇编编写操作系统,因为 C 编译器将在现有操作系统上编译和链接代码。之后它只能在您的操作系统上执行。我建议用 Assembly 编写操作系统,然后使用 NASM(一种常见的 x86 编译器)进行编译。我推荐使用本教程来创建您自己的引导加载程序。之后您可以坚持使用 16 位实模式或切换到 32 位保护模式

© www.soinside.com 2019 - 2024. All rights reserved.