Sei sulla pagina 1di 15

2da

UNIDAD
El Microprocesador
8086
Objetivos:
Comprender la arquitectura interna del microprocesador 8086.
Describir el circuito integrado del microprocesador 8086, sus patillas de
conexin a los buses y seales de control y la interconexin con otros
dispositivos para crear un sistema mnimo.
Conocer las caractersticas elctricas del microprocesador 8086.
Di!erenciar en un sistema mnimo si el microprocesador 8086 est" totalmente
re!or#ado o simplemente con su bus demultiplexado.
Comprender los ciclos b"sicos de traba$o del microprocesador 8086
1. Arquitectura de los procesadores 8086:
%l 8086 es un microprocesador de &6 bits, tanto en lo que se re!iere a su
estructura como en sus conexiones externas. Consta de una unidad de e$ecucin
'%() %xecution (nit* y una unidad inter!a# del bus '+,() +us ,nter!ace (nit*. -a
unidad de e$ecucin es la encargada de reali#ar todas las operaciones mientras
que la unidad de inter!a# del bus es la encargada de acceder a datos e
instrucciones del mundo exterior.
Unidad de Ejecucin en el 8086
Registros de la unidad de ejecucin: .ienen &6 bits y son oc/o)
&. AX 0 1egistro acumulador, dividido en AH y A '8 bits cada uno*. %l uso de
este registro se produce en general una instruccin que ocupa un byte
menos que si se utili#aran otros registros de uso general. -as instrucciones)
D223 D243 2223 2243 2253 22D3 -2673 42673 C+83 ,9 y :(. traba$an
con 2; o con uno de sus dos bytes '26 o 2-*. .ambin se utili#a este
registro $unto con D; 'a veces* en multiplicaciones y divisiones.
<. !X 0 1egistro base, dividido en !H y !. %s el registro base de propsito
similar. se usa para direccionamiento indirecto y es una versin m"s
potente del par de registros 6- de los procesadores de versiones
anteriores.
=. "X 0 1egistro contador, dividido en "H y ". 4e utili#a como contador en
bucles en la instruccin -::>, en operaciones con cadenas usando el
pre!i$o 1%> y en despla#amientos y rotaciones usando el registro C- en los
dos ?ltimos casos.
@. #X 0 1egistro de datos, dividido en #H y #. 4e utili#a $unto con el registro
2; en multiplicaciones y divisiones, en la instruccin C8D y en ,9 y :(.
para direccionamiento indirecto de puertos el registro D; indica el n?mero
de puerto de entradaAsalida.
B. $% 0 >untero de pila 'no se puede subdividir*. 4irve para almacenar las
direcciones de retorno de subrutinas y los datos temporarios 'mediante las
instrucciones >(46 y >:>*. 2l introducir 'pus/* un valor en la pila a este
registro se le resta dos, mientras que al extraer 'pop* un valor de la pila este
a registro se le suma dos.
6. !% 0 >untero base 'no se puede subdividir*. Ceneralmente se utili#a para
reali#ar direccionamiento indirecto dentro de la pila.
D. $& 0 >untero ndice 'no se puede subdividir*. 4irve como puntero !uente
para las operaciones con cadenas. .ambin sirve para reali#ar
direccionamiento indirecto.
8. #& 0 >untero destino 'no se puede subdividir*. 4irve como puntero destino
para las operaciones con cadenas. .ambin sirve para reali#ar
direccionamiento indirecto.
Cualquiera de estos registros puede utili#arse como !uente o destino en
operaciones aritmticas y lgicas, lo que no se puede /acer con ninguno de los
seis registros que se ver"n m"s adelante.
Unidad arit'(tica ) l*ica
%s la encargada de reali#ar las operaciones aritmticas 'suma, suma con
EarrastreE, resta, resta con EprstamoE y comparaciones* y lgicas '29D, :1, ;:1
y .%4.*. -as operaciones pueden ser de &6 bits o de 8 bits.
+e*istro de banderas ,-la*s. /&ndicadores0:
6ay nueve indicadores de un bit en este registro de &6 bits. -os cuatro bits m"s
signi!icativos est"n inde!inidos, mientras que /ay tres bits con valores
determinados) los bits B y = siempre valen cero y el bit & siempre vale uno 'esto
tambin ocurra en los procesadores anteriores*.
1egistro de indicadores '&6 bits*
!it &B &@ &= &< && &0 F 8 D 6 B @ = < & 0
-la* GG GG GG GG :7 D7 ,7 .7 47 H7 0 27 0 >7 & C7
"- /"arr) -la*1 bit 00: 4i vale &, indica que /ubo EarrastreE 'en caso de suma*
/acia, o EprstamoE 'en caso de resta* desde el bit de orden m"s signi!icativo del
resultado. %ste indicador es usado por instrucciones que suman o restan n?meros
que ocupan varios bytes. -as instrucciones de rotacin pueden aislar un bit de la
memoria o de un registro ponindolo en el C7.
%- /%arit) -la*1 bit 20: 4i vale uno, el resultado tiene paridad par, es decir, un
n?mero par de bits a &. %ste indicador se puede utili#ar para detectar errores en
transmisiones.
A- /Au3iliar) carr) -la*1 bit 40: 4i vale &, indica que /ubo EarrastreE o EprstamoE
del nibble 'cuatro bits* menos signi!icativo al nibble m"s signi!icativo. %ste
indicador se usa con las instrucciones de a$uste decimal.
5- /5ero -la*1 bit 60: 4i este indicador vale &, el resultado de la operacin es
cero.
$- /$i*n -la*1 bit 60: 1e!le$a el bit m"s signi!icativo del resultado. Como los
n?meros negativos se representan en la notacin de complemento a dos, este bit
representa el signo) 0 si es positivo, & si es negativo.
7- /7rap -la*1 bit 80: 4i vale &, el procesador est" en modo paso a paso. %n este
modo, la C>( autom"ticamente genera una interrupcin interna despus de cada
instruccin, permitiendo inspeccionar los resultados del programa a medida que se
e$ecuta instruccin por instruccin.
&- /&nterrupt -la*1 bit 80: 4i vale &, la C>( reconoce pedidos de interrupcin
externas enmascarables 'por el pin ,9.1*. 4i vale 0, no se reconocen tales
interrupciones. -as interrupciones no enmascarables y las internas siempre se
reconocen independientemente del valor de ,7.
#- /#irection -la*1 bit 100: 4i vale &, las instrucciones con cadenas su!rir"n
EautoGdecrementoE, esto es, se procesar"n las cadenas desde las direcciones m"s
altas de memoria /acia las m"s ba$as. 4i vale 0, /abr" EautoGincrementoE, lo que
quiere decir que las cadenas se procesar"n de Ei#quierda a derec/aE.
O- /Over9lo: 9la*1 bit 110: 4i vale &, /ubo un desborde en una operacin
aritmtica con signo, esto es, un dgito signi!icativo se perdi debido a que tamao
del resultado es mayor que el tamao del destino.
$iste'a de control de la unidad de ejecucin
%s el encargado de decodi!icar las instrucciones que le enva la cola y enviarle las
rdenes a la unidad aritmtica y lgica seg?n una tabla que tiene almacenada en
1:5 llamada C1:5 'Control 1ead :nly 5emory*.
"ola de instrucciones
2lmacena las instrucciones para ser e$ecutadas. -a cola se carga cuando el bus
est" desocupado, de esta manera se logra una mayor e!iciencia del mismo. -a
cola del 8086 tiene 6 bytes y se carga de a dos bytes por ve# debido al tamao del
bus de datos. %sta estructura tiene rendimiento ptimo cuando no se reali#an
saltos, ya que en este caso /abra que vaciar la cola porque no se van a e$ecutar
las instrucciones que van despus del salto y volverla a cargar con instrucciones
que se encuentran a partir de la direccin a donde se salta. Debido a esto las
instrucciones de salto son despus de multiplicaciones y divisiones las m"s lentas
de este microprocesador.
Unidad de &nter9a; con el !U$ /!&U0
Registros de la unidad de interfaz con el bus:
%l programador puede acceder a cinco registros de &6 bits cada uno, siendo
cuatro de ellos registros de segmento y el restante el puntero de instruccin ',>*.
-os registros de segmento se llaman)
"$: 1egistro de segmento de cdigo.
#$: 1egistro de segmento de datos.
E$: 1egistro de segmento extra.
$$: 1egistro de segmento de pila.

-a utili#acin de estos registros se explica m"s adelante, en la tercera unidad en
los modos de direccionamiento.
*ica de control del bus:
%l cometido de este bloque es poder unir los bloques anteriormente mencionados
con el mundo exterior, es decir, la memoria y los peri!ricos.
%l 8088 y el 808B siguen el mismo esquema de compartir los terminales
correspondientes a los 8 bits m"s ba$os del bus de direcciones con los 8 bits del
bus de datos, de manera que se a/orran 8 terminales para otras !unciones del
microprocesador. %l 8086 comparte los &6 bits del bus de datos con los &6 m"s
ba$os del bus de direcciones.
2. 7er'inales /pinout0 del 8086
%ste microprocesador est" encapsulado en el !ormato #&% 'Dual Inline Package*
de @0 patas 'veinte de cada lado*. -a distancia entre las patas es de 0,& pulgadas
'<,B@ milmetros*, mientras que la distancia entre patas en!rentadas es de 0,6
pulgadas '&B,=< milmetros*.
9tese en el gr"!ico el semicrculo que identi!ica la posicin de la pata &. %sto
sirve para no insertar el c/ip al revs en el circuito impreso.
%l 8086A8088 puede conectarse al circuito de dos !ormas distintas) el modo
m"ximo y el modo mnimo. %l modo queda determinado al poner un determinado
terminal 'llamado 59A5;* a tierra o a la tensin de alimentacin. %l 8086A8088
debe estar en modo m"ximo si se desea traba$ar en colaboracin con el
>rocesador de Datos 9umrico 808D yAo el >rocesador de %ntradaA4alida 808F.
%n este modo el 8086A8088 depende de otros c/ips adicionales como el
Controlador de +us 8<88 para generar el con$unto completo de seales del bus de
control. %l modo mnimo permite al 8086A8088 traba$ar de una !orma m"s
autnoma 'para circuitos m"s sencillos* en una manera casi idntica al
microprocesador 808B.
-os @0 pines del 8086 en modo mnimo tienen las siguientes !unciones)
&. <=# '.ierra*
<. A#14 '+us de direcciones y datos*
=. A#1> '+us de direcciones y datos*
@. A#12 '+us de direcciones y datos*
B. A#11 '+us de direcciones y datos*
6. A#10 '+us de direcciones y datos*
D. A#8 '+us de direcciones y datos*
8. A#8 '+us de direcciones y datos*
F. A#6 '+us de direcciones y datos*
&0. A#6 '+us de direcciones y datos*
&&. A#? '+us de direcciones y datos*
&<. A#4 '+us de direcciones y datos*
&=. A#> '+us de direcciones y datos*
&@. A#2 '+us de direcciones y datos*
&B. A#1 '+us de direcciones y datos*
&6. A#0 '+us de direcciones y datos*
&D. =@& '%ntrada de interrupcin no enmascarable*
&8. &=7+ '%ntrada de interrupcin enmascarable*
&F. "A '%ntrada de relo$ generada por el 8<8@*
<0. <=# '.ierra*
<&. +E$E7 '>ara iniciali#ar el 8088*
<<. +EA#B '>ara sincroni#ar peri!ricos y memorias lentas*
<=. 7E$7 %ntrada examinada por la instruccin 82,., si .%4. vale 0 la
instruccin 82,. act?a como un 9:>, si .%4. vale &, 82,. espera /asta
que .%4. regrese a 0.
<@. &=7A '%l microprocesador indica que reconoci la interrupcin*
<B. AE 'Cuando vale &, indica que salen direcciones por las lneas 2D, en
caso contrario, es el bus de datos*
<6. #E= 'Data enable) cuando vale cero debe /abilitar los transceptores 8<86 y
8<8D 'se conecta al pin de Eoutput enableE*, esto sirve para que no se
me#clen los datos y las direcciones*.
<D. #7C+ 'Data transmitAreceive) se conecta al pin de direccin de los c/ips
recin indicados*.
<8. @C&O '4i vale 0) operaciones con puertos, si vale &) operaciones con la
memoria*
<F. D+ 'Cuando vale cero /ay una escritura*
=0. H#A '6old 2cInoJledge) el 8086 reconoce el 6:-D*
=&. HO# ',ndica que otro integrado quiere aduearse del control de los buses,
generalmente se usa para D52 o acceso directo a memoria*.
=<. +# 'Cuando vale cero /ay una lectura*
==. @=C@X 'Cuando esta entrada est" en estado alto, el 8086 est" en modo
mnimo, en caso contrario est" en modo m"ximo*
=@. !HEC$6 'Kunto con 5A,: y D.A1 esta salida sirve para determinar estados
del 8086*
=B. A18C$6 '+us de direccionesAbit de estado*
=6. A18C$? '+us de direccionesAbit de estado*
=D. A16C$4 '+us de direccionesAbit de estado*
=8. A16C$> '+us de direccionesAbit de estado*
=F. A#1? '+us de direcciones y datos*
@0. Ecc 'LBM*
%n modo m"ximo 'cuando se aplica LBM al pin ==* /ay algunos pines que cambian
de signi!icado)
<@.G F$1) %stado de la cola de instrucciones 'bit &*.
<B.G F$0) %stado de la cola de instrucciones 'bit 0*.
<6.G $0) +it de estado 0.
<D.G $1) +it de estado &.
<8.G $2) +it de estado <.
<F.G CO"A) Cuando vale cero indica a otros controladores del bus 'otros
microprocesadores o un dispositivo de D52* que no deben ganar el
control del bus. 4e activa ponindose a cero cuando una instruccin tiene
el pre!i$o -:CN.
=0.G +FC<71) %s bidireccional y tiene la misma !uncin que 6:-DA6-D2 en
modo mnimo.
=&.G +FC<70) Como 1OAC.& pero tiene mayor prioridad.
=@.G %sta salida siempre est" a uno.
Funcin de los bits de estado S3 y S4
>. "aracterGsticas el(ctricas ) te'pori;acin
"aracterGsticas el(ctricas
>ara poder interconectar el 8086 as como cualquier otro dispositivo
semiconductor es necesario saber los requerimientos de corriente de entrada de
las terminales de entradas y as como la capacidad de corriente de salida m"xima
para las terminales de salidas.
Caractersticas de entradas)
9ivel -gico Molta$e Corriente
0 0.8M LAG &0u2
& <.0M LAG &0u2
Caractersticas de salida)
9ivel -gico Molta$e Corriente
0 0.@BM
&
<.0u2 m"ximo
& <.@DM G@00u2 m"ximo
4. $&$7E@A$ @&=&@O !A$A#O E= 8086
2 continuacin veremos los modelos utili#ados para construir los sistemas
basados en el microprocesador 8086.
@icroprocesador 8086 con un bus de direcciones de'ultiple3ado
1
La ayor!a de los dis"ositi#os lgicos est$ndar tienen un #oltaje de cero lgico $%io de &'4() "or lo *ue difiere en
&'&+( con el ,&,-) lo *ue reduce la inunidad al ruido entre cone%iones y "roduce una corriente de carga .acia los
dis"ositi#os interconectados) lo *ue no "erite as de /& co"onentes adicionales conectados al ,&,-' 0sto se soluciona
con el uso de buffer coo reforzaiento o aislaiento
%l dispositivo =D= 'D@-4=D=* son registros transparentes que permite por
medio de su entrada C 'que se conecta a la salida 2-% del 8086* trans!erir sus
datos de las entrada a la salidas. %sto ocurre cuando 2-% vale & y en poco tiempo
regresa a 0, pero el registro transparente mantiene el valor trans!erido.
@icroprocesador 8086 total'ente re9or;ado
%l dispositivo <@B 'D@-4<@B* es bu!!er octal y se utili#a para re!or#ar las
terminales del 8086 solucionando el problema de la conexin limitada de dic/as
terminales 're!uer#a la corriente de salida*, asi como el <@@
?. Operaciones !Hsicas ) #ia*ra'as de 7ie'po
%s indispensable entender la tempori#acin del bus del sistema antes de
seleccionar la memoria o dispositivo de %A4 para interconectar con los
microprocesadores 8086. %n esta seccin revisaremos el !uncionamiento de las
seales del bus y la tempori#acin b"sica de lectura y escritura de los 8086.
-unciona'iento bHsico del bus.
-os tres buses del 8086) direccin, dato y control, operan exactamente de la
misma !orma que los de cualquier otro microprocesador. 4i los datos son escritos
a la memoria, el microprocesador generar" la direccin de memoria en el bus de
direcciones, dar" salida a los datos a ser escrito en memoria por el bus de datos, y
emitir" una orden de escritura a memoria '8100 y 5A,:0&*. 4i los datos son
ledos desde la memoria, el microprocesador dar" salida a la direccin de
memoria por el bus de direcciones, emitir" una seal de lectura de memoria
'1D00 y 5A,:0&* y aceptar" los datos por medio del bus de datos.
7e'pori;acin en *eneral
-os microprocesadores 8086 utili#an la memoria y las %A4 en perodos llamados
Pciclos de bus1 Cada ciclo de bus equivale a @ periodos de relo$ '.* del sistema. 4i
el relo$ opera a B56# un ciclo de bus de un 8086 dura 800ns. %sto signi!ica que un
8086 lee o escribe datos de o /acia memoria o dispositivos de %A4 a una velocidad
de &.<B millones de veces por segundo y debido a la cola interna los 8086 puede
e$ecutar r"!agas de <.B millones de instrucciones por segundo '5,>4*. 2
continuacin veremos los ciclos de escritura y lectura de bus simpli!icado del 8086.
2iclo b$sico de escritura de un uP ,&,-'
2iclo b$sico de lectura un uP ,&,-'
Durante el primer perodo de relo$ en un ciclo de bus, llamado .&, suceden
muc/as cosas. -a direccin de la memoria o de la localidad de %A4 es enviada por
medio del bus de direcciones y las conexiones del bus de direcciones y datos.
Durante .&, tambin son emitidas las seales 2-%, D.A1 y 5A,:. -a seal 5A,:
indica si el bus de direcciones contiene una direccin de memoria o un puerto de
dispositivo de %A4.
Durante .<, los microprocesadores 8086 emiten la seal 1D o 81 y D%9 y
en caso de escritura, los datos a escribir aparecen en el bus de dato. %stos
eventos ocasionan que la memoria o el dispositivo de %A4 inicien una lectura o
escritura. -a seal D%9 /abilita los bu!!er del bus de dato, 'si existen en el
sistema*, de !orma que la memoria o el dispositivo de %A4 pueda recibir los datos a
escribir, o, operacin de lectura, /abilitando al microprocesador para admitir los
datos ledos desde la memoria o %A4.
1%2DQ es muestreada al !inal de .<, si esta seal esta en nivel ba$o en
este momento, .= se convierte en un estado de espera .J. %ste periodo de relo$
es proporcionado para permitir tiempo a la memoria para acceder datos. 4i el
ciclo de bus es de lectura, el bus de dato es muestreado al !inal de .=.
%n .@, todas las seales son desactivadas como preparacin para el
siguiente ciclo. %ste es tambin el tiempo cuando los 8086 muestrean las
conexiones del bus de datos en busca de datos desde la memoria o %A4. 2dem"s,
en este punto, el !lanco posterior de la seal 81 trans!iere datos a la memoria o
%A4.