【发布时间】:2011-04-20 08:09:34
【问题描述】:
我正在尝试纯粹用汇编语言编写内核。我该如何进行开发环境和一般设置,让我可以控制我想要它做什么?
【问题讨论】:
-
我有一种感觉,如果你不得不问这个问题,你可能给自己定了太高的目标......
-
您是否熟悉其他环境中的非平凡汇编语言编程?你能理解用 c 编写的 OS 内核在做什么吗?如果你不能回答“是”。对于这两个问题,您可能希望从不太复杂的层面开始......
-
您可能希望对您的问题更具体一点。您还没有告诉我们您正在使用哪种汇编语言进行编程,因此很难推荐一个环境。除了“让我控制我想做什么”是什么意思?你到底想做什么?一般来说,您在问题中提供的信息越多,您就越有可能得到对您有帮助的答案(而不是其他人认为可能对您有帮助的答案)。既然您说您正在尝试添加到已经获得的信息,那么您已经拥有什么信息?
-
@ManX:我断言,与使用 C 相比,您开发的程序集的性能将更差。编译器非常非常好。你知道,对,C 编译成与汇编相同的机器代码?换句话说,您的 C 不会被解释。不强调这一点,但您不能像编译器那样生成高性能的代码。而且你仍然可以在你的 C 代码中使用内联汇编。
-
如果你没有读过编译器的汇编输出,你就无法判断它的效率。一般来说,人类编写的代码很差。在优化编译器方面投入了大量精力,以便人们可以编写糟糕的代码并使其快速执行。指令调度也很困难。分支预测也很有趣。可以针对瓶颈编写手工组装的程序,但对整个操作系统执行此操作是不可行的,除非您有大约十年的空闲时间,然后 CPU 和编译器将继续前进,您的代码将仍然 慢一点。