Vous êtes sur la page 1sur 23

UNIVERSIDAD NACIONAL DE

SAN AGUSTÍN
FACULTAD DE INGENIERíA DE PRODUCCIÓN
Y SERVICIOS
ESCUELA PROFESIONAL INGENIERIA
ELECTRóNICA

ARQUITECTURA DE COMPUTADORAS
LABORATORIO

LABORATORIO #1: Hardware Sistema PC/XT 8088/8086

INTEGRANTES:

 LLERENA MANRIQUE GIANCARLO 20090939


 REYMER RIVERA CHRISTOPHER MATHEW 20062559

TURNO:

JUEVES 11-13 HORAS

19 – julio – 2014
AREQUIPA
INDICE

INTRODUCCIÓN 1
ESTRUCTURA BASICA DE LAS COMPUTADORAS 2
1. CPU
2. UNIDAD DE ALMACENAMIENTO PRINCIPAL 2
3. DISPOSITIVOS DE ENTRADA Y SALIDA 2
4. BUSES 3
MICROPROCESADOR HMOS 8088 4
ESTRUCTURA DE LA PC XT 6
2.1.-MICROPROCESADOR HMOS 8088 10
2.1.1.- DESCRIPCIÓN 11
2.1.2.- LÍNEAS COMUNES AL MODO MÁXIMO Y MÍNIMO 11
2.1.3.- LÍNEAS EXCLUSIVAS DEL MODO MÍNIMO DEL 8088 12
2.1.4.- LÍNEAS EXCLUSIVAS DEL MODO MÁXIMO DEL 8088 12
2.1.5.- REGISTROS DE USO GENERAL DEL 8086/8088 13
FUNCIONAMIENTO GENERAL DEL PC-XT 14
1.- PROCESADOR CENTRAL 8088 Y CHIPSET 14
2.- MEMORIA DE UN 8088 16
2.1.-SECCION DE LA MEMORIA ROM 19
2.2.-SECCION DE MEMORIA RAM 19
2.3.- ROM BIOS 21
3.- TAMAÑOS Y TIEMPOS DE EJECUCIÓN DE LAS INSTRUCCIONES 39
4.-SECCION DE CONTROL DE PERIFÉRICOS 46
4.1.- CONTADOR TEMPORIZADOR PTI 8253 46
4.2.- ADAPTADOR DE PERIFÉRICOS PARALELO, PPI 8255 47
4.3.- DECODIFICADOR DEL MAPA DE E/S 48
4.4.- ADAPTADOR DE TECLADO 48
4.5.- MICRORUPTORES PARA LA CONFIGURACION DEL SIS 49
4.6.- SECCION DMA 49
5.-SECCION DE EXPANSIONES 50
6.-SECCION DE CONTROL EXTERNO 52
7.-SECCIÓN DE FUENTE DE ALIMENTACIÓN 52
PERIFÉRICOS 54
4.1.-EL TECLADO 55
4.2.-SONIDO 55
4.3.- VIDEO 56
4.4.- IMPRESORAS 56
4.5.-DISCO RIGIDO 57
4.6.-CINTAS PARA BACKUP 57
4.7.- DISKETTES 57
4.8.- MODEM 57
5.- PUERTOS 58
6.- APLICACIONES GENERALES DE LA FAMILIA 8088 59
7.-ESQUEMATICOS DE SISTEMAS PC-XT. 60
PENTIUM IV 61
MICROCONTROLADORES 66
BIBLIOGRAFÍA 78
1.- INTRODUCCIÓN

El cambio de estrategia de IBM, a principios de la década de los 80s, incorporándose al campo


de los microcomputadores personales, mediante la comercialización del modelo PC, supuso un
acceso al público en general a sistemas lógicos típicos de grandes sistemas.

El corazón del PC-XT es el microprocesador 8088, que actúa como CPU (unidad central de
proceso por sus siglas en ingles Central Processing Unit) El procesador Intel 8088, elegido por
IBM para su primer modelo de PC era una versión "simplificada" de un procesador más potente,
el 8086, que tenía registros y bus de datos de 16 bits. Sin embargo, se eligió el 8088, con
registros de 16 bits, pero bus de datos de 8 (el de direcciones es de 20 bits), coincidente con
el bus de datos la placa-base, que era también de 8 bits, por razones de simplificación y
economía. No solo el ancho del bus, otros muchos detalles de diseño han hecho especular
largamente acerca de que nadie en IBM parecía tener mucha fe en el futuro del recién nacido.

Los fits horizontales del system board ¨ sistema mínimo ¨ están en la base de la unidad del
sistema y son aproximadamente 8-1/2 a 12 pulgadas. Es una singular multicapa por canal en
planos de diseño, con tierra o ground provista.

La fuente DC y sus señales entran a través de un par de conectores de 16 pines. Otros


conectores en el board son para el teclado y el speaker. Hay ocho grupos (sockets) o tarjetas
de 62 pi nes montadas en la placa (board).

El canal de I/O es direccionado a través de esos 8 slots, J8 es ligeramente diferente de los


otros.

