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



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

  

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

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

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

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

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




  

相关话题

  如何评超威半导体(AMD)发布线程撕裂者Pro系列处理器?有哪些亮点和不足? 
  智能手机的流行,是否会造成年轻人不会用电脑只会用手机的现象? 
  求问“命令行的需求,命令行的本质,命令行究竟解决什么需求,命令行究竟又能带来什么好处”,到底是什么呢? 
  如何评价英伟达于 GTC 2021 大会发布的基于 ARM 架构的 Grace CPU? 
  六核/八核心处理器会成为主流处理器吗? 
  自己动手组装主机时,为什么大部分人说 AMD使用过程比英特尔更难搞,不适合小白? 
  32位保护模式下,段基地址应尽量选取16字节对齐的那些地址,可使访问的性能最大化? 
  我们为什么不尽早施行国产 CPU+国产 Linux 系统战略呢? 
  12400F和5600X那个性能和性价比强一些? 
  英特尔是否隐瞒实力,为了保留竞争对手? 

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





© 2025-03-12 - tinynew.org. All Rights Reserved.
© 2025-03-12 - tinynew.org. 保留所有权利