Clasificación del sistema de instrucción de operaciones de punto flotante
No quiero enumerar todos los parámetros y usos de las funciones. Consulte el final del artículo para obtener más detalles.
1. Clase de transferencia de datos
Este tipo de instrucción carga principalmente datos de archivos de registro de punto flotante desde la memoria. La dirección de destino general siempre es ST (0) en la parte superior de la pila. . Puedes ver esto claramente con el depurador. Tenga en cuenta que la operación que termina en P aparece después de que se completa la operación anterior, es decir, el contenido original de ST(1) ahora se convierte en el contenido de ST(0). Preste atención a esto y podrá diseñar fácilmente programas flexibles.
Cargar:
FLD empuja al Real Madrid a la pila
Convierte un entero en complemento a dos a real y empuja
FBLD convierte BCD es un número real y empujado a la pila
Almacenamiento:
FST almacena un número de punto flotante de la pila
FSTP convierte la parte superior de la pila en un número entero
puño
FISTP convierte la parte superior de la pila a un entero
FBSTP almacena BCD a un entero y abre la pila
Intercambio:
FXCH swap top Dos elementos de pila
Carga constante:
FLD1 cargado con constante 1.0
FLDZ cargado con constante 0.0
FLDPI cargado con pi constante (= 3,1415926)...tiene suficiente precisión para usarse de forma segura).
FLDL2E carga el registro constante (2) e.
FLDL2T carga la constante log(2)10
FLDLG2 carga la constante log(10)2.
FLDLN2 carga la constante Log(e)2.
2. Clase de operaciones aritméticas
Añadido:
Suma/suma FADD/FADDP y ventana emergente
Suma de enteros
Resta:
FSUB/FSUBP resta/resta y pop
FSUBR/FSUBRP usa operandos invertidos para restar/resta y operaciones pop
Resta de números enteros p>
FISUBR Resta de enteros/Resta de operandos inversos
Multiplicación:
FMUL/Multiplicación FMUL/Multiplicación y ventana emergente
Multiplicación de enteros mínima
Departamento:
FDIV/FDIVP Dividir/dividir y extraer
División entera FIDIV
FDIVR/FDIVRP usando inversión Dividir/dividir y extraer operaciones con operandos
División de enteros usando operandos invertidos
Otros:
Cálculos fabulosos para valores absolutos
Indicador de cambio FCHS
Redondear a entero
Calcular raíz cuadrada
FSCALE escala la parte superior de la pila por potencia de 2
Separar exponente y mantisa
FPREM calcula parcial resto
FPREM1 calcula el resto parcial en formato IEEE
Si no hay ningún operando después de la instrucción, el operando predeterminado es ST(0) y ST(1), para instrucciones con sufijo R , el orden de los operandos normales se invierte, por ejemplo, fsub ejecuta X-Y, FSUBR ejecuta Y-X.
Clase de función trascendental
Función triangular
FSIN calcula. seno
FCOS calcula el coseno
Calcule rápidamente el seno y el coseno
FPTAN calcula la tangente parcial
FPATAN calcula la arcotangente parcial
Clase de registro
FYL2X calcula el logaritmo en base 2 de y multiplicado por x
FYL2XP1 calcula y multiplicado por 2 El logaritmo de base (x 1)
F2XM1 calcula (2^x)-1
4. Categoría de comparación
Comparación FCOM
Comparación FCOMP y ventana emergente
Comparación de enteros FICOM
Comparación de enteros FTST y ventana emergente
Comparación desordenada
Comparación desordenada y ventana emergente
FXAM establece el bit de código de condición para el valor en la parte superior de la pila
Palabra de estado de almacenamiento FSTSW
Se establecerá de acuerdo con la puntuación, C0 ~ C3, que no se presentará en detalle anteriormente. C1 se utiliza para determinar el desbordamiento o el desbordamiento insuficiente. C0 es equivalente a CF en EFLAGS y sus funciones son básicamente las mismas. C2 equivale a PF y C3 equivale a ZF. Es posible que vea las siguientes instrucciones.
Hacha FSTSW
SAHF
Etiqueta JZ
¿Por qué? Debido a que la palabra de estado se almacena en EFLAGS de C0 con la instrucción anterior, C0 está exactamente en la ubicación CF y C3 está exactamente en la ubicación ZF.
5. Clase de control de sistema y entorno
Palabra de control de carga FLDCW
Palabra de control de almacenamiento FSTCW
Palabra de estado de almacenamiento FSTSW
FLDENV carga el bloque de entorno
FSTENV almacena el bloque de entorno
Guarda el estado del coprocesador
FRSTOR restaura el estado del coprocesador
Coprocesador de inicialización finita
FCLEX borra el indicador de excepción
Incrementa el puntero de la pila
FDECSTP disminuye el puntero de la pila
FFREE marca el elemento como libre
Sin operación
FWAIT espera a que se complete la instrucción de punto flotante