寻址的本质

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 种寻址模式与性能分析

欢迎访问我的独立博客:文艺技术笔记