gpt4 book ai didi

assembly - 搬迁的概念是什么?

转载 作者:行者123 更新时间:2023-12-02 10:49:44 25 4
gpt4 key购买 nike

我是 assembly 新手,因此想了解更多有关搬迁概念的信息。

  1. 为什么我们需要重新定位程序、数据?
  2. 具体是如何完成的?

如果有人可以用初学者级别的示例进行解释,那就太好了。

最佳答案

汇编器有一个源文件可供查看。它必须基于该源文件构建一个内存镜像。所以代码以 0 开头,数据也以 0 开头。结果进入目标文件。

现在,链接器出现了,需要将许多目标文件组合成可执行文件(或内核镜像,或其他)。它不能让每个人都为 0,他们会重叠。因此,它必须重新定位地址,以将每个对象文件的数据值分配到唯一的范围。

然后,当镜像被加载到虚拟内存中时,操作系统可能有充分的理由想要使用“0”以外的地址作为基虚拟地址。因此,在运行时,它想要再次重新定位所有内容。

最后,如果涉及共享库,汇编器和链接器都不知道它们在运行环境中的位置,因此必须重新定位对它们的引用。

关于assembly - 搬迁的概念是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16385826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com