Intel 8088
Es un microprocesador diseñado en 1978 por la empresa Intel que fue uno de los iniciadores de la arquitectura x86. Se dio a conocer gracias a que IBM lo utilizó para su IBM-PC (lanzado en 1981), que arrasó en ventas. Los descendientes del 8088 son el 80188, 80186, 80286, 80386, y 80486, estos tres últimos conocidos respectivamente como 286, 386 y 486.
Características
- Arquitectura CISC de 16 bits.
- Frecuencia de reloj: desde 4,77 a 10 Mhz (según modelo).
- Registros de 16 bits.
- Bus interno de 16 bits.
- Bus de direcciones de 20 bits.
- Bus externo de 8 bits (su antecesor el 8086 tiene un bus externo de 16 bits).
Se utilizó un bus externo de 8 bits para poder emplear circuitos de soporte al microprocesador más económicos, en contraposición al bus de 16 bits del 8086
Como su diseño está basado en el 8080 y 8085, se consigue compatibilidad con los periféricos de estos últimos.
Aunque carecía de memoria caché, estaba equipado con una unidad de lectura adelantada de instrucciones con una cola de pre-búsqueda de 4 bytes (6 bytes en el 8086), de este modo se podía ejecutar una instrucción al mismo tiempo que iba leyendo la siguiente.
Este microprocesador está encapsulado en formato DIL (Dual Inline) de 40 patillas
Manejo de la memoria
Como ya sabemos, los microprocesadores 8088 poseen registros de un tamaño máximo de 16 bits. Con estos 16 bits podemos direccionar como máximo un total de 64 KB de memoria. Pero este microprocesador puede direccionar hasta 1 MB. Si hacemos cuentas, para poder direccionar 1 MB, tendríamos que tener registros de 20 bits. Como este no es el caso, hay que recurrir a algún mecanismo para poder direccionar toda la memoria. Dicho mecanismo consiste en la segmentación que divide la memoria en segmentos de 64 KB. Cada segmento se asocia con un registro de segmento, el desplazamiento (u offset) dentro de ese segmento lo proporciona otro registro de 16 bits. La dirección absoluta se calcula multiplicando por 16 (que es lo mismo que desplazar sus bits hacia la izquierda 4 posiciones) el valor del registro de segmento y sumando el desplazamiento. Esto equivale a generar la dirección absoluta como si los registros de segmento tuvieran 4 bits a 0 a la derecha antes de sumarles el desplazamiento:
Dirección = segmento * 16 + desplazamiento
Los registro básicos que posee el 8088 son el CS,DS,ES y SS, son registros de 16 bits como el resto de los registros de microprocesador pero su uso interno a la hora de componer direcciones es un tanto especial. Estos registros no se emplean para acceder a una dirección de memoria directamente, sino que definen una dirección base o de segmento sobre la que aplicar el desplazamiento de 16 bits
- Registro CS: Almacena la dirección inicial del segmento de código de un programa. Esta dirección de segmento, más un valor de desplazamiento en el registro apuntador de instrucción (IP), indica la dirección de una instrucción que es buscada para su ejecución.
- Registro DS: La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. Esta dirección, más un valor de desplazamiento en una instrucción, genera una referencia a la localidad de un byte específico en el segmento de datos.
- Registro SS: El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la dirección de inicio del segmento de pila de un programa en el registro SS. Esta dirección de segmento, más un valor de desplazamiento en el registro del apuntador de la pila (SP), indica la palabra actual en la pila que está siendo direccionada.
- Registro ES: Algunas operaciones con cadenas de caracteres utilizan el registro extra de segmento para manejar el direccionamiento de memoria.
Operaciones en punto flotante
Este procesador no dispone de ningún modo de hacer operaciones en punto flotante. Si queremos dotarle de esta habilidad, habría que añadirle un coprocesador matemático. El coprocesador matemático más común era el Intel 8087.
Pieza cedida por Fernando Apesteguía Santiago