Реферат: Варианты алгоритма возведения в степень повышение точности и ускорение

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
Бесплатно скачать Реферат: Варианты алгоритма возведения в степень повышение точности и ускорение