アセンブラコードを出力すると、関数の先頭で、
以下のようなコードをよくみます
push ebp
mov ebp,esp

この時点でebpとespが同じ値を持ってますが…

アセンブラがわざわざmovしているのだから、
ebpにespの値をセットしておくことは重要だ
(プログラマはebpレジスタを破壊してはいけない)
と思いました。

それでは、もともとその値を保持していたespレジスタは、
もはや破壊してよい
(プログラマはespレジスタを自由に使ってよい)
といことなのでしょうか?

つまり、関数の中で
自由に使ってよい...eax,ebx,ecx,edx,esi,edi,esp
使えない...ebp
ということでしょうか?