Хорошо, так что я должен вычислить этот вид расчета: 10 ^ (некоторое значение с плавающей запятой), где значение с плавающей запятой (экспонента) хранится как double в регистре xmm0
, рассчитанном ранее с divsd xmm0, xmm1
с 64-битным двойным значения с плавающей запятой.
Как это сделать с помощью сборки x86_64? Это что-то очень сложное в сборке в x86, так как на процессоре нет функций прямого возведения в степень. Я действительно понятия не имею, как даже подойти к этой проблеме. У меня есть процессор, в котором доступны SSE и SSE2.
РЕДАКТИРОВАТЬ: Я просто осмотрелся и нашел способ добиться этого, эффективно используя fpu, чтобы решить эту проблему, теперь проблема заключается в том, как переместить результат предыдущего расчета (из xmm0 reg) в стек fpu. Как вы перемещаете такую плавающую точку из XMM0
reg в стек единиц с плавающей точкой, который будет использоваться с инструкциями fpu?