FCMOV - FCMOV

FCMOV je Floating point Cdalší movE operační kód z Intel x86 architektura, poprvé představena v Pentium Pro procesory. Zkopíruje obsah jednoho z registru zásobníku s plovoucí desetinnou čárkou, v závislosti na obsahu EFLAGS integer flag register, to the ST (0) (top of stack) register. Existuje 8 variant instrukce vybraných podle stavových kódů, které je třeba nastavit, aby instrukce provedla pohyb.

Podobně jako u CMOV instrukce, FCMOV umožňuje provádět některé podmíněné operace bez obvyklých větvení nad hlavou.[1] Má však vyšší latence než podmíněné pokyny větve.[2] Proto je nejužitečnější pro jednoduché, ale nepředvídatelné srovnání nebo podmíněné operace, kde může poskytnout podstatné zvýšení výkonu.

Pokyn se obvykle používá s FCOMI instrukce nebo FCOM -FSTSW -SAHF idiom pro nastavení příslušných stavových kódů na základě výsledku srovnání s plovoucí desetinnou čárkou.

Varianty

Tato tabulka ukazuje varianty pokynů FCMOV.[1] První operand je vždy registr ST (0) (ekvivalentně horní část zásobníku s plovoucí desetinnou čárkou). Sloupec Opcode označuje dvoubajtovou sekvenci, kde druhý bajt je základní hodnota označující počet registru zásobníku s plovoucí desetinnou čárkou, který se má použít pro druhý operand. Přidejte požadované číslo a dokončete odpovídající hodnotu opcode.

Operační kódMnemotechnická pomůckaVýznamStav
DA C0 + iFCMOVBPřesuňte se, pokud je nížeNést vlajku soubor
DA C8 + iFCMOVEPřesuňte se, pokud je to stejnéSada příznaků nula
DA D0 + iFCMOVBEPřesuňte se, pokud je nižší nebo rovnoNést vlajku nebo nastaven příznak nula
DA D8 + iFCMOVUPřesunout, pokud není uspořádánoVlajka parity soubor
DB C0 + iFCMOVNBPřesuňte se, pokud ne nížeNést vlajku vymazán
DB C8 + iFCMOVNEPohyb, pokud není stejnýNulová vlajka vymazána
DB D0 + iFCMOVNBEPřesuňte se, pokud není nižší nebo rovnoNést vlajku a nulovou vlajku vymazány
DB D8 + iFCMOVNUPřesun, pokud není neobjednanýVlajka parity vymazána

Reference

  1. ^ A b Příručka pro vývojáře softwaru Intel Architecture, svazek 2: Referenční příručka. K dispozici ke stažení na [1]
  2. ^ Mlha, A: Optimalizace podprogramů v montážním jazyce. Průvodce optimalizací pro platformy x86. K dispozici ke stažení na [2]

externí odkazy