Реферат: Варианты алгоритма возведения в степень повышение точности и ускорение
fldz //Сравним основание степени
fcomip st,st(1) // с 0 и соответственно установим флаги процессора
je @Zero
FYL2X //Стек: ST(0)=t=y*log2(x)
fldz
fcomip st,st(1) //Флаги выставляем соответственно числу 0-y*log2(x)
ja @Reverse //Если 0>y*log2(x), то сосчитаем 2**|y*log2(x)|, а после инвертируем
call Core_Exp2
jmp @Exit
@Zero:
fxch st(1)
fstp st //Освобождаем ненужный регистр
jmp @Exit
@Reverse:
fabs //Берем абсолютную величин
call Core_Exp2
fld1 //Считаем обратное значение:
fdivrp //1/(2**|y*log2(x)|)
@Exit:
end;
ПРЕДУПРЕЖДЕНИЕ
В этом фрагменте используется инструкция FCOMIP, впервые появившаяся на процессорах Pentium Pro. Любителям антиквариата придется использовать вместо пары команд FCOMIP / JE блок
FCOMP FSTSW TEST AX, 16384 JNZ @Zero //Вместо je @Zero | ||
ПРЕДУПРЕЖДЕНИЕ А вместо FCOMIP / JA - блок |
FCOMP К-во Просмотров: 361
Бесплатно скачать Реферат: Варианты алгоритма возведения в степень повышение точности и ускорение
|