El Dip Switch de 8 canales montado puede configurarse para leer un programa de control. Este
provee la información del software al manipular las operaciones en el modo deseado con los
switches.

El sistema mínimo consiste de 5 áreas funcionales:


 El subsistema procesador y los elementos de soporte, la ROM, la memoria de (R/W)
adaptadores de I/O y el canal de I/O.

El corazón del sistema es el MP8088, este es una versión de 8 bits (bus externo) de Intel de
16 bits, el software es compatible con el 8086 que tiene operaciones de 16 bits incluyendo
multiplicación y división y 20 bits direccionables (1Mb de almacenaje).
El procesador opera a 4.77 Mhz, esta frecuencia es derivada del cristal de 14.31818 MHz la
cual es dividida por tres por el reloj del procesador; y por cuatro se obtiene 3.58 Mhz (la señal
requerida para los televisores de color).

Los 4.77 Mhz del reloj, los ciclos del bus del 8088 son cuatro relojes de 210 ns ó 840 ns, los
ciclos de I/O toman 5*210 ns ó 1.05 us.
El procesador es respaldado por el set de funciones provistas por cuatro canales de 20 bits de
acceso directo a memoria (DMA), tres grupos de canales del Timer de 16 bits y ocho niveles de
interrupciones.

Fabricantes del 8086/8088

En junio de 1978 Intel lanzó al mercado el primer microprocesador de 16 bits: el 8086. En


junio de 1979 apareció el 8088 (internamente igual que el 8086 pero con bus de datos de 8
bits) y en 1980 los coprocesadores 8087 (matemático) y 8089 (de entrada y salida). El primer
fabricante que desarrolló software y hardware para estos chips fue la propia Intel.
Reconociendo la necesidad de dar soporte a estos circuitos integrados, la empresa invirtió gran
cantidad de dinero en un gran y moderno edificio en Santa Clara, California, dedicado al diseño,
fabricación y venta de sus sistemas de desarrollo que, como se explicó anteriormente, son
computadoras autosuficientes con el hardware y software necesario para desarrollar software
de microprocesadores.

Los sistemas de desarrollo son factores clave para asegurar las ventas de una empresa
fabricantes de chips. La inmensa mayoría de ventas son a otras empresas, las cuales usan estos
chips en aparatos electrónicos, diseñados, fabricados y comercializados por ellas mismas. A
estas empresas se las llama "fabricantes de equipo original", o en inglés, OEM (Original
Equipment Manufacturer). El disminuir el tiempo de desarrollo de hardware y software para
las OEM es esencial, ya que el mercado de estos productos es muy competitivo. Necesitan
soporte pues los meses que les puede llevar el desarrollo de las herramientas apropiadas les
puede significar pérdidas por millones de dólares. Además quieren ser los primeros fabricantes
en el mercado, con lo cual pueden asegurarse las ventas en dos áreas importantes: a corto
plazo, ya que al principio la demanda es mucho mayor que la oferta, y a largo plazo, ya que el
primer producto marca a menudo los estándares.

De esta manera la empresa Intel había desarrollado una serie completa de software que se
ejecutaba en una microcomputadora basada en el 8085 llamada "Intellec Microcomputer
Development System". Los programas incluían ensambladores cruzados (éstos son programas
que se ejecutan en un microprocesador y generan código de máquina que se ejecuta en otro),
compiladores de PL/M, Fortran y Pascal y varios programas de ayuda. Además había un
programa traductor llamado CON V86 que convertía código fuente 8080/8085 a código fuente
8086/8088. Si se observan de cerca ambos conjuntos de instrucciones, queda claro que la
transformación es sencilla si los registros se traducen así: A -> AL, B -> CH, C -> CL, D
-> DH, E -> DL, H -> BH y L -> BL. Puede parecer complicado traducir LDAX B (por
ejemplo) ya que el 8088 no puede utilizar el registro CX para direccionamiento indirecto, sin
embargo, se puede hacer con la siguiente secuencia: MOV SI, CX; MOV AL,[SI]. Esto
aprovecha el hecho que no se utiliza el registro SI. Por supuesto el programa resultante es más
largo (en cantidad de bytes) y a veces más lento de correr que en su antecesor 8085. Este
programa de conversión sólo servía para no tener que volver a escribir los programas en una
primera etapa. Luego debería reescribirse el código fuente en assembler para poder obtener
las ventajas de velocidad ofrecidas por el 8088. Luego debía correr el programa en la iSBC
86/12 Single Board Computer basado en el 8086. Debido al engorro que resultaba tener dos
2.- ESTRUCTURA DE LA PC XT

La estructura física fundamental del los microcomputadores personales PC, consta de 3


elementos:

- Monitor
- Teclado
- Unidad central

En el interior del armario, chasis o case de la unidad central se aloja la fuente de alimentación,
la placa madre (mainboard), las unidades de discos y las tarjetas de ampliación necesarias para
el desarrollo del trabajo especifico al que se dedica la PC
En la figura siguiente se ofrece la organización general de la unidad central básica, que esta
formada por una fuente de alimentación que general 4 voltajes (+5v,-5v,+12 v y –12 v) y la
mainboard que soporta las siguientes secciones:

