程序运行时载入内存中的某些地址不改变

程序运行时载入内存中的某些地址不改变,第1张

那只是虚拟内存,在windows以前的dos系统,都是单任务,一个程序可支配所有内存,所以地址可以不变,windows想继承这种模式,但同时运行的程序太多,于是有了虚拟内存,程序A在使用1号内存,程序B也在使用1内存,都自认为在使用1号内存,可 *** 作系统已为他们分配好了不同内存,程序不变, *** 作系统来分配,所以可以有固定的地址,不与其他程序冲突。

编译器负责编址,保证程序内部对地址的正确访问;而程序加载起才负责真正的将需要的程序加载到需要的内存地址上去。

因此vstart使用的时机是预先知道程序被加载到某处。

由于程序知道自己将来会被加载器放到某个地址,所以告诉编译器把它编成这个地址,将来CPU用此地址才能找到它 。而vstart就是告诉编译器以新的数字作为后面数据的起始地址,它本身没有改变数据本身在文件中的地址。

以上就是关于程序运行时载入内存中的某些地址不改变全部的内容,包括:程序运行时载入内存中的某些地址不改变、编译器和程序加载器、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9436973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存