FSCALE

Escala

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
D9 FDFSCALEValidoValidoEscala ST(0) por ST(1).

Coste medido

Cargando las mediciones de arch-data...

Descripción

Trunca el valor en el operando de origen (hasta 0) a un valor integral y añade ese valor al exponente del operando de destino. El destino y operandos de origen son valores en coma flotante ubicados en los registros ST(0) y ST(1), respectivamente. Esta instrucción proporciona una rápida multiplicación o división por poderes integrales de 2. El siguiente cuadro muestra los resultados obtenidos al escalar varias clases de números, asumiendo que no se produce desbordamiento ni desbordamiento.

Resultados FSCALE

ST(0)-F-0-F-F-F-F-Nan
-0-0-0-0-0-0NanNan
+0+0+0+0+0+0NanNan
+F+0+F+F+F+F+Nan
+Nan+++++Nan
NanNanNan NanNanNanNanNan

Operación

ST(0) := ST(0)  2RoundTowardZero(ST(1));

FPU Flags Affected

C1                    Set to 0 if stack underflow occurred.

                      Set if result was rounded up; cleared otherwise.

C0, C2, C3            Undefined.

Excepciones coma flotante

#IS            Stack underflow occurred.
#IA            Source operand is an SNaN value or unsupported format.
#D             Source operand is a denormal value.
#U             Result is too small for destination format.
#O             Result is too large for destination format.
#P             Value cannot be represented exactly in destination format.

Excepciones

Modo protegido
#NMCR0.EM[bit 2] o CR0.TS[bit 3] = 1.
#MFSi hay una excepción x87 FPU pendiente.
#UDSi 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.

Fuentes