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, según el contenido del registro de indicadores enteros EFLAGS , al registro ST(0) (cima de la pila). Existen 8 variantes de la instrucción, seleccionadas por los códigos de condición que deben estar configurados para que la instrucción realice el movimiento.
De forma similar a la instrucción CMOV , FCMOV permite realizar algunas operaciones condicionales sin la sobrecarga habitual de las bifurcaciones . [ 1 ] Sin embargo, presenta una latencia mayor que las instrucciones de bifurcación condicional. [ 2 ] Por lo tanto, resulta más útil para comparaciones u operaciones condicionales sencillas pero impredecibles, donde puede proporcionar mejoras sustanciales en el rendimiento.
Esta instrucción se suele utilizar junto con la instrucción FCOMI o el modismo FCOM - FSTSW - SAHF para establecer los códigos de condición pertinentes en función del resultado de una comparación de punto flotante.
Variantes
Esta tabla muestra las variantes de las instrucciones FCMOV. [ 1 ] El primer operando es siempre el registro ST(0) (o, 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 la pila de punto flotante que se utilizará para el segundo operando. Sume el número deseado para completar el valor del código de operación correspondiente.
Referencias
Enlaces externos
- Recursos para la optimización de software
- Página oficial de descarga de referencia del conjunto de instrucciones de Intel
- Instrucciones X86