"Оптимизация для PENTIUM процессора" - читать интересную книгу автораТест на "больше":
FLD [a] FCOMP [b] FNSTSW AX AND AH,41H JZ AGreaterThanB Не используйте TEST AH,41H - эта инструкция не спариться. Не используйте TEST AX, 4100H - он вызывает потери на PentiumPro. Не тестируйте флаги после многократных сдвигов, т.к. это приводит к потерям на PentiumPro. Обычно быстрее использовать целочисленные операции для сравнения чисел с плавающей точкой, как указано в разделе 18, ниже. 17.12 FISTP ----------- Конвертирование чисел с плавающей точкой обычно делается так: FISTP DWORD PTR [TEMP] MOV EAX, [TEMP] А вот - альтернативный метод: .DATA ALIGN 8 MAGIC DD 59C00000H ; п.т. представление 2^51 + 2^52 .CODE FADD [MAGIC] FSTP QWORD PTR [TEMP] MOV EAX, DWORD PTR [TEMP] Добавляя "волшебное число" 2^51 + 2^52 мы получим эффект, при котором целое число, лежащее в пределах -2^31 до +2^31 будет выравненно в младших 32 битах, храня при этом двойную точность в виде с плавающей точкой. Результат аналогичен FISTP, при всех методах округления, кроме округления к нулю. Результат отличается от FISTP, если управляющее слово определяет округление в случае переполнения. Вам может потребоваться инструкция WAIT для совместимости с другими процессорами. См. раздел 17.10. Этот метод не быстрее FISTP, но он дает больше возможности для планирования, т.к. есть 3 такта между FADD и FSTP, которые можно занять другими инструкциями. Вы можете многократно умножить или разделить число, кратное 2, используя "волшебное число". Вы можете, также, добавить константу, добавляя ее к "волшебному числу", результат получиться с двойной точностью. 17.13 FPTAN ----------- Согласно описанию FPTAN возвращает два значения X и Y, оставляя програмисту |
|
|