问题一:
【2.4 模块拼接 -- 静态链接】 一节最后一段中,讲到链接之后,变量var的地址确定下来为0x1000。为什么链接之后var的地址就确定了呢?
自问自答: 【1.5 内存不够怎么办】小节中讲到了虚拟内存,是因为可执行程序的虚拟内存都是从0到某个最大值,所以在链接的时候var的虚拟内存其实已经确定了。程序在运行过程中,var的虚拟内存是不会改变的,变更的只是物理内存。因此在链接的时候,只要把var的虚拟内存地址放到指令中即可。
【2.4 模块拼接 -- 静态链接】 一节最后一段中,讲到链接之后,变量var的地址确定下来为0x1000。为什么链接之后var的地址就确定了呢?
自问自答: 【1.5 内存不够怎么办】小节中讲到了虚拟内存,是因为可执行程序的虚拟内存都是从0到某个最大值,所以在链接的时候var的虚拟内存其实已经确定了。程序在运行过程中,var的虚拟内存是不会改变的,变更的只是物理内存。因此在链接的时候,只要把var的虚拟内存地址放到指令中即可。