百科问答小站 logo
百科问答小站 font logo



程序在地址空间中的位置是何时,以及如何决定的? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

二进制入口是由编译器确定的,准确点说,是在链接的阶段确定的,这个值并不是一个特别固定的数值,只要不与操作系统的某些限制的区域有冲突,理论上说可以随便设置。

运行时,操作系统的加载器会根据可执行文件的入口参数把代码加载到指定位置并运行。

如果指定的位置已经被占用,操作系统有两种选择:1. 如果代码是可重定向的,根据重定向表把代码移动到另外一个位置上;2. 如果代码是不可重定向的,那么加载失败。

重定向是否允许,以及重定向表的设置,也是编译器控制的。




  

相关话题

  如何评价ARM新发布的 Cortex-A78以及Cortex-X1 ? 
  处理器和处理器型号区别是什么,我看一款电脑处理器型号是i7-11370H,处理器却是intel i5? 
  为什么 Windows 操作系统开很多应用和游戏都不会杀后台? 
  今天和搞计算机的朋友争论了,关于格斗游戏顶级玩家和电脑打的问题,谁赢?例如拳皇97,DNF? 
  一个脑洞:理论上,是否有可能用一根棍子记录无限多的信息? 
  为什么只听说 Windows 会有病毒,苹果 Mac 没有? 
  零基础如何学习计算机图形学? 
  为什么编程语言中没有一种 if,来判断大概率为真(或假)的情况,来提升 CPU 分支预测的速度呢? 
  市售的『USB 键盘记录器』可以记录和窃取账号密码,是什么原理? 
  请问从技术角度来看是鸿蒙操作系统,木兰编程语言,方舟编译器哪个技术水平更高一些? 

前一个讨论
CS:IP寄存器多任务模式下是怎么设置的?
下一个讨论
CPU(为方便讨论,这里仅限32位X86指令)的各种构架,比如奔3,奔4,对纯加法运算速度有帮助吗?





© 2025-04-15 - tinynew.org. All Rights Reserved.
© 2025-04-15 - tinynew.org. 保留所有权利