x86_64 asm вычисляет число с плавающей запятой до мощности другой с плавающей запятой - PullRequest
1 голос
/ 20 февраля 2020

Хорошо, так что я должен вычислить этот вид расчета: 10 ^ (некоторое значение с плавающей запятой), где значение с плавающей запятой (экспонента) хранится как double в регистре xmm0, рассчитанном ранее с divsd xmm0, xmm1 с 64-битным двойным значения с плавающей запятой.

Как это сделать с помощью сборки x86_64? Это что-то очень сложное в сборке в x86, так как на процессоре нет функций прямого возведения в степень. Я действительно понятия не имею, как даже подойти к этой проблеме. У меня есть процессор, в котором доступны SSE и SSE2.

РЕДАКТИРОВАТЬ: Я просто осмотрелся и нашел способ добиться этого, эффективно используя fpu, чтобы решить эту проблему, теперь проблема заключается в том, как переместить результат предыдущего расчета (из xmm0 reg) в стек fpu. Как вы перемещаете такую ​​плавающую точку из XMM0 reg в стек единиц с плавающей точкой, который будет использоваться с инструкциями fpu?

...