LEA
作者:Vesper Vei
1 分钟阅读
目录
LEA(lea)
基本作用
LEA(Load Effective Address)用于计算并加载一个“有效地址表达式”的值,而不是访问该内存地址。
它本质是一个算术指令,而非内存读取指令。
指令格式
lea rX, [address_expression]rX = 计算 [ ] 内的表达式行为特性
- 不访问内存,只计算地址
- 常用于指针运算
- 能替代加法、乘法(编译器常用)
- 可实现基址 + 索引 × scale + 偏移 的完整表达式
示例
lea rbx, [rdx + rax*4 + 0x10]; 等效于:rbx = rdx + rax*4 + 0x10常见用途
- 指针偏移计算
- 结构体字段偏移计算
- 快速加法/乘法替代(如 lea rax, [rax+rax_2] = rax_3)
- 在编译器优化中广泛用于减少算术指令