lea,加载有效地址,将计算出的“存储器地址”放在结果寄存器中。
LEA不一定必须用于计算地址,编译器喜欢使用它来执行简单的算术。
LEA快速寄存器乘法 3,5或9
LEA EAX, [EAX * 2 + EAX] ;EAX = EAX * 3
LEA EAX, [EAX * 4 + EAX] ;EAX = EAX * 5
LEA EAX, [EAX * 8 + EAX] ;EAX = EAX * 9
LEA指令的另一个重要特征是它不会改变标志寄存器(诸如CF和ZF之类),该功能降低了指令之间的依赖关系,从而为编译器或硬件调度程序进一步优化提供了空间。