FPREM
Restante parcial
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
D9 F8 | FPREM | Valido | Valido | Sustitúyase ST(0) por el resto obtenido de la división ST(0) por ST(1). |
Coste medido
Cargando las mediciones de arch-data...
Descripción
Cubre el resto obtenido de dividir el valor en el registro ST(0) por el valor en el registro ST(1) (el divisor o módulo) y almacena el resultado en ST(0). El resto representa el siguiente valor:
Remainder := ST(0) - (Q ST(1))Aquí, Q es un valor entero que se obtiene por truncating la coma flotante número quotient de [ST(0) / ST(1)] hacia cero. El signo del resto es el mismo que el signo del dividendo. La magnitud del resto es menor que la del módulo, a menos que se computase un resto parcial (como se describe a continuación).
Esta instrucción produce un resultado exacto; la excepción inexacto-result no ocurre y el control de redondeo no tiene efecto. En el cuadro siguiente se muestran los resultados obtenidos al calcular el resto de las clases de números, asumiendo que el flujo no se produce.
Resultados FPREM
| ST(0) | -F | ST(0) | -F or -0 | * | * | -F or -0 | ST(0) | Nan |
|---|---|---|---|---|---|---|---|---|
| -0 | -0 | -0 | * | * | -0 | -0 | Nan | |
| +0 | +0 | +0 | * | * | +0 | +0 | Nan | |
| +F | ST(0) | +F or +0 | * | * | +F or +0 | ST(0) | Nan | |
| + | * | * | * | * | * | * | Nan | |
| Nan | Nan | Nan | Nan | Nan | Nan | Nan | Nan |
Operación
D := exponent(ST(0)) exponent(ST(1));
IF D < 64
THEN
Q := Integer(TruncateTowardZero(ST(0) / ST(1)));
ST(0) := ST(0) (ST(1) Q);
C2 := 0;
C0, C3, C1 := LeastSignificantBits(Q); (* Q2, Q1, Q0 *)
ELSE
C2 := 1;
N := An implementation-dependent number between 32 and 63;
QQ := Integer(TruncateTowardZero((ST(0) / ST(1)) / 2(D - N)));
ST(0) := ST(0) (ST(1) QQ 2(D - N));
FI;
FPU Flags Affected
C0 Set to bit 2 (Q2) of the quotient.
C1 Set to 0 if stack underflow occurred; otherwise, set to least significant bit of quotient (Q0).
C2 Set to 0 if reduction complete; set to 1 if incomplete.
C3 Set to bit 1 (Q1) of the quotient.Excepciones coma flotante
#IS Stack underflow occurred.#IA Source operand is an SNaN value, modulus is 0, dividend is , or unsupported format.#D Source operand is a denormal value.#U Result is too small for destination format.Excepciones
Modo protegido
#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
| Las mismas excepciones que en modo protegido. |
Modo virtual-8086
| Las mismas excepciones que en modo protegido. |
Modo de compatibilidad
| Las mismas excepciones que en modo protegido. |
Modo de 64 bits
| Las mismas excepciones que en modo protegido. |