Red de conocimiento informático - Conocimiento sistemático - Clasificación del sistema de instrucción de operaciones de punto flotante

Clasificación del sistema de instrucción de operaciones de punto flotante

El sistema de instrucción de punto flotante se divide en cinco categorías: transferencia de datos, operaciones aritméticas, funciones trascendentales, comparación, entorno y control del sistema.

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

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