数据寻址方式决定了如何根据指令中的形式地址 计算出有效地址

常见寻址方式

  1. 立即寻址 (Immediate Addressing):
    • 操作数直接包含在指令中。
    • 特点: 速度快,但通用性差。
  2. 直接寻址 (Direct Addressing):
    • 指令中直接给出操作数的物理地址。
    • 缺点: 与现代操作系统的动态装载需求不符。
  3. 寄存器寻址 (Register Addressing):
    • 操作数存放在 CPU 内部的通用寄存器中。
    • 优点: 速度极快。
  4. 间接寻址 (Indirect Addressing):
    • 指令中给出的是存放操作数地址的地址(类似于指针的指针)。 重点
    • 支持动态内存装载。
  5. 寄存器间接寻址:
    • 寄存器中存放的是操作数的地址。
  6. 变址寻址:
    • 常用于数组处理。
  7. 基址寻址:
    • 用于操作系统存储管理。
  8. 相对寻址:
    • 用于程序重定位和跳转。
  9. 页式寻址:
    • 通过页号 and 页内地址拼接得到有效地址。

寻址方式位

指令中通常设置专门的标记位来区分寻址方式(如 0 表示直接寻址,1 表示间接寻址)。这些技术共同构成了 寻址技术 的核心,并直接影响 指令地址码 的设计。

寻址方式对比

寻址方式对比

在硬件实现上,变址寻址基址寻址相对寻址 虽然在逻辑描述和应用场景上有所不同,但 底层均使用相同的地址映射硬件装置(加法器)来完成地址变换重点

  • 变址寻址 vs 基址寻址:

    • 变址寻址: 面向普通用户,常用于数组处理。
    • 基址寻址: 面向操作系统,用于逻辑地址到物理地址的映射、存储管理和动态装载。
  • 相对寻址: 使用 替代专用寄存器,常用于程序重定位。

指向原始笔记的链接