- Procesador central
- Oscilador o generador de las señales de reloj
- 4 canales de Acceso directo a memoria (DMA)
- Memoria ROM
- Memoria RAM
- Controlador de interrupciones
- Controlador de diskette
- Controlador de altavoz
- Controlador de teclado
- Zócalos o ranuras para la expansión del sistema

Las ranuras de expansión, proporcionan las líneas de buses de la CPU a todo tipo de circuitos
que se alojan en ellas con diversas finalidades, entre las que destacan:

- Ampliación de memoria de la placa principal


- Controlador de pantalla monocromo
- Controlador de pantalla color / gráficos
- Controlador de discos flexibles o duros
- Canal serie RS-232, propio de ciertos periféricos tal como el raton
- Canal paralelo, propio de las impresoras
La configuración mínima de la PC incluye 64 Kb de Ram, 40 k de ROM, en donde están
grabados los programas básicos para el funcionamiento del sistema, junto con las rutinas de
control de E/S (BIOS) y en ciertos casos el interprete del lenguaje BASIC; solo hay una
unidad de discos de 5 ¼ “ ; un monito monocromo de 12”, con una resolución de 25 filas por 80
columnas en modo texto y 640 x 200 en modo grafico y finalmente, un teclado independiente,
con 83 teclas.
En cuanto al software se incluye una versión del sistema operativo DOS y el lenguaje
interprete BASIC, grabado en la ROM.
La configuración mínima indicada admite todo tipo de ampliaciones, como:

- Memoria
- Coprocesador matemático 8087
- Disco Duro
- Pantallas de color y gráficos
- Impresoras
- Otros sistemas operativos, como el CPM/86
La versión XT dispone de 8 zócalos para tarjetas de expansión y 8 micro ruptores para
configurar el sistema., tal como se apreció en la figura anterior.
En la figura a continuación, se muestra el mapa de memoria del PC, que se halla dividido en dos
partes, una dedicada a la memoria principal y otra a las E/S.

2.1.-MICROPROCESADOR HMOS 8088

2.1.1.- Descripción

Primer microprocesador de propósito general cuyas principales características son:


- Bus de datos de 8 bits.
- Arquitectura interna de 16 bits
- Capacidad de direccionamiento de memoria hasta 1 Mbyte.
- Compatibilidad de software con 8086
- Dos relojes para opresión: 5 Mhz para 8088, 8 Mhz para 8088-2.
- Operaciones a nivel de byte, palabra y bloque
- 24 modos de direccionamiento a memoria

El 8088 puede trabajar en dos modos: mínimo (pequeñas aplicaciones) y máximo


(sistemas multiprocesador). Los requerimientos de conexión con el exterior cambian en
función del modo que se decida emplear, aunque una parte de las señales es común en
ambos.
Consta de una unidad de ejecución (EU: Execution Unit) y una unidad interfaz del bus
(BIU: Bus Interface Unit). La unidad de ejecución es la encargada de realizar todas las
operaciones mientras que la unidad de interfaz del bus es la encargada de acceder a
datos e instrucciones del mundo exterior, como se aprecia en le diagrama de bloques
siguiente.
Hay tres clases de interrupción: por hardware, por software e internas (a las dos
últimas también se las llama "excepciones").
Estructura interna del 8088. Pines del IC 8088

2.1.2.- Líneas comunes al modo máximo y mínimo del 8088.

Address Data Bus. Son líneas multiplexadas, que pueden actuar


AD7..0: como bus de datos o de direcciones, evidentemente en tiempos
distintos.
Address Bus. En todo momento almacenan la parte media del bus
A15..8:
de direcciones.
Address/Status. Parte alta del bus de direcciones, multiplexada:
cuando no salen direcciones, la línea S5 indica el estado del
A19..16/
banderín de interrupciones; las líneas S4:S3 informan del
S6..3:
registro de segmento empleado para realizar el acceso a memoria:
00-ES, 01-SS, 10-CS, 11-DS; S6 no se usa.
Read. Indica una lectura de memoria o de un dispositivo de
-RD:
entrada/salida.
Ready. Línea de entrada que indica el final de la operación de
READY:
memoria o E/S.
Interrupt Request. Línea de petición de interrupciones
INTR:
enmascarables; el 8088 la observa periódicamente.
Test. En respuesta a la instrucción máquina WAIT (¡no TEST!), el
-TEST:
8088 se para a comprobar esta línea hasta que se ponga a 0.
Non-maskable Interrupt. Línea de petición de la interrupción de
NMI:
tipo 2, que no puede ser enmascarada.
RESET: Provoca una inicialización interna que culmina saltando a FFFF:0.
MN/-
Esta línea indica si se trata de un sistema mínimo o máximo.
MX:

2.1.3.- Líneas exclusivas del modo mínimo del 8088

Status Line. Indica si se trata de un acceso a memoria o a un puerto


