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



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

  

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

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

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

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

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




  

相关话题

  苹果换自家M1 CPU能够那么快上市,为何国内操作系统和CPU公司为何不借鉴一下? 
  各位能给我提一些建议吗? 
  如何评价 Intel 公布的 Rocket Lake S-Series 桌面处理器? 
  计算机本科应届生薪资大多是多少? 
  如何将 C 语言发挥到极致? 
  面对大数据杀熟、算法困住骑手,民主促进会中央建议推行算法开发主体责任制,你怎么看? 
  搜索引擎给出完全相同的两个结果,但一个是广告链接,另一个才是正常结果,你会选择哪个呢? 
  为什么三星、台积电都要量产 7nm 了,而英特尔 10nm 量产持续跳票? 
  COM格式和EXE格式有什么区别? 
  一个N*N的矩阵,取值为0或1,有什么好的算法判断一行或一列全为1啊? 

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





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