【问题标题】:Why code and data have different addressing mode?为什么代码和数据有不同的寻址方式?
【发布时间】:2017-08-30 01:33:43
【问题描述】:

我从汇编语言中学到了一些寻址模式。但是我发现对于不同的段,我们有不同的寻址模式,例如,你不能对数据使用PC相对寻址。这是为什么?

【问题讨论】:

    标签: memory-address addressing-mode


    【解决方案1】:

    对于具有正确实现完整性的操作系统,除了一些高级功能(例如加载附加模块)之外,不应允许代码操纵其自己的内存空间,否则将无法调试正在将自身更改为运行时的其他东西。程序的数据空间;但是,可以根据程序的需要进行操作。操作系统实现的最佳实践可能是明确区分代码空间和数据空间,以避免意外操作代码空间时出现问题。

    【讨论】:

    • 我知道这一点,这就是我们将 .text 和 .data 分开的原因。我想知道的是为什么他们使用不同的寻址方式?
    • 我不知道更多细节。硬件中有几种不同的内存空间,它们具有不同的寻址模式。不同空间、模式的数量以及操作系统如何使用这些将是硬件和操作系统设计者的任意决定。编程语言的实现只需要遵循这些设计者做出的决定。
    猜你喜欢
    • 1970-01-01
    • 2017-07-22
    • 2011-01-19
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 2020-07-20
    相关资源
    最近更新 更多