Operating system 哪种寻址模式允许在不改变代码的情况下重新定位?

Operating system 哪种寻址模式允许在不改变代码的情况下重新定位?,operating-system,computer-architecture,Operating System,Computer Architecture,这些选择包括: 索引寻址 基址寄存器寻址 PC相对寻址 索引和基址寄存器寻址都是通过将各自寄存器(索引/基址寄存器)的内容添加到地址代码中提到的地址来实现的。 [尽管细微的区别是索引寄存器的内容作为数组的“索引”,而基寄存器的内容作为数组的“基”地址] 要使代码可重定位,只需更改基址/索引寄存器的内容,但这也只能通过执行一些附加代码来实现 PC相对模式仅引用与当前PC内容相关的其他指令 那么,选项3是最佳答案吗 谢谢 有多个部分: -数据:这是关于加载二进制的值 -代码:这是关于跳转和调用的 数

这些选择包括:

  • 索引寻址
  • 基址寄存器寻址
  • PC相对寻址
  • 索引和基址寄存器寻址都是通过将各自寄存器(索引/基址寄存器)的内容添加到地址代码中提到的地址来实现的。 [尽管细微的区别是索引寄存器的内容作为数组的“索引”,而基寄存器的内容作为数组的“基”地址]

    要使代码可重定位,只需更改基址/索引寄存器的内容,但这也只能通过执行一些附加代码来实现

    PC相对模式仅引用与当前PC内容相关的其他指令

    那么,选项3是最佳答案吗

    谢谢

    有多个部分: -数据:这是关于加载二进制的值 -代码:这是关于跳转和调用的

    数据并不重要。代码更有趣。 在你打电话的绝对情况下。您编写的代码在大多数情况下都是正确的。如果不是,加载程序将在代码中对其进行修补

    在相对的情况下,你必须调用它,然后调用一个额外的跃点

    最后,3更灵活,但可能有一个小的运行时开销。 另一个原因是PC相对所有时间都会有额外的成本,因为PC距离可能不是整个地址空间

    绝对寻址可以是一个小优化。但在出现问题时,启动成本也会更高