FBLD

Carga binaria Código Decimal

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
DF /4FBLD m80bcdValidoValidoConvertir BCD valor en coma flotante y empuje en la pila FPU.

Coste medido

Cargando las mediciones de arch-data...

Descripción

Convierte el BCD operando de origen en formato coma flotante de doble precisión y empuja el valor a la pila FPU. El operando de origen está cargado sin errores de redondeo. El signo del operando de origen se conserva, incluyendo el de -0.

Los dígitos BCD empaquetados se supone que están en el rango 0 a 9; la instrucción no verifica los dígitos inválidos (AH a través de FH). El intento de cargar una codificación inválida produce un resultado indefinido.

La operación de esta instrucción es la misma en modos no-64-bit y modo 64-bit.

Operación

TOP := TOP - 1;
ST(0) := ConvertToDoubleExtendedPrecisionFP(SRC);

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 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 contiene un NULL selector de segmento.
#SS(0)Si un operando de memoria dirección efectiva está fuera del límite del segmento SS.
#NMCR0.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.
#UDSi se utiliza el prefijo LOCK.
Modo real
#GPSi un operando de memoria dirección efectiva está fuera del límite de segmento CS, DS, ES, FS o GS.
#SSSi un operando de memoria dirección efectiva está fuera del límite del segmento SS.
#NMCR0.EM[bit 2] o CR0.TS[bit 3] = 1.
#UDSi 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.
#NMCR0.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.
#UDSi 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.
#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.
#UDSi se utiliza el prefijo LOCK.

Fuentes