Taki maly OT:
Procesory typu RISC nie sa zbyt mile do obslugi przez asm :(
No to jak tak uwazasz, to masz problem. Bo IA32 idzie juz do lamusa. Wszystkie 64 bitowe procesory, zarowno Intela jak i AMD to RISC. Wszystkie pozostale, to juz tez dawno RISC. RISC ma mniejszy zestaw instrukcji, latwiej sie tego nauczyc - i co najwazniejsze nie ma zadnych problemow z ortogonalnoscia. Skoro w x86 moge napisac tak:
mov ebx, dword ptr [ecx]
mov dword ptr [eax], ebx
to dlaczego do diabla nie moge tak:
mov dword ptr [eax], dword ptr [ecx]
??!!
I wlasnie takie rzeczy sa najbardziej wnerwiajace w IA32 i w IA64 ich nie bedzie. No i wreszcie dorzucili predykaty, to warunki nie beda zajmowaly ponad 50 taktow, jak jest teraz (LOL).
A co do pytania - to rzeczywiscie, albo dissassembler sie myli, albo Twoj kompilator robi jakies optymalizacje, albo i jedno i drugie.