Вычислительные мощности в 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?

0 ответов

Другие вопросы по тегам