我们不能只用机器级语言编写程序吗?

时间:2013-11-08 18:04:10

标签: bios systems-programming

编译器将人类可理解的语言转换为机器级语言。我们不能只用机器级语言编写程序,这样程序就可以轻松快捷地执行。

3 个答案:

答案 0 :(得分:2)

是的,您可以在Linux下使用汇编程序进行编程。

例如,检查有关Stack Overflow的thisthis个问题。此外,Linux Assembly HOWTO看起来不错。

答案 1 :(得分:1)

  

编译器将人类可理解的语言转换为机器级语言。我们不能只用机器级语言编写程序,这样程序就可以轻松快捷地执行。

没有人用机器语言编写程序。正常的二进制exectuables 只是机器代码,所以尝试这样做是没有意义的。二进制包含机器代码,但包含特定的操作系统相关格式。例如,linux使用ELFlinkerloader(在* nix上,加载器是内核的一部分)可以理解这种格式。唯一存在未掺杂机器代码的地方是在系统内存中。

您可以用汇编语言编写程序,这与机器语言非常相似,但必须编译和链接。换句话说,它与用任何其他编译语言编写程序是一回事。

最后,通过格式化某些机器代码手动创建二进制文件不会带来任何好处,并且使用它将是一个无穷无尽的头痛。您可以将其作为学习练习,但不能用于任何实际目的。

答案 2 :(得分:0)

是的,但是你必须写更多然后需要更长的时间,所以使用更高级别的语言和编译器会更有效。通常情况下,编译器比仅仅人类可以做的更好(他们是这些编译器编写者非常优秀的程序员)。