寻址方式终极指南:7 种寻址模式与性能分析

寻址的本质

CPU 执行指令时,需要找到操作数的位置。寻址方式就是告诉 CPU 去哪里找数据。

立即数寻址

数据直接在指令中:


MOV AX, 1234h
  • 最快,无需访问内存
  • 数据随指令一起从代码段取出
  • 寄存器寻址

    操作数在寄存器中:

    
    MOV AX, BX
    
  • 极快,寄存器在 CPU 内部
  • 无内存访问延迟
  • 直接寻址

    操作数在内存的固定地址:

    
    MOV AX, [2000h]
    
  • 访问 `DS:2000h` 处的数据
  • 地址在编译时确定
  • 寄存器间接寻址

    地址在寄存器中:

    
    MOV AX, [BX]
    
  • 地址 = `DS:BX`
  • 适合遍历数组
  • 基址寻址

    
    MOV AX, [BP+10h]
    
  • 地址 = `SS:BP + 10h`(注意用 SS 段)
  • 常用于访问局部变量
  • 变址寻址

    
    MOV AX, [SI+50h]
    
  • 地址 = `DS:SI + 50h`
  • 适合数组元素访问
  • 基址变址寻址

    
    MOV AX, [BX+SI+100h]
    
  • 地址 = `DS:BX + SI + 100h`
  • 最灵活,适合二维数组或结构体成员访问
  • 性能对比

    | 寻址方式 | 内存访问次数 | 相对速度 |

    |:--|:--:|:--|

    | 立即数 | 0 | ⚡ 最快 |

    | 寄存器 | 0 | ⚡ 最快 |

    | 直接 | 1 | 较快 |

    | 间接 | 1 | 中等 |

    | 基址变址 | 1 | 较慢(计算地址)|

    总结

    选择合适的寻址方式,是汇编性能优化的第一步。简单变量用直接寻址,数组用变址,结构体用基址变址。

    下一篇:《堆栈操作深度解析:PUSH/POP 与函数调用的秘密》


    原文链接:https://wenyiblog.top/2026/06/asm-06-addressing-modes/

    首发于文艺技术笔记(wenyiblog.top),转载请注明出处。

    posted @ 2026-06-22 19:28  软件工程师文艺  阅读(1)  评论(0)    收藏  举报