Вычислительные мощности в x87 с плавающей точкой
Есть ли способ вычислить степени чисел с плавающей запятой чисто в сборке x86/x87? Я не говорю о вычислении интегральных степеней чисел с плавающей точкой, но что-то вроде x^y, где x и y - числа с плавающей точкой.
У меня есть решение для интегральных полномочий (синтаксис NASM):
compute_integral_powers:
fldl [esp+4] ;load base twice
fld st0
movl ecx, [esp+12] ;load exponent
.loop:
decl ecx ;decrement exponent
cmpl ecx, 0 ;are we done yet?
jz .done
fmul st1 ;multiply by original base
jmp .loop ;keep going
.done:
fstp st1 ;store st0 in st1 and pop (for return value)
ret
Есть ли что-то похожее на вычисление мощностей с использованием показателей с плавающей запятой, используя только инструкции по сборке x86/x87?