寻址的本质
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 与函数调用的秘密》
原文链接:寻址方式终极指南:7 种寻址模式与性能分析
欢迎访问我的独立博客:文艺技术笔记