1

根据大英百科全书汇编语言是

主要是特定计算机机器语言的符号等价物。

如果这是真的,为什么汇编程序喜欢 GAS 输出带有标题的文件?

我确信 ELF/Mach-O/PE 标头不是“机器语言”。

那么为什么汇编器不只是 汇编 汇编语言并将二进制文件的格式化留给链接器呢?

4

1 回答 1

2

问题是机器直接运行汇编,但操作系统必须为二进制文件设置一个执行位置。这就是为什么你有像 ELF 头这样的东西。您的操作系统需要知道代码在哪里、BSS 部分、在哪里加载数据等等。如果没有这些信息,如果您只给它原始程序集,操作系统就无法正确加载它。

如果您有带有内联数据的汇编代码(编码到指令中),那么您可以说标头是不必要的,但这种情况很少见。

于 2012-04-23T04:13:01.660 回答