Jump to content

ФКМОВ

FCMOV условного перемещения с плавающей запятой — это код операции архитектуры Intel x86 , впервые представленный в процессорах Pentium Pro . Он копирует содержимое одного из регистров стека с плавающей запятой, в зависимости от содержимого регистра целочисленного флага EFLAGS , в регистр ST(0) (верхняя часть стека). Существует 8 вариантов инструкции, выбранных по кодам условий, которые необходимо задать, чтобы инструкция выполнила ход.

Подобно инструкции CMOV , FCMOV позволяет выполнять некоторые условные операции без обычных затрат на ветвление . [ 1 ] Однако у него более высокая задержка , чем у инструкций условного перехода. [ 2 ] Поэтому он наиболее полезен для простого, но непредсказуемого сравнения или условных операций, где он может обеспечить существенный прирост производительности.

Инструкция обычно используется с инструкцией FCOMI или идиомой FCOM - FSTSW - SAHF для установки соответствующих кодов условий на основе результата сравнения с плавающей запятой.

Варианты

[ редактировать ]

В этой таблице показаны варианты инструкций FCMOV. [ 1 ] Первым операндом всегда является регистр ST(0) (эквивалент вершины стека с плавающей запятой). Столбец «Код операции» указывает двухбайтовую последовательность, где второй байт — это базовое значение, указывающее номер регистра стека с плавающей запятой, который будет использоваться для второго операнда. Добавьте желаемое число, чтобы завершить соответствующее значение кода операции.

Код операции Мнемоника Значение Состояние
ИЗ C0+i ФКМОВБ Переместитесь, если ниже флагов для переноски Набор
ИЗ C8+i FCMOVE Переместить, если равно Установлен нулевой флаг
ДА D0+я ФКМОВБЕ Переместить, если ниже или равно Флаг переноса или флаг нуля.
ДА D8+я ФКМОВУ Переместить, если не упорядочено флаг четности Установлен
БД C0+i ФКМОВНБ Переместить, если не ниже Флаг переноса снят
БД C8+i ФЦМОВНЕ Переместить, если не равно Флаг нуля снят.
БД Д0+я ФКМОВНБЕ Переместить, если не ниже или равно Флаг переноса и флаг нуля очищены.
БД D8+i ФЦМОВНУ Переместить, если не упорядочено Флаг четности снят.
  1. ^ Jump up to: а б Руководство разработчика программного обеспечения для архитектуры Intel, том 2: Справочник по набору команд. Доступно для скачивания по адресу [1]
  2. ^ Туман, А: Оптимизация подпрограмм на языке ассемблера. Руководство по оптимизации для платформ x86. Доступно для скачивания по адресу [2]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1569381747cf6e46c8145f544f6fe2e7__1672840860
URL1:https://arc.ask3.ru/arc/aa/15/e7/1569381747cf6e46c8145f544f6fe2e7.html
Заголовок, (Title) документа по адресу, URL1:
FCMOV - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)