あるサイトで見かけたんだけど、

ebxとecx*8を足して1000を引いてeaxに代入する最速コードは?

という問題で、

lea eax,[ebx+ecx*8-1000]

とlea命令一発でやっているんだけど、CPUはこういう計算は乗算・減算を
しないでさくっと 1clock で済ますことが出来るの?
なんでこんなことが出来るのかさっぱり仕組みが分かりません。

あと、MSVC++(うちで使ってるのは6.0)とかは実行速度で最適化をすれば
こういう処理の置き換えは自動でやってくれるんですか?