EK
Size: a a a
EK
ВХ
EK
cdq ; edx = 0 or -1
cmp edx,eax ; cf = eax > 0 ? 1 : 0
adc dl,0 ; add 1 for positive; edx = sign (0, 1 or -1)
EK
cdq
stc
adc edx,edx
mov ecx,edx
imul edx
xchg ecx,eax
jecxz $+6
imul ecx
loop $-2
факториал. варианты?; eax = source
mov edx,1
@@: imul edx,eax
dec eax
jnz @B
; edx = resultST
; eax = source
mov edx,1
@@: imul edx,eax
dec eax
jnz @B
; edx = resultEK
EK
EK
EK
EK
jecxz и jz одинаковы. Но это Sandy Bridge. На других может быть чуть иначе. Но loop вряд ли где-то работает так же быстро, как dec/jz.EK
jecxz — это dec/jecxz/jmp по факту.ВХ
jecxz — это dec/jecxz/jmp по факту.mov ecx,65536???
jmp @F
@@: dec ecx
jecxz @B
ВХ
mov ecx,65536тоже
jmp @F
@@: dec ecx
jz @B
ret
EK
jmp тогда?