下のコードはDelphiのインラインアセンブラですが、
なぜloop1の方が速いのでしょうか?
命令数はLoop2の方が少ないのに。
loop1は↓にあります。
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=049229

@@loop1:
MOVZX EAX, byte ptr [ESI]
MOVZX EBX, byte ptr [ESI+1]
MOV DL, byte ptr [EDI + EAX]
MOV DH, byte ptr [EDI + EBX]
MOV byte ptr[ESI], DL
MOV byte ptr[ESI+1], DH

DEC ECX
LEA ESI, [ESI + 2]
JNZ @@loop1

@@Loop2:
mov ax, [esi]
mov ax, [edi + eax]
mov [esi], da
add esi, 2

dec ecx
jnz @@Loop2;