¿Qué es el método Turbo Pascal 8087?
Registro temporal 8087
8087 *** tiene cinco tipos de registros temporales: pila de registros, palabra de estado y grupo de palabras de control (palabra de control), grupo de palabras de etiqueta (etiqueta palabra), puntero de excepción (puntero de excepción).
1. Registros apilados
8087 *** tiene ocho registros apilados, sus nombres son ST(0), ST(1), ST(2)… ...ST( 7), donde ST(0) se llama la parte superior de la pila (TOS, Top Of Stack), y también puede abreviarse como ST en el lenguaje de combinación. Cada uno de estos ocho registros temporales apilados tiene un tamaño de 80 bits para almacenar números de punto flotante y se almacena en forma de números reales temporales, lo que se puede decir que es bastante preciso. Hay muchas operaciones que involucran TOS y, a veces, se utilizan TOS y otros registros apilados para las operaciones, por lo que a menudo se pueden omitir TOS. Los programadores deben tener cuidado con esta escritura "implícita" para evitar causar problemas.
2. Grupo de palabras de estado
Como sugiere el nombre, este registro temporal se utiliza para representar el estado del 8087. Su estructura es la siguiente:
Contiene. cuatro elementos Información.
Indicador de ocupado (indicador de ocupado): En el bit 15, este bit indica si el 8087 está ejecutando un comando u operación, y no es muy útil.
Código de condición: los bits 14, 10, 9 y 8 están representados por C3, C2, C1 y C0. Estos bits se verán afectados por instrucciones como FTST, FCOM y FXAM. Generalmente se utiliza como programa para controlar el proceso.
Indicador superior de la pila: Bits 13, 12 y 11. Estos tres bits se utilizan para indicar qué registro de pila se encuentra actualmente en la parte superior de la pila.
Indica excepciones: bits 7, 5, 4, 3, 2, 1 y 0, sus funciones son las siguientes:
3 Grupo de palabras de control
La descripción del grupo de palabras de control es la siguiente:
IEM (permitir máscara de interrupción): 0 significa que la interrupción es permitido, 1 significa que no se permiten interrupciones.
PC (Control de precisión): está diseñado para coincidir con las máquinas de menor precisión fabricadas por algunos fabricantes de computadoras. De hecho, los registros de pila dentro del 8087 son todos de 80 bits. La representación es:
00 representa 24 bits
01 está reservado y no se utiliza
10 representa 53 bits
11 representa 64 bits por defecto valor
RC (control de redondeo): Los bits 10 y 11 se utilizan para determinar cómo realizar la acción de redondeo.
Ejemplo de descripción del control de redondeo RC
00 Redondeo al entero más cercano
Redondeo al entero más cercano, redondeo al entero más cercano, 4,5 ==gt 5
-4.5 = =gt; -5
01 Redondear los valores positivos hacia el infinito negativo y redondear la parte decimal
Los valores negativos redondear la parte decimal y luego restar uno por 4.5 ==gt; 4 p>
-4.4 ==gt; -5
10 Redondea los valores positivos al infinito, redondea la parte decimal y luego suma uno p>
Valores negativos, redondea la parte decimal 4.5 ==gt; 5
-4.5 ==gt -4
11 Redondea la parte decimal independientemente de los positivos. o valores negativos 4.5 ==gt; 4
11 p>
-4.5 ==gt; -4
IC (Control Infinito): 8087 Hay dos formas de hacerlo. comparar el "infinito" con números finitos. Una es comparar el infinito positivo. El infinito grande y el infinito negativo se consideran dos extremos de una recta numérica. Ningún número es mayor que el infinito positivo y ningún número es menor que el infinito negativo. Los números se pueden comparar con el infinito positivo y negativo. La otra es considerar el infinito positivo y negativo como el mismo punto, lo que equivale a enrollar la recta numérica. En este momento, los números finitos no se pueden comparar con el infinito positivo y negativo. El primero se denomina "cierre afín" y IC se establece en 1; el segundo se denomina "cierre proyectivo" y IC se establece en 0. Este método también es el valor predeterminado después de FINIT.
Los bits del 0 al 5 son las formas de manejar las máscaras de excepción respectivamente. Las llamadas excepciones se refieren a las cinco apariciones de división por cero, superior al límite superior, inferior al límite inferior y valor anormal. y precisión durante la operación 8087. En este caso, si se debe informar a 8088. Si desea que el 8088 sepa que se llama "desenmascarado" y que el bit correspondiente está establecido en cero, si ocurre una excepción, puede hacer que el programa se interrumpa y salte al programa diseñado por el diseñador para su procesamiento. Si no se sabe que el 8088 está "enmascarado" y el bit correspondiente está establecido en uno, el 8087 puede manejarlo automáticamente cuando ocurre una excepción. Debido a que el 8087 está bien diseñado para varias excepciones, el valor predeterminado se establece en uno. A continuación se describe la respuesta de la máscara a estas cinco excepciones:
División por cero: cuando el bit ZM (máscara de división por cero) se establece en cero, se devuelve infinito positivo o infinito negativo de forma apropiada.
Por encima del límite superior: cuando el bit OM (máscara de desbordamiento) se establece en cero, se devuelve infinito positivo o infinito negativo de forma adecuada.
Por debajo del límite inferior: cuando el bit UM (máscara de desbordamiento insuficiente) se establece en cero, se devuelven resultados anormales.
Valor anormal: cuando el bit DM (máscara de operando desnormalizado) se establece en cero, la operación de la memoria funcionará como de costumbre y el registro de la pila se convertirá en un valor anormal.
Precisión: Cuando el bit PM (máscara de precisión) se establece en cero, se devuelve el resultado del redondeo.
Grupo de palabras de etiqueta
8087 tiene un grupo de palabras de etiqueta de 16 bits. Hay ocho etiquetas en el grupo de palabras de etiqueta. Cada dos bits son una etiqueta, correspondiente a una pila de ocho etiquetas. registro. Como se muestra a continuación:
Cada etiqueta representa la forma numérica almacenada en el registro de pila correspondiente.
00: Valores disponibles, incluidos normales o anormales.
01: Cero.
10: valor no numérico, infinito, anormal (denormal).
11: Vacío.
Además de las siete formas básicas de datos numéricos que puede procesar 8087 (entero de palabra, entero corto, entero largo, número real corto, número real largo, número real temporal, entero BCD agregado), también conserva Algunos métodos de codificación especiales se utilizan para representar datos especiales. Estos datos especiales generalmente rara vez se usan en aplicaciones. Aquí hay una breve explicación:
Valor anormal (denormal):
. Valor de excepción (anormal):
Cero:
Pseudo cero:
Infinito:
Valor real indeterminado (real indefinido):
No es un número (no es un número):