FXTRACT
Extract Exponent and Significand
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
D9 F4 | FXTRACT | Valido | Valido | Valor separado en ST(0) en exponente y significativo, almacena exponente en ST(0), y empuja el significado en la pila de registro. |
Coste medido
Cargando las mediciones de arch-data...
Descripción
Separa el valor fuente en el registro ST(0) en su exponente y su significado, almacena el exponente en ST(0), y empuja el significado en la pila de registro. Después de esta operación, el nuevo registro ST(0) contiene el valor del significado original expresado como un valor en coma flotante. El signo y el significado de este valor son los mismos que los encontrados en el operando de origen, y el exponente es 3FFFH (valor imparcial para un verdadero exponente de cero). El registro ST(1) contiene el valor del verdadero exponente de operando (sin prejuicio) original expresado como un valor en coma flotante. (La operación realizada por esta instrucción es un superset de la función logb(x) recomendada por IEEE.)
Esta instrucción y la instrucción F2XM1 son útiles para realizar operaciones de escalado de potencia y rango. La instrucción FXTRACT también es útil para convertir números en formato coma flotante de doble precisión a representaciones decimales (por ejemplo, para impresión o visualización).
Si la coma flotante la excepción de división cero (#Z) está enmascarada y el operando de origen es cero, un valor exponente de se almacena en el registro ST(1) y 0 con el signo del operando de origen se almacena en el registro ST(0).
La operación de esta instrucción es la misma en modos no-64-bit y modo 64-bit.
Operación
TEMP := Significand(ST(0));
ST(0) := Exponent(ST(0));
TOP := TOP - 1;
ST(0) := TEMP;
FPU Flags Affected
C1 Set to 0 if stack underflow occurred; set to 1 if stack overflow occurred.
C0, C2, C3 Undefined.Excepciones coma flotante
#IS Stack underflow or overflow occurred.#IA Source operand is an SNaN value or unsupported format.#Z ST(0) operand is +/-0.#D Source operand is a denormal value.Excepciones
Modo protegido
#NM | CR0.EM[bit 2] o CR0.TS[bit 3] = 1. |
#MF | Si hay una excepción x87 FPU pendiente. |
#UD | Si se utiliza el prefijo LOCK. |
Modo real
| Las mismas excepciones que en modo protegido. |
Modo virtual-8086
| Las mismas excepciones que en modo protegido. |
Modo de compatibilidad
| Las mismas excepciones que en modo protegido. |
Modo de 64 bits
| Las mismas excepciones que en modo protegido. |