IO/-M:
de entrada/salida. No es válida todo el tiempo (solo a ratos).
Write. Indica una escritura en memoria o en un dispositivo de
-wr:
entrada/salida (según el estado de IO/-M).
Interrupt Acknowledge. Es la señal de reconocimiento de
-INTA:
interrupción (solicitada a través de INTR o NMI).
Address Latch Enable. Indica al exterior que las líneas de dirección
ALE: contienen una dirección válida, con objeto de que la circuitería
externa la almacene en una pequeña memoria (latch).
Data Transmit/Receive. Señal necesaria para emplear un transceiver
DT/-R: 8286/8287 en el bus, con objeto de controlar el flujo de datos a
través del mismo (si se recibe/transmite).
Data Enable. Necesario también para emplear el transceiver: sirve
-DEN:
como entrada de habilitación para el mismo.
Hold. Línea de entrada para solicitar al 8088 que se desconecte de
HOLD:
los buses. Empleada por los controladores de DMA.
Hold Acknowledge. Línea complementaria de HOLD: el 8088 envía
HLDA:
una señal de reconocimiento cuando se desconecta del bus.
Status Line. Línea de apoyo que, junto con IO/-M y DT/-R, permite
-SS0:
determinar con precisión el estado del bus:

2.1.4.- Líneas exclusivas del modo máximo del 8088.

Request/Grant. Estas patillas bidireccionales permiten a los demás


-RQ/-
procesadores conectados al bus forzar al 8088 a que libere el bus al
GT0..1:
final del ciclo en curso.
Lock. Línea que sirve al 8088 para prohibir el acceso al bus a otros
procesadores (se activa tras la instrucción máquina LOCK y dura
-LOCK: mientras se ejecuta la siguiente instrucción -la que sigue a LOCK, que
es realmente un prefijo-). También se activa automáticamente en los
momentos críticos de un ciclo de interrupción.
Queue Status. Permite determinar el estado de la cola de instruc del
QS1/QS0:
8088.

2.1.5.- Registros de uso general del 8086/8088

Para ayudar al funcionamiento de las instrucciones, para poder manejar variables en memoria y
para su propio funcionamiento, el microprocesador dispone de una serie de “variables” internas
de nombres fijos que son los registros internos. En total hay 14 de estos registros, como se
puede observar en la figura 1.3, cada uno de los cuales está pensado principalmente para alguna
función concreta.
A continuación se detallan cada uno de estos registros, divididos según áreas de funcionalidad:

Registros de almacenamiento temporal


- AX (registro Acumulador): Este registro es usado, sobre todo, en operaciones aritméticas
como primer operando y también como registro de propósito general a disposición del
programador.
- BX (registro Base): Se usa principalmente para indicar posiciones de memoria (offset).
- CX (registro Contador): Este registro se usa siempre que se necesite un contador en
operaciones repetitivas y bucles.
- DX (registro Dato): Se usa como registro auxiliar en operaciones aritméticas y como
contenedor de datos a la hora de usar instrucciones de comunicación de puertos.
Estos cuatro registros, como todos los restantes, son de 16 bits, pero para permitir la
realización de operaciones de tipo byte (8 bits) cada uno de estos cuatro registros está
dividido en dos subregistros de 8 bits a los que se puede acceder de forma independiente
(como se observa en la figura 1.2) . Así, por ejemplo, los 8 bits inferiores de AX se llaman AL
(L de low, bajo) y los 8 superiores AH (H de high, alto). En consecuencia, BX, CX y DX se
dividen en BH/BL, CH/CL y DH/DL respectivamente. De esta forma se tiene que todas las
instrucciones ensamblador pueden operar con datos de 8 y 16 bits según lo que se precise. En
los demás registros esta subdivisión no es posible.

Registros de segmento
Son cuatro registros de 16 bits usados para indicar direcciones de memoria (los conceptos de
segmento y desplazamiento se explicarán en el apartado siguiente):
- CS (Code Segment): Este registro es usado por el procesador, junto con el registro IP, para
conocer dónde está la instrucción actual que está siendo ejecutada.
- DS (Data Segment): Se usa para indicar dónde están todos los datos del programa en
ejecución.
- SS (Stack Segment): En este registro se indica al procesador dónde está la zona de memoria
que se usa como segmento de pila.
- ES (Extra Segment): Es el registro que referencia al segmento extra, y se usa como
apuntador de memoria auxiliar en operaciones complejas donde se necesitan dos punteros de
datos simultáneos.
Registros de la pila
La pila es un área de memoria importante. Tiene, en vez de uno, dos registros que se usan como
desplazamiento (offset) para apuntar su contenido. Se usan como complemento al registro SS
y son:
- SP (Stack Pointer): Es el registro que se reserva el procesador para uso propio en
instrucciones de manipulación de la pila.
- BP (Base Pointer): Se usa como registro auxiliar.

Registros índices.
Se utilizan como desplazamientos complementarios para DS y ES a la hora de indicar la
posición donde se encuentran los datos a los que se desea acceder. Son:
- SI (Source index): Se usa como puntero origen en operaciones de desplazamiento de datos
entre dos zonas de memoria.
- DI (Destination index). Se usa como destino en operaciones de desplazamiento de datos.

