为什么像GAS这样的汇编器输出的不仅仅是二进制?

时间:2012-04-23 04:08:40

标签: assembly executable gas

根据不列颠百科全书汇编语言

  

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

如果这是真的,为什么像GAS这样的汇编程序会输出带标题的文件?

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

那么为什么汇编程序 只是 汇编汇编语言并将二进制文件格式化为链接器?

1 个答案:

答案 0 :(得分:2)

问题是机器直接装配,但操作系统必须为二进制文件设置一个位置。这就是为什么你有像ELF标题的东西。您的操作系统需要知道代码的位置,BSS部分,加载数据的位置等等。如果没有此信息,操作系统无法正确加载,如果您只是给它原始组件。

如果您的汇编代码包含内联数据(编码到说明中),那么您可以说标题是不必要的,但很少出现这种情况。