Если в MulRolMix перенести mul:=mul *$BCEBCAD;
в ассемблерную вставку:
while count>0dobegin//mul:=mul * $BCEBCAD; — убратьasm//mov edx, mul — более не нужно
imul edx, edx,$BCEBCAD//mov ecx, rol — более не нужно
rol edx, cl
mov mul, edx
end;dec(count);end;
Result:=mul;
то MulRolMix будет работать ненамного медленнее, чем MulRolAsm.
Вывод — нужно быть очень осторожным при использовании ассемблерных вставок, т.к. компилятор/оптимизатор могут давать крайне непредсказуемый код...
Некорректно
Если в MulRolMix перенести
mul:=mul * $BCEBCAD;
в ассемблерную вставку:
то MulRolMix будет работать ненамного медленнее, чем MulRolAsm.
Вывод — нужно быть очень осторожным при использовании ассемблерных вставок, т.к. компилятор/оптимизатор могут давать крайне непредсказуемый код...