FISTTP

Tienda Integer Con Truncation

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
DF /1FISTTP m16intValidoValidoStore ST(0) en m16int con truncation.
DB /1FISTTP m32intValidoValidoStore ST(0) en m32int con truncation.
DD /1FISTTP m64intValidoValidoStore ST(0) en m64int con truncation.

Coste medido

Cargando las mediciones de arch-data...

Descripción

FISTTP convierte el valor en ST en un entero firmado utilizando truncation (chop) como modo de redondeo, transfiere el resultado al destino y pop ST. FISTTP acepta destinos de palabra, entero corto y entero largo.

La siguiente tabla muestra los resultados obtenidos al almacenar varias clases de números en formato entero.

Resultados FISTTP

-orRelación calidad/precio demasiado grande para DEST Formato*
F-1-I
-1<F<+10
FS+ 1+I

Operación

DEST := ST;
pop ST;

Banderas afectadas

C1 is cleared; C0, C2, C3 undefined.

Excepciones numéricas

Inválido, Stack Invalid (bajo corriente de establo), Precisión.

Excepciones

Modo protegido
#GP(0)Si el destino está en un segmento no escrito. Para una dirección efectiva operando de memoria ilegal en los segmentos CS, DS, ES, FS o GS.
#SS(0)Para una dirección ilegal en el segmento SS. #PF(fault-code) Para un fallo de pagina.
#AC(0)Si la comprobación de alineación está habilitada y se hace una referencia de memoria no alineada mientras que el nivel de privilegio actual es 3.
#NMSi CR0.EM[bit 2] = 1. Si CR0.TS[bit 3] = 1.
#UDSi CPUID.01H:ECX.SSE3[0] = 0. Si el prefijo LOCK se utiliza. Modo de dirección real Excepciones GP(0) Si alguna parte del operando estaría fuera del espacio de dirección eficaz de 0 a 0FFFFH.
#NMSi CR0.EM[bit 2] = 1. Si CR0.TS[bit 3] = 1.
#UDSi CPUID.01H:ECX.SSE3[0] = 0. Si se utiliza el prefijo LOCK. Excepciones de Modo 8086 Virtual GP(0) Si alguna parte del operando estaría fuera del espacio de dirección eficaz de 0 a 0FFFFH.
#NMSi CR0.EM[bit 2] = 1. Si CR0.TS[bit 3] = 1.
#UDSi CPUID.01H:ECX.SSE3[0] = 0. Si el prefijo LOCK es usado. #PF(fault-code) Para un fallo de pagina.
#AC(0)Para referencias de memoria no alineadas si el privilegio actual es 3.
Modo de compatibilidad
Las mismas excepciones que en modo protegido.
Modo de 64 bits
#SS(0)Si una dirección de memoria que hace referencia al segmento SS está en forma no canónica.
#GP(0)Si la dirección de memoria está en forma no canónica.
#NMCR0.EM[bit 2] o CR0.TS[bit 3] = 1.
#MFSi hay una excepción x87 FPU pendiente. #PF(fault-code) Si un fallo de pagina ocurre.
#AC(0)Si la comprobación de alineación está habilitada y se hace una referencia de memoria no alineada mientras que el nivel de privilegio actual es 3. Si el prefijo LOCK se utiliza.

Fuentes