FLD
Carga valor en coma flotante
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
D9 /0 | FLD m32fp | Valido | Valido | Empuja m32fp en la pila de registro FPU. | |
DD /0 | FLD m64fp | Valido | Valido | Empuja m64fp en la pila de registro FPU. | |
DB /5 | FLD m80fp | Valido | Valido | Empuja m80fp en la pila de registro FPU. | |
D9 C0+i | FLD ST(i) | Valido | Valido | Empuje ST(i) en la pila de registro FPU. |
Coste medido
Cargando las mediciones de arch-data...
Descripción
Empuja el operando de origen en la pila de registro FPU. El operando de origen puede estar en formato coma flotante de precisión simple, doble precisión o doble precisión extendida. Si el operando de origen está en una sola precisión o formato coma flotante de precisión doble, se convierte automáticamente en el formato coma flotante de doble precisión antes de ser empujado en la pila.
La instrucción FLD también puede empujar el valor en un registro FPU seleccionado [ST(i)] en la pila. Aquí, presionando el registro ST(0) duplica la parte superior de la pila.
NOTE
Cuando la instrucción FLD carga un valor denormal y el bit DM en el CW no está enmascarado, una excepción es insignia pero el valor sigue siendo empujado a la pila x87.
La operación de esta instrucción es la misma en modos no-64-bit y modo 64-bit.
Operación
IF SRC is ST(i)
THEN
temp := ST(i);
FI;
TOP := TOP - 1;
IF SRC is memory-operand
THEN
ST(0) := ConvertToDoubleExtendedPrecisionFP(SRC);
ELSE (* SRC is ST(i) *)
ST(0) := temp;
FI;
FPU Flags Affected
C1 Set to 1 if stack overflow occurred; otherwise, set to 0.
C0, C2, C3 Undefined.Excepciones coma flotante
#IS Stack underflow or overflow occurred.#IA Source operand is an SNaN. Does not occur if the source operand is in double extended-preci-sion coma flotante formato (FLD m80fp o FLD ST(i)).
#D Source operand is a denormal value. Does not occur if the source operand is in doubleformato coma flotante de gran precisión.
Descripción
Empuja una de las siete constantes de uso común (en formato coma flotante de doble precisión) en la pila de registro FPU. Las constantes que se pueden cargar con estas instrucciones incluyen +1.0, +0.0, log210, log2e, , log102, y loge2. Para cada constante, se redondea una constante interna de 66 bits (como se especifica en el campo RC en la palabra de control FPU) a formato coma flotante de doble precisión. La excepción inexacto-result (#P) no se genera como resultado del redondeo, ni es la bandera C1 establecida en la palabra estado x87 FPU si el valor se redondea.
Vea la sección titulada "Aproximación de Pi" en el capítulo 8 de Intel(R) 64 e IA-32 Architectures Software Developer's Manual, Volumen 1, para una descripción de la constante.
La operación de esta instrucción es la misma en modos no-64-bit y modo 64-bit.
Compatibilidad de arquitectura IA-32
Cuando el campo RC se establece para redondear-to-nearest, el FPU produce las mismas constantes que son producidas por los coprocesadores Intel 8087 e Intel 287 de matemáticas.
Operación
TOP := TOP - 1;
ST(0) := CONSTANT;
FPU Flags Affected
C1 Set to 1 if stack overflow occurred; otherwise, set to 0.
C0, C2, C3 Undefined.Excepciones coma flotante
#IS Stack overflow occurred.Excepciones
Modo protegido
#GP(0) | Si el destino se encuentra en un segmento no escrito. Si la dirección efectiva un operando de memoria 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. |
#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
#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. |
| Las mismas excepciones que en modo protegido. |
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. |
| Las mismas excepciones que en modo protegido. | |
| Las mismas excepciones que en modo protegido. |
Modo de compatibilidad
| Las mismas excepciones que en modo protegido. | |
| 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 | SiLOCKprefijo se utiliza.FLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLDLN2/FLDZ--Load Constantcódigo de operación* Instrucción 64-Bit Compat/ Descripción Mode Leg Mode Valid Push +1.0 en elFPUpila de registro D9 E8FLD1Valid Push log210 en elFPUpila de registro.FPUpila de registro.FLDL2TValida válida Empuje en elFPUpila de registro.FPUpila de registro.FLDL2ELoge de empuje Valid Valid 2 en elFPUpila de registro.FPUEB D9FLDPID9 ECFLDLG2D9 EDFLDLN2D9 EEFLDZValideNOTES: * Ver IA-32 Arquitectura Compatibilidad sección abajo. |
| Las mismas excepciones que en modo protegido. |