Registros de instrucción:
Sólo hay uno, el registro IP ( Instruction Pointer), es usado por la CPU para conocer la posición
relativa a la base CS donde se encuentra la instrucción que se está ejecutando actualmente.
Este registro no puede ser modificado directamente por parte del programador. Este puntero
cambia su contenido automáticamente cada vez que se ejecuta una instrucción o cuando se
salta a otro punto del programa mediante una instrucción de salto.

Registro de Banderas:
Este registro es usado para tener el control de estado y control de las operaciones. La mayoría
de sus 16 bits se utiliza para representar un estado concreto:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CF -- PF -- AF -- ZF SF TF IF DF OF -- -- -- --
.
- Bit 0 - CF (Carry Flag): Es la bandera de acarreo. Se pone a 1 cuando se produce un
resultado con acarreo tras una operación aritmética.
- Bit 1: No usado.
- Bit 2 - PF (Parity Flag): Cuando está a 1, indica que hay un número par de bits activos.
- Bit 3: No usado.
- Bit 4 - AF (Auxiliar Flag): Se usa como bandera auxiliar. Se pone a 1 cuando hay necesidad
de realizar ajustes tras una operación de tipo BCD.
- Bit 5: No usado.
- Bit 6 - ZF (Zero Flag): Indica si se ha producido un resultado cero o una comparación con
operadores iguales.
- Bit 7 - SF (Sign Flag): Indica si se ha producido un resultado negativo o comparación menor.
- Bit 8 - TF (Trap Flag): Es la bandera de atrape, usada en procesos de depuración de código.
- Bit 9 - IF (Interrupt Flag): Si está a 1, indica que está permitida la generación de
interrupciones hardware que generan algunos periféricos, como la que realiza el teclado cada
vez que una tecla es pulsada.
- Bit 10 - DF (Direction Flag): Indica a la CPU hacia donde se desplazan los punteros relativos
en operaciones repetitivas de cadenas de datos.
- Bit 11 - OF (Overflow Flag): Indica si se ha producido un desbordamiento aritmético.
- Bit 12 al 15: No usados.

3.- FUNCIONAMIENTO GENERAL DEL PC-XT


Dada la complejidad del esquema completo de la placa principal del microcomputador XT, se
procede a su descripción dividiéndolo en las siguientes secciones fundamentales:

3.1.- PROCESADOR CENTRAL 8088 Y CHIPSET

Este bloque actúa como controlador general del sistema y esta basado en la CPU 8088,
trabajando a 8 Mhz. Se configura alrededor de 9 circuitos integrados, que son:
-CPU: microprocesador 8088
-Coprocesador matemático 8087 (opcional)
-Generador de señales de reloj 8284
-Controlador de bus 8288
-Basculas de direcciones 74LS373 (2) y 74LS244
-Buffer bidireccional para los datos 74LS245
-Controlador de interrupciones 8259

El 8088 comparte con el coprocesador matemático 8087 un bus local por el que pasan las
instrucciones que ha de ejecutar este ultimo, asi como los resultados que este produce y se
dirigen a la memoria.
El procesador de datos numérico aumenta el juego de instrucciones del 8086/8088 mejorando
su capacidad de tratamiento de números. Se utiliza como procesador paralelo junto al 8088
añadiendo 8 registros de coma flotante de 80 bits así como instrucciones adicionales. Utiliza
su propia cola de instrucciones para controlar el flujo de instrucciones del 8088, ejecutando
sólo aquellas instrucciones que le corresponden, e ignorando las destinadas a la CPU 8088. Las
instrucciones del 8087 incluyen un juego completo de funciones aritméticas así como un
potente núcleo de funciones exponenciales, logarítmicas y trigonométricas
Mediante las basculas de direcciones, el buffer de datos y el controlador de bus, se obtienen
los buses normalizados de datos, direcciones y control, que conforman el “bus del sistema”. El
controlador de interrupciones 8259 recibe las peticiones de interrupción procedentes de los
periféricos y las gestiona, teniendo en cuenta las prioridades, transmitiéndoselas a la CPU
(linea INT).
El 8259 puede controlar hasta 8 interrupciones vectorizadas. Además, a un 8259 se le pueden
conectar en cascada un máximo de 8 chips 8259 adicionales, lo que permite gestionar sistemas
con hasta 64 interrupciones
Cuando la CPU reconoce la interrupción, envía la señal -INTA. Nada más recibida la señal
-INTA de la CPU, el 8259 activa el bit correspondiente a la interrupción de mayor prioridad (la
que va a ser procesada) La instrucción CALL provoca que la CPU envíe dos pulsos -INTA. El
8259 utiliza estos dos pulsos -INTA para depositar en el bus de datos, sucesivamente, la parte
baja y alta de la dirección de memoria del ordenador de la rutina de servicio de la interrupción
(16 bits).
Bloques que configuran a la sección del procesador central, junto a los circuitos integrados que
se usan.

3.2.- MEMORIA DE UN 8088


