Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ects t2 PDF
Ects t2 PDF
I.TELECOMUNICACION
DEPARTAMENTO DE AUTOMATICA
CAPITULO PRIMERO
1. INTRODUCCION.
El 8086 fue diseado para trabajar con lenguajes de alto nivel, disponiendo de un
soporte hardware con el que los programas escritos en dichos lenguajes ocupan un
pequeo espacio de cdigo y pueden ejecutarse a gran velocidad. Esta concepcin,
orientada al uso de compiladores, se materializa en un conjunto de facilidades y
recursos, y en unas instrucciones entre las que cabe destacar las que permiten efectuar
operaciones aritmticas de multiplicar y dividir, con y sin signo; las que manejan
cadenas de caracteres, etc.
AH AL ACUMULADOR
BH BL BASE
CH CL CONTADOR
DH DL DATOS
SP PUNTERO DE PILA
BP
PUNTERO DE
BASE
EU
SI INDICE FUENTE
DI INDICE DESTINO
PUNTERO DE
IP
INSTRUCCION
FLAGS H
INDICADORES DE
FLAGS L
ESTADO
SEGMENTO DE
CS
CODIGO
SEGMENTO DE
DS
SS
DATOS
SEGMENTO DE
PILA
BIU
SEGMENTO
ES
EXTRA
Los registros del 8086 podran clasificarse en tres grupos de acuerdo con sus
funciones. El grupo de datos, que es esencialmente el conjunto de registros aritmticos;
el grupo de apuntadores, que incluye los registros base e ndices y tambin el contador
El grupo de registros de segmento est formado por los registros CS, SS, DS y
ES.
CS ( segmento de cdigo ).
DS ( segmento de datos ).
SS ( segmento de pila ).
ES (segmento extra ).
SF ( indicador de signo ).
ZF ( indicador de cero ).
PF ( indicador de paridad ).
CF ( indicador de acarreo ).
AF ( indicador de acarreo auxiliar ).
OF ( indicador de desbordamiento ).
DF ( indicador de direccin ).
IF ( indicador de interrupcin ).
TF ( indicador de trap ).
15 0
REGISTRO DE SEGMENTO
16
19 0
+
15 0
=
19 0
DIRECCIN FSICA
El uso de los diferentes segmentos significa que hay reas de trabajo separadas
para el programa, la pila y los datos. Cada rea de trabajo tiene un tamao mximo de
64K bytes y un mnimo de 0. Dado que hay cuatro registros de segmento, uno de
programa ( CS ), uno de pila ( SS ), uno de datos ( DS ) y uno extra ( ES ) el rea de
trabajo puede llegar hasta 256K.
4. SEAL DE RELOJ.
Al igual que los mas recientes microprocesadores, el 8086 requiere una nica
seal de reloj. Este microprocesador no genera su propia seal de reloj siendo necesario
la utilizacin del generador de reloj 8284, que usa un cristal oscilador para determinar la
frecuencia de seal. Intercambiando este cristal, se puede seleccionar diferentes
velocidades de operacin. Intel tiene una versin de 5 MHz y otra de 8 Mhz para el
8086. Estas versiones representan las velocidades ms altas, recomendables para este
chip.
Para un rendimiento ptimo, el 8086 requiere una seal de reloj que se mantenga
a tensin alta una tercera parte del tiempo total de ciclo. Esto significa que el reloj est
activo una tercera parte del tiempo y desactivado las dos terceras partes del tiempo.
5. MODOS DE DIRECCIONAMIENTO.
Bit W. Nos informa del tamao de los operandos, es decir, si se trata de byte o
palabra. Con W = 0 estamos accediendo a un byte y con W = 1 a una palabra.
Bit D. Este bit es utilizado con instrucciones de dos operandos, salvo en los
casos en que uno de los operandos debe ser un registro especificado en el campo REG.
Este bit nos informa si el registro especificado en el campo REG se trata del
operando fuente u operando destino de instruccin especificada por el cdigo de
operacin.
MOD 00 01 10 11
R/M W=0 W=1
000 (BX) + (SI) (BX)+(SI)+D8 (BX)+(SI)+D16 AL AX
Reg. de segmento DS DS DS
001 (BX) + (DI) (BX)+(DI)+D8 (BX)+(DI)+D16 CL CX
Reg. de segmento DS DS DS
010 (BP) + (SI) (BP)+(SI)+D8 (BP)+(SI)+D16 DL DX
Reg. de segmento SS SS SS
011 (BP) + (DI) (BP)+(DI)+D8 (BP)+(DI)+D16 BL BX
Reg. de segmento SS SS SS
100 (SI) (SI) + D8 (SI) + D16 AH SP
Reg. de segmento DS DS DS
101 (DI) (DI) + D8 (DI) + D16 CH BP
Reg. de segmento DS DS DS
110 D16 (BP) + D8 (BP) + D16 DH SI
Reg. de segmento DS SS SS
111 (BX) (BX) + D8 (BX) + D16 BH DI
Reg. de segmento DS DS DS
Viendo esta tabla podemos apreciar que segn la combinacin de MOD y R/M
tendremos diferentes posibilidades para el segundo operando. Como anteriormente se ha
indicado este segundo operando puede ser un registro o una posicin de memoria, que
principalmente va a estar en funcin del campo MOD. Si MOD = 11 nos indica que se
trata de un registro, pudiendo ver de que tipo de registro se trata segn la combinacin
de R/M. Si MOD es distinto de 11 nos indica una posicin de memoria y la direccin
efectiva se calcula segn las tablas. Si nos fijamos en MOD = 00 esto significa que no
hay desplazamiento a menos que R/M = 110, lo que implicara direccionamiento
directo. Si MOD = 01 indica que el tercer byte de la instruccin contiene un
desplazamiento de 8 bits que se extiende automticamente a 16 ( extensin de signo )
antes de ser usado para calcular la direccin efectiva, y MOD = 10 indica que los bytes
tercero y cuarto contienen un desplazamiento de 16 bits.
Podemos observar en la tabla el registro de segmento que es utiliza para cada una
de las combinaciones de MOD y R/M. Aunque la direccin efectiva de un operando en
memoria est determinada por los campos MOD y R/M, la direccin fsica de 20 bits
Para examinar con ms claridad las instrucciones mquina del 8086, vamos a ver
unos ejemplos con la instruccin suma ( ADD ). Una suma ( ADD ) provoca que el
contenido de la posicin indicada para el operando fuente sea sumado al contenido de la
posicin indicada para el operando destino, y que la suma reemplace a sta ltima. Esta
instruccin puede adoptar uno de los tres formatos que se muestran el la siguiente
figura, dependiendo del modo de direccionamiento.
000000DW MOD REG R/M DESP menor orden DESP mayor orden
* El campo DESP puede ocupar uno o dos bytes, dependiendo del campo MOD.
100000SW MOD 000 R/M DESP bajo DESP alto DAT bajo DAT alto
* El campo DESP puede ocupar uno o dos bytes, dependiendo del campo MOD.
* El byte alto del campo DAT es opcional, y estar presente si S:W = 01.
GND 1 40 VCC
AD14 2 39 AD15
AD13 3 38 A16/S3
AD12 4 37 A17/S4
AD11 5 36 A18/S5
AD10 6 35 A19/S6
AD9 7 34 BHE/S7
AD7 9 32 RD
AD3 13 28 S2 (M/IO)
AD2 14 27 S1 (DT/R)
AD1 15 26 S0 (DEN)
INTR 18 23 TEST
CLK 19 22 READY
GND 20 21 RESET
MICROPROCESADOR 8086
8086
CPU A16 - A19
S3 - S6
(MIN)
INT
NMI
TEST HOLD
HLDA
INT
NMI
TEST
BHE/S7
En ambos modos, las seales del 8086 se pueden agrupar de la siguiente manera:
Alimentacin.
Reloj.
Control y estado.
Direcciones.
Datos.
Hay tres terminales para la alimentacin: tierra ( GND ) en los terminales 1 y 20,
y una tensin de entrada de 5 voltios ( Vcc ) en el terminal 40. El terminal de tierra es
tierra a la vez para la alimentacin y para las seales.
Del S0 al S7 son seales de estado en los terminales 26, 27, 28, 38, 37, 36, 35,
34 respectivamente. En ciertos momentos son salidas del procesador. En otros
momentos aparecen otras seales distintas en los mismos terminales. Mirando el estado
pueden decirse cosas tales como el tipo de acceso al bus ( lectura o escritura, memoria o
E/S ), el registro de segmento en uso y el estado del sistema de interrupciones. S0, S1 y
S2 son slo accesibles en modo mximo, en cuyo caso se introducen en los chips
controladores de bus 8288. Estas seales decodifican el estado del procesador, de
acuerdo con la siguiente tabla.
S2 S1 S0 ESTADO DE LA CPU
0 0 0 RECONOCIMIENTO DE INTERRUPCION
0 0 1 LECTURA PUERTA I/O
0 1 0 ESCRITURA PUERTA I/O
0 1 1 PARO ( HALT )
1 0 0 CODIGO DE ACCESO A INSTRUCCION
1 0 1 LECTURA MEMORIA
1 1 0 ESCRITURA MEMORIA
1 1 1 PASIVO. NO OPERA.
La seal RESET que se encuentra en el terminal 21, es otra de las entradas que
tambin pasa por el generador de pulsos 8284 para sincronizarse con la seal de reloj.
Se utiliza para inicializar el procesador borrando la cola de instrucciones y ciertos
registros tales como los indicadores, segmento de datos ( DS ), segmento de pila ( SS ),
segmento extra ( ES ) ponindolos a cero. El puntero de instrucciones ( IP ) y el
segmento de cdigo ( CS ) los carga con FFFFH.
ALE ( terminal 25 ). Esta seal activa el latch 8282 cuando viene una direccin
por las lneas AD0-AD15, es decir, sirve para controlar el multiplexado de datos y
direcciones.
Las seales HOLD y HLDA son parte del propio sistema de control de bus del
8086. HOLD ( terminal 31 ) indica la peticin del bus por un perifrico exterior.
Cuando otro procesador o un aparato como un controlador DMA quiere acceder al
control del bus, manda una seal al 8086 a travs de la lnea HOLD. Cuando est
preparado para hacerlo, el 8086 pone sus lneas de datos / direcciones y la mayora de
las lneas de control en el estado de alta impedancia. Al mismo tiempo, enva la seal
HLDA ( terminal 30 ) para indicar que el bus est libre. El otro aparato puede usar
ahora el bus. Cuando finaliza con el bus, enva una seal a la lnea HOLD.
Inmediatamente despus de recibir la seal, el 8086 reanuda el uso del bus.
El 8086 se comunica con los elementos externos a travs del bus del sistema.
Para transferir datos o buscar instrucciones, realiza los llamados ciclos de bus . El
ciclo de bus del 8086 consta de 4 periodos de reloj, llamados estados T. Durante el
S4 S3
0 0 Direccin relativa al segmento extra.
0 1 Direccin relativa al segmento Stack.
1 0 Direccin relativa al segmento de cdigo CS o ninguna.
1 1 Direccin relativa al segmento de datos DS.
Al mismo tiempo, en un ciclo de lectura, las 16 lneas de menos peso del bus
multiplexado quedan en estado de alta impedancia, mientras que si el ciclo es de
escritura, el dato aparece por estas lneas.
Durante el tercer perodo de reloj, T3, las 4 lneas de ms peso del bus de
direcciones siguen conteniendo la informacin sobre el estado. En una operacin de
escritura, el dato sigue presente en las 16 lneas de menos peso del bus multiplexado. En
un ciclo de lectura, la informacin existente en las 16 lneas de menos peso del bus
multiplexado es considerado vlido. Si el dispositivo no es capaz de transferir datos a la
velocidad requerida, deber indicarlo, introduciendo un nivel 0 por la lnea READY.
Esta seal es reconocida en el ltimo semiciclo de T, denominado TW. Cuando esto
ocurre, la CPU entra en un estado de espera ( WAIT ). Cuando haya terminado la
transferencia, el dispositivo mandar un nivel 1 por READY y comenzar la ejecucin
del cuarto perodo de reloj, T4.
9. LAS INTERRUPCIONES.
3FFH
PUNTERO TIPO 255
3FCH
(DISPONIBLE)
PUNTEROS DE
INTERRUPCION
DISPONIBLES
(224) PUNTERO TIPO 33
084H (DISPONIBLE)
PUNTERO TIPO 32
080H (DISPONIBLE)
07FH PUNTERO TIPO 31
(RESERVADO)
PUNTEROS DE
INTERRUPCION
RESERVADOS EN
INTEL (27)
PUNTERO TIPO 5
014H (RESERVADO)
PUNTERO TIPO 4
010H (REBOSAMIENTO)
PUNTERO TIPO 3
PUNTEROS DE (1 BYTE INSTRUC INT)
PUNTERO TIPO 2
INTERRUPCION
(NO ENMASCARABLE)
ESPECIFICOS (5) PUNTERO TIPO 1
004H (PESO SIMPLE)
PUNTERO TIPO 0 CS DIRECCION BASE
000H (ERROR EN DIVISION) IP DESPLAZAMIENTO
16 BITS
En este apartado vamos a ver una serie de chips que proveen al 8086 de
circuitera para tres tipos de funciones:
Las funciones de estos chips son vitales para el sistema, como la sincronizacin,
la conexin de los procesadores con el resto del sistema y la conexin de la
computadora con el mundo exterior.
El 8284 es un chip con 18 terminales que se utiliza para generar los pulsos del
8086 y sus perifricos. Los pulsos de reloj determinan la velocidad de funcionamiento
del sistema. La velocidad mxima estndar para estos procesadores es una frecuencia de
reloj de 5 Mhz, es decir, 200 nanosegundos por ciclo, aunque algunos chips particulares
Normalmente salen tres seales del generador de pulsos de reloj 8284 hacia el
procesador. Estas tres seales son CLK ( seal de reloj ), RESET y la seal de READY.
Las dos ltimas seales estn sincronizadas con CLK.
El 8284 genera otra seal que es PCLK ( reloj perifrico ), que funciona a la
mitad de la frecuencia de la seal CLK, con un ciclo de trabajo del 50 por 100. Est
previsto para sincronizar aquella lgica que requiera esta forma de temporizacin.
Adems de amplificar las seales del 8086 estos chips resuelven el problema del
exceso de seales para los 40 terminales del procesador 8086.
Existen otros dispositivos tales como el selector de bus 8289 que se utiliza en
sistemas grandes basados en el 8086. Realiza una conexin, o interfaz, entre el 8086 y
un bus del sistema con otros procesadores conectados.