FLDCW
Carga x87 FPU Control Word
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
D9 /5 | FLDCW m2byte | Valido | Valido | Carga FPU palabra de control de m2byte. |
Coste medido
Cargando las mediciones de arch-data...
Descripción
Carga el operando de origen de 16 bits en la palabra de control FPU. El operando de origen es una ubicación de memoria. Esta instrucción se utiliza normalmente para establecer o cambiar el modo de operación de FPU.
Si una o más banderas de excepción se establecen en la palabra de estado FPU antes de cargar una nueva palabra de control FPU y la nueva palabra de control desenmascara una o más de esas excepciones, la excepción una coma flotante se generará en la ejecución de la siguiente instrucción coma flotante (excepto las instrucciones de coma flotante no espera, ver la sección titulada "Capítulo de Excepción Intel" Para evitar levantar excepciones al cambiar los modos operativos FPU, despejar cualquier excepción pendiente (utilizando la instrucción FCLEX o FNCLEX) antes de cargar la nueva palabra de control.
La operación de esta instrucción es la misma en modos no-64-bit y modo 64-bit.
Operación
FPUControlWord := SRC;
FPU Flags Affected
C0, C1, C2, C3 undefined.Excepciones coma flotante
Ninguna; sin embargo, esta operación podría desenmascarar una excepción pendiente en la palabra de estado FPU. Esa excepción se genera después de la ejecución de la siguiente instrucción "esperando" coma flotante.
Excepciones
Modo protegido
#GP(0) | Si un operando de memoria dirección efectiva está fuera del límite de segmento CS, DS, ES, FS o GS. Si el registro DS, ES, FS o GS se utiliza para acceder a la memoria y contiene un NULL selector de segmento. |
#SS(0) | Si un operando de memoria dirección efectiva está fuera del límite del segmento SS. |
#NM | CR0.EM[bit 2] o CR0.TS[bit 3] = 1. #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. |
#UD | Si se utiliza el prefijo LOCK. |
Modo real
#GP | Si un operando de memoria dirección efectiva está fuera del límite de segmento CS, DS, ES, FS o GS. |
#SS | Si un operando de memoria dirección efectiva está fuera del límite del segmento SS. |
#NM | CR0.EM[bit 2] o CR0.TS[bit 3] = 1. |
#UD | Si se utiliza el prefijo LOCK. |
Modo virtual-8086
#GP(0) | Si un operando de memoria dirección efectiva está fuera del límite de segmento CS, DS, ES, FS o GS. |
#SS(0) | Si un operando de memoria dirección efectiva está fuera del límite del segmento SS. |
#NM | CR0.EM[bit 2] o CR0.TS[bit 3] = 1. #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. |
#UD | Si se utiliza el prefijo LOCK. |
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. |
#UD | Si se utiliza el prefijo LOCK. |