La memoria RAM de un ordenador es utilizada para almacenar programas o datos con
los que el procesador trabaja. Todos los ordenadores necesitan memoria para almacenar
programas e información, así como para cargar y ejecutar los programas. Por lo general,
cuanto más compleja es la tarea que se desea realizar, más memoria necesita el ordenador.

Direccionamiento de la memoria
Todos los programas y datos se cargan en localidades de memoria específicas determinadas
por sus direcciones. Esa información es almacenada como una secuencia de bytes de manera
que cada uno de ellos tiene un número asociado correspondiente al lugar que ocupan. A ese
número se lo denomina dirección de memoria.
Dado que el 8086/8088 tiene una longitud de palabra de direcciones de 20-bits es
posible direccionar hasta 1.048.576 (= 210) localidades distintas de memoria, es decir,
podemos almacenar hasta 1Mbyte de información. Sin embargo, la CPU sólo procesa palabras
de 16 bits en sus registros de direcciones, como ya se ha visto en los apartados anteriores, y
las direcciones de memoria son de 20 bits, por lo que una dirección no cabe en un registro.
Por lo tanto, en principio, teóricamente sólo se podría acceder hasta el byte número 65.535
(216, el número mayor posible de 16 bits) contando a partir del inicio, que es el byte 0.
Para solucionar este inconveniente, se ideó el dividir la dirección de un byte en dos
partes, denominadas segmento (o Base) y desplazamiento (u offset), ambos de 16 bits.
Adoptada dicha medida, la dirección real de un byte en la memoria es:
Dirección real = Valor base x 16 + valor desplazamiento3
De esta forma, se pueden direccionar el millón de bytes y se tiene acceso a toda la
memoria del PC (a cada uno de los 1024 Kbytes).
La notación más empleada para indicar la dirección de un par segmento –
desplazamiento consiste en separar esos dos valores con dos puntos, utilizando notación
hexadecimal (por ejemplo: 123h:12h4, representa la dirección con segmento 123h y
desplazamiento 12h).
Esta forma de direccionar la memoria presentó un pequeño problema que ha
entorpecido la elaboración de grandes programas, y no es otro que éste: como ya se ha visto se
accede a memoria dando un valor de segmento y otro de desplazamiento; pues bien, si se
mantiene el valor del segmento fijo (lo que ocurre en los programas) y se varía únicamente el
valor del desplazamiento sólo es posible acceder a 65535 bytes (64 Kbytes), que es el valor
máximo alcanzable con los 16 bits del registro de desplazamiento. Con esto, la información
máxima que se puede almacenar en la memoria, modificando únicamente el desplazamiento, es
de 64 Kb. A esta cantidad de almacenamiento se le denomina segmento de memoria.
De este modo, un segmento es un área continua de memoria que puede tener 64K-bytes,
que debe comenzar en una localidad de memoria cuya dirección sea límite de 16 bytes
(cantidad denominada párrafo) y que puede solaparse con otros segmentos. Así, por ejemplo, la
dirección AB00:0012, (es decir, 43776:8 con valores decimales), tiene la misma dirección real
que AB01:0002 (es decir, 43777:2 con valores decimales), pues ambas equivalen a la dirección
real 700.434 (valor que se obtiene al aplicar la fórmula anterior).

Segmentos de memoria de un programa


Por lo general, los programas ejecutables disponen de cuatro segmentos (4 zonas de 64
Kbytes):
- El segmento de código (tiene como base el contenido del registro CS). En este
segmento se encuentran las instrucciones que forman el programa. Para acceder a
los datos contenidos en él, se usa el registro IP como desplazamiento.
3 Para obtener 20 bits de direcciones a partir de dos registros de 16, lo que se hace es
desplazar uno de ellos (el segmento) 4 bits a la izquierda, añadiendo para ello 4 ceros por la
derecha (lo que equivale a multiplicar por 16). Se obtiene así un valor de 20 bits (16 iniciales +
4 ceros añadidos) que no es más que la dirección de inicio del segmento. Para acceder a los
datos del segmento, habrá que sumar una cantidad a esa dirección (dicha cantidad es el
desplazamiento). Es así como se obtiene la fórmula en cuestión.

- El segmento de datos (que tiene como base el registro DS). Contiene los datos que utiliza el
programa (variables, etc.) Para acceder a los datos contenidos en él, se suele utilizar los
registros SI y DI como desplazamiento.
- El segmento de pila5 (con SS como base). En él se desarrolla la pila del programa, utilizada
para trasvases temporales de datos, llamadas a funciones, etc. Debe estar presente en todos
los programas EXE de forma obligada. Se utiliza el registro SP para acceder a los datos de
este segmento.
- El segmento extra (con ES como base). Su uso es opcional, y en él se encuentra un segmento
definido por el usuario y que, regularmente, contiene datos adicionales.
Al igual que ocurre con el segmento de datos, para acceder a los datos contenidos en él, se
suelen utilizar los registros SI y DI.
El hecho de que haya más de un registro de segmento hace posible crear programas que
controlen varios bloques de memoria simultáneos de hasta 64 Kbytes cada uno.

Mapa de Memoria
En los 8086/8088, el espacio de direcciones de 1 MB de memoria se encuentra divido en varias
áreas funcionales, como se observa en la figura:

Parte del diseño del mapa de memoria del PC y PS/2 es consecuencia del diseño del
microprocesador 8086/8088. Por ejemplo, el 8086/8088 mantiene siempre una lista de
vectores de interrupción (direcciones de las rutinas de gestión de interrupciones) en los
primeros 1024 bytes de RAM. De la misma forma, todos los ordenadores basados en el
8086/8088 tienen la memoria ROM en lo más alto del megabyte de memoria, debido a
que,cuando el 8086/8088 se enciende, ejecuta el programa que comienza en la dirección
FFFF0h.
Los primeros 64 Kbytes contienen la memoria de acceso aleatorio (RAM). Parte de esta
memoria es utilizada por el DOS y el BIOS6 para retener los vectores de interrupción y los
datos. Los siguientes 192 Kb están reservados para aplicaciones adicionales del usuario.
El resto del mapa de memoria sigue la división general entre la RAM, en la parte baja, y la ROM
en la parte alta. Puede haber un máximo de 640 KB de RAM entre las direcciones 00000h y
9FFFFh. Los siguientes bloques de memoria se reservan para la RAM de vídeo (de A0000h a
BFFFFh), módulos de ROM instalables (de C0000h a DFFFFh) y ROM permanente (de E0000h
a FFFFFh).

Divisiones de la memoria
Existen varias zonas de memoria RAM en los ordenadores personales:
Memoria Baja: Es la zona en la parte más baja de la memoria base, en donde normalmente se
carga el sistema operativo y los controladores de dispositivos.
Memoria Convencional (llamada a veces memoria base) son los primeros 640 Kbytes de
memoria del ordenador e incluye a la memoria baja. En esta zona se carga el sistema operativo
y los programas de aplicación y sus datos. Con el sistema operativo DOS, los programas de
aplicaciones se ejecutan sólo en la memoria convencional. Esta limitación se conoce a veces
como barrera de los 640 Kbytes. Las otras zonas de memoria se utilizan de forma limitada,
pero sólo con ciertos tipos de hardware
Memoria superior: es toda la memoria direccionada entre los 640 Kbytes y el megabyte. La
memoria superior tiene un tamaño de 384 Kbytes. Algunas secciones de la memoria superior se
reservan para ser utilizadas por diferentes partes del hardware del ordenador, como el
adaptador de vídeo o la ROM BIOS. El hardware del ordenador puede permitir la utilización de
algunos de los controladores de gestión de memoria del DOS (EMM386.SYS y HIDOS.SYS).
En este caso, se puede utilizar la memoria superior para cargar controladores de dispositivo
(como los necesarios para trabajar con un ratón o con una tarjeta de red) que habitualmente se
cargan en memoria convencional, dejando así un mayor espacio disponible para los programas de
aplicaciones. Es posible también mover a
la memoria superior el núcleo del sistema operativo principal.
6 BIOS = Basic Input Output System . Es un conjunto de rutinas básicas grabadas que
permiten acceder y manipular los diferentes periféricos de entrada y salida conectados al
ordenador. Estas rutinas se encuentran almacenadas en memoria ROM (memoria no volátil).
Además de ésa , tiene como función la de iniciar las comprobaciones y cargas del sistema
operativo del
ordenador cuando éste se conecta.

3.2.1.-SECCION DE LA MEMORIA ROM

La sección de memoria no volátil contiene integrados 2764 o 2932, de 8kb que guardan los
siguientes programas:
BIOS, encargado de guardar las rutinas de arranque del sistema y las que permiten el
funcionamiento con los periféricos comunes. Ocupa 8 Kb.
PROGRAMAS DE USUARIO, que pueden guardarse en IC 2764 y opcionalmente, colocarse en
un zócalo que existe pata este fin
Las posiciones de la ROM ocupan las direcciones mas altas del mapa de memoria.
Para seleccionar el chip ROM que se va a leer se emplea un decodificador de 3 a 8 (74LS138)
de cuyas 8 salidas, 6 se emplean para activar el pin /CS de selección de chip de c/u de las
memorias ROM

3.2.2.-SECCION DE MEMORIA RAM

Los Ics mas comunes son los 4164, de 64K bits. También se emplean pastillas DRAM de mayor
capacidad, compatibles con el patillaje de la 4164.
Los 9 pines de cada fila trabajan en paralelo y cada 4164 proporciona o recibe un bit del bus de
datos, quedando el noveno bit destinado a la paridad de los otros 8. El bit de paridad se envía o
recibe desde el 74LS280, generador/ detector de paridad.
Las memorias dinámicas tienen como señales auxiliares: la /RAS (direccionamiento de fila de la
matriz) y /CAS (direccionamiento de columna).
Para controlar 64k celdas de 1 bit c/u, se necesitarían 16 lineas de direccionamiento, para
disminuir el numero de pines, se estructura la memoria en una matriz de 128 filas y 512
columnas, pudiéndose multiplexar con 8 líneas la información necesaria para determinar la fila
y la columna (/RAS y /CAS)
Esta memoria DRAM precisa un ciclo de refresco cada 4 ms, se controla mediante el contador
1 del PTI 8253, el cual genera una onda cuadrada de 2ms. Con cada flanco ascendente, se carga
un flop flop D , solicitando atención al canal 0 del circuito de Acceso Directo a Memoria (DMA
8237) . Entonces el DMA inhabilita los tres decodificadores de la memoria y toma el control de
las buses del sistema . El DMA genera todas las combinaciones posibles por las líneas MA0-
MA6 que direccionan las 128 filas, sucesivamente, dando lugar al refresco de las celdas.
Existen 3 multiplexores 74LS158, con los que se multiplexan las direcciones XA0-XA17,
produciendo 8 líneas de direccionado que entran a las patillas del 4164. El multiplexado de las
filas se produce con la señal /RAS activa, y el de las columnas con /CAS activa.
Para decodificar el estado de las 4 líneas de mas peso del bus de direcciones (A16-A19) se usa
el circuito TBS24S10, cuyas salidas proporcionan la señal para la selección de la sección DRAM
(/DRAMCS) y una serie de señales que se aplican a los decodificadores 74LS138 que generan
las señales /RAS y /CAS.
El tranceptor del bus de datos 74LS245 se encarga de aislar la DRAM del bus del sistema

3.2.3.- ROM BIOS

La mayoría de personas piensa que el DOS es el que controla el IBM PC, y aunque básicamente
esto es cierto, no tiene en cuenta la asistencia de la ROM BIOS de IBM (Basic Input/Output
System), sistema básico de entrada / salida que realiza una gran parte del trabajo necesario
para el PC DOS. Muchas de las rutinas de utilidad que aparecen es este libro dependen de
llamadas al PC DOS o a la ROM BIOS. En ambos casos, estas llamadas se consiguen mediante
interrupciones software. En esta breve sección se da un repaso al concepto de interrupción
Software y a como se materializa este concepto mediante el procesador 8088.

Una interrupción es una llamada de atención a la CPU, indicándole que debe prestar cuidado a
algo ahora. Los mecanismos de interrupción siempre han formado parte de los sistemas
microprocesadores. Hasta el desarrollo del 80886 y el 8088, todas las interrupciones se
realizaban mediante Hardware.

El funcionamiento de una interrupción por hardware es el siguiente: una señal eléctrica sobre
una patilla de chip de la CPU provoca que la lógica interna de éste circuito guarde el contador
de programas, los registros de indicadores y el registro de segmento de código (CS). La CPU
queda entonces libre para prestar servicio a la petición recibida desde el exterior ejecutando
una determinada sección de código independiente de la tarea que estaba llevando a cabo. Una
vez satisfecha la petición de servicio, la CPU recupera los registros grabados y continua con la
tarea que había dejado suspendida como si nada hubiera pasado.

Con la arquitectura de la familia 8086, Intel presentó el concepto de interrupción por


software. Este tipo de interrupciones funciona exactamente igual que las interrupciones por
hardware. Excepto en que la condición que dispara la petición es una instrucción máquina
(software) en vez de una señal eléctrica sobre un corrector de la CPU (Hardware).

4.- APLICACIONES GENERALES DE LA FAMILIA 8088

Seguidamente mencionamos algunas aplicaciones del 8088:

- Sistema de control de procesos


- Impresoras de línea
- Osciloscopio de calculo
- Analizador de sangre
- Terminales inteligentes.
- Multimetro digital
- Terminal grafico
- Sintetizador de frecuencia.

5.-ESQUEMATICOS DE SISTEMAS PC-XT.


6.- BIBLIOGRAFÍA

http://www.wikilearning.com/
http://atc.ugr.es/docencia/udigital
http://www.alpertron.com.ar/8088.HTM
http://www.monografias.com/

Angulo, Jose Maria ; Fundamentos Diseño y Programación; 5ta edición; pag 39-45, 758-798
Intel, Datasheet 8088 8-bit Hmos Microprocessor 8088/8088-2 , agosto 1990, pag 1-7
Ibm corp.
Ibm at technical reference. - 1984. 600 páginas.
IBM, Technical Reference Pc xt 8088 User Guide, Section Hardware
Ralf Brown.
Jon Beltrán de Heredia.
Lenguaje Ensamblador de los 80XX.
6.- BIBLIOGRAFÍA

http://www.wikilearning.com/
http://atc.ugr.es/docencia/udigital
http://www.alpertron.com.ar/8088.HTM
http://www.monografias.com/

Angulo, Jose Maria ; Fundamentos Diseño y Programación; 5ta edición; pag 39-45, 758-798
Intel, Datasheet 8088 8-bit Hmos Microprocessor 8088/8088-2 , agosto 1990, pag 1-7
Ibm corp.
Ibm at technical reference. - 1984. 600 páginas.
IBM, Technical Reference Pc xt 8088 User Guide, Section Hardware
Ralf Brown.
Jon Beltrán de Heredia.
Lenguaje Ensamblador de los 80XX.

Vous aimerez peut-être aussi