FCMOV - FCMOV
FCMOV это жточка ожидания cусловный movе код операции из Intel x86 архитектура, впервые представленная в Pentium Pro процессоры. Он копирует содержимое одного из регистров стека с плавающей запятой, в зависимости от содержимого EFLAGS регистр целочисленного флага в регистр ST (0) (верх стека). Существует 8 вариантов инструкции, выбранных кодами условий, которые необходимо установить для инструкции для выполнения перемещения.
Подобно CMOV инструкция, FCMOV позволяет выполнять некоторые условные операции без обычных разветвление накладные расходы.[1] Однако у него выше задержка чем инструкции условного перехода.[2] Поэтому он наиболее полезен для простых, но непредсказуемых сравнений или условных операций, где может обеспечить существенный прирост производительности.
Инструкция обычно используется с FCOMI инструкция или FCOM -FSTSW -SAHF идиома для установки соответствующих кодов условий на основе результата сравнения с плавающей запятой.
Варианты
В этой таблице показаны варианты инструкций FCMOV.[1] Первым операндом всегда является регистр ST (0) (эквивалентно вершине стека с плавающей запятой). Столбец Opcode указывает двухбайтовую последовательность, где второй байт является базовым значением, указывающим номер регистра стека с плавающей запятой, который будет использоваться для второго операнда. Добавьте желаемое число, чтобы завершить соответствующее значение кода операции.
Код операции | Мнемонический | Смысл | Условие |
---|---|---|---|
DA C0 + i | FCMOVB | Двигайтесь, если ниже | Перенести флаг набор |
DA C8 + i | FCMOVE | Двигаться, если равно | Установлен нулевой флаг |
DA D0 + i | FCMOVBE | Переместить, если ниже или равно | Флаг переноса или установлен нулевой флаг |
DA D8 + i | FCMOVU | Переместить, если неупорядочено | Флаг четности набор |
БД C0 + i | FCMOVNB | Двигайтесь, если не ниже | Флаг переноса снят |
БД C8 + i | FCMOVNE | Двигаться, если не равно | Нулевой флаг снят |
БД D0 + i | FCMOVNBE | Двигаться, если не ниже или равно | Флаг переноса и нулевой флаг снят |
БД D8 + i | FCMOVNU | Переместить, если не без порядка | Флаг четности снят |