是否有将机器代码转换为目标文件的名称?

问题描述

我很欣赏这可能是一个非常愚蠢的问题。在 ELF 文件或 Mach-O 文件中布置机器代码的过程是否有名称

我想了解更多有关该过程的信息,但我不确定要搜索什么。

链接”似乎是错误的词,因为在此之前构建目标文件

解决方法

您是说从一个平面二进制文件开始,然后使用 objcopy 创建一个 .o,并将该代码作为 .text 部分吗?我不知道它的标准术语,所以选择一些描述性的东西,比如“将它包装在目标文件元数据中”。

如果您的意思是从 asm 源开始,那么这只是组装的一部分。因此,如果您想具体一点,您会说“组装成目标文件”,而不是“组装成平面二进制文件”。

实际上,如果机器代码引用任何绝对地址(如 NASM 语法中的 mov edi,symbol,表示 nasm -fbin),组装成平面二进制文件基本上涉及链接。而不是仅仅为符号创建重定位条目,汇编器必须选择一个绝对地址作为参考点来计算文件中每个标签的绝对地址。这通常是链接器的工作。