FCMOV


FCMOV es un código de operación de movimiento condicional de punto flotante de la arquitectura Intel x86 , introducido por primera vez en los procesadores Pentium Pro . Copia el contenido de uno de los registros de pila de punto flotante, dependiendo del contenido del registro de bandera de enteros EFLAGS , al registro ST(0) (parte superior de la pila). Hay 8 variantes de la instrucción seleccionada por los códigos de condición que deben configurarse para que la instrucción realice el movimiento.

Similar a la instrucción CMOV , FCMOV permite que se realicen algunas operaciones condicionales sin la sobrecarga de bifurcación habitual. [1] Sin embargo, tiene una latencia más alta que las instrucciones de bifurcación condicional. [2] Por lo tanto, es más útil para operaciones condicionales o de comparación simples pero impredecibles, donde puede proporcionar mejoras sustanciales en el rendimiento.

La instrucción generalmente se usa con la instrucción FCOMI o el idioma FCOM - FSTSW - SAHF para establecer los códigos de condición relevantes según el resultado de una comparación de coma flotante.

Esta tabla muestra las variantes de las instrucciones FCMOV. [1] El primer operando es siempre el registro ST(0) (equivalentemente, la parte superior de la pila de punto flotante). La columna Opcode indica una secuencia de dos bytes donde el segundo byte es un valor base que indica el número del registro de pila de punto flotante que se usará para el segundo operando. Agregue el número deseado para completar el valor del código de operación correspondiente.