我正在读:Levine,Linkers和Loaders。在第95页,他说:
Module-A 0->600H
Module-B 0->400H
Module-C 0->500H
在单段存储分配中,肯定应该是:
0-600 601-A01 A02-F03
?他说这是从0-F00 ???基本上他只是 连接所有模块......
我想知道是否有人可以推荐一本合适的书。我尝试着 了解链接器符号表,加载器,链接编辑器,GOT / PLT和 语言如何适应所有这些......准确地说..如果我有一个 一堆函数和变量/ c文件,它们如何存储在.obj中, .obj文件包含的内容(部分,段)以及它是如何实现的 适合ELF以及ELF如何适应分页内存.. 我发现莱文很难理解而且非常冗长......他有 在奔腾/ SPARC / IBM /摩托罗拉处理器上的东西似乎有点 过时和古老,令人难以置信的沮丧..我试过看 各种维基百科条目和谷歌搜索,但更糟糕的是!至今, 我发现的唯一体面的“书”是英特尔软件开发人员 手册第3卷,但不包括重新安置,也是如此 对于一个新手来说是先进和详细的 - 它有SSE等的东西。
我使用Linux,gcc,g ++等等......我只想清楚地了解一下 所有这些神秘的东西都意味着当你做一个objdump / nm现代 一天莱文,没有错误会很好..而且它会超级 如果它也涵盖了Microsoft PE格式..
我尝试过的英特尔SysV ABI非常出色,但事实并非如此 适合新手的人。
答案 0 :(得分:0)
现代莱文,没有错误会很好
Ian Lance Taylor最近实现了一个仅限ELF的链接器,并在series of blog posts中进行了描述。他们肯定比Levine更专注,更简洁。