目标文件的结构

时间:2010-09-12 11:06:29

标签: assembly x86 symbols object-files

我在连接我的装配时遇到了一些问题。我使用NASM进行组装,然后将其与ld链接。一个小问题是GLOBAL指令只有在我定义.data部分时才有效。我相信它背后有一些合理的东西,但仍然导出符号的重要性如何?(我决定使用coff因为那是与g ++和-c选项产生的最相似的格式。主要的问题是,即使我设法链接它,调用导致一些地址,功能不存在。感谢您阅读时间,如果您有一些建议或关键字,我应该谷歌来获取关于链接和符号的内容,这将是非常好的。

1 个答案:

答案 0 :(得分:1)

我没有在Windows上使用过nasm,但是从查看nasm -hf的输出我猜你想要win32格式,而不是coff。 COFF格式是较旧的目标文件格式,现在在Windows上使用的PE-COFF(或仅“PE”)格式是较新版本。

至于为什么在GLOBAL指令生效之前需要指定SECTION,我没有看到这种行为。您是否有可能在标签之前没有宣布您的GLOBAL?或者可能发出符号,但是如果例如,则无法提供正确的链接。它的目的是作为数据变量,但在.text部分中分配了空间。