这是如何工作的?我知道lea与使用add/mov指令相比是有效的,因为它不通过ALU或设置任何标志.那么lea如何得到它的地址呢?是什么让它比添加/ mov更好?
lea没有通过ALU 的想法已经过时,并且已经错误十多年了.它通过其中一个ALU  - 其中有几个,这极不可能成为瓶颈.这实际上需要时间.它不比一个快add.
但这并不意味着它没用.不同的是add,它可以有一个不同于两个输入的目的地,因此它可以保存一个mov,并且它可以采取额外的常量,因此你可以做两个adds和一个mov一个.缩放也很好,所有组合你可以做一些像a = b * 9 + 5一体化lea a, [b + b * 8 + 5].这种"复杂"形式lea通常比简单的2操作数形式慢lea.
| 归档时间: | 
 | 
| 查看次数: | 403 次 | 
| 最近记录: |