FISTTP
Tienda Integer Con Truncation
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
DF /1 | FISTTP m16int | Valido | Valido | Store ST(0) en m16int con truncation. | |
DB /1 | FISTTP m32int | Valido | Valido | Store ST(0) en m32int con truncation. | |
DD /1 | FISTTP m64int | Valido | Valido | Store 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
| - | or | Relación calidad/precio demasiado grande para DEST Formato | * |
|---|---|---|---|
| F | -1 | -I | |
| -1<F< | +1 | 0 | |
| 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. |
#NM | Si CR0.EM[bit 2] = 1. Si CR0.TS[bit 3] = 1. |
#UD | Si 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. |
#NM | Si CR0.EM[bit 2] = 1. Si CR0.TS[bit 3] = 1. |
#UD | Si 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. |
#NM | Si CR0.EM[bit 2] = 1. Si CR0.TS[bit 3] = 1. |
#UD | Si 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. |
#NM | CR0.EM[bit 2] o CR0.TS[bit 3] = 1. |
#MF | Si 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. |