Você está na página 1de 4

HOJA DE APOYO # 5

Procesador Intel 8086


Los Intel 8086 e Intel 8088 (i8086, llamado oficialmente iAPX 86, e i8088) son dos
microprocesadores de 16 bits diseados por Intel en 1978, iniciadores de la arquitectura x86. La diferencia
entre el i8086 y el i8088 es que este ltimo utiliza un bus externo de 8 bits, para poder emplear circuitos
de soporte al microprocesador ms econmicos, en contraposicin al bus de 16 bits del i8086.
Esquema de bloques del microprocesador Intel 8086.
1. Registros generales y de ndice (AX,BX, CX, DX y SI, DI,
BP, SP)
2. Registros de segmento (CS, DS, ES, SS)
3. Sumador de direcciones
4. Bus de direcciones (20 bits, es decir, 220 direcciones =
1 MB de direccionamiento)
5. Queue de instrucciones (cola de instrucciones)
6. Unidad de ejecucin (EU)
7. Lgica de control del bus??
8. Bus de datos de la ALU (16 bits)
9. Unidad Aritmtico Lgica (ALU)
10. Bus de direcciones
11. Bus de datos
12. Bus de control
Registros
Registros de propsito general
AH
BH
CH
DH

AL
BL
CL
DL

AX (Acumulador)
BX (Base)
CX (Contador)
DX (Datos)

Registros ndices
SI
DI
BP
SP

Source Index (ndice origen)


Destination Index (ndice Destino)
Base Pointer (Puntero Base)
Stack Pointer (Puntero de Pila)

Registro de Bandera
- - - - O D I T S Z - A - P - C Flags (Banderas)

Registros de Segmentos
CS
DS
ES
SS

Code Segment (Segmento de Cdigo)


Data Segment (Segmento de Datos)
ExtraSegment (Segmento Extra)
Stack Segment (Segmento de Pila)

Registro apuntador de instrucciones


IP

Instruction Pointer

Modelo de los registros


Los registros del i8086 e i8088 se basaron en el
diseo del Intel 8080 y el Intel 8085, y de hecho
son compatibles a nivel de ensamblador con el
i8080. El conjunto de registros tambin es similar al
del i8080, pero ampliados a 16 bits. Tanto el i8086
como el i8088 tienen cuatro registros generales de
16 bits, que tambin pueden ser accedidos como
ocho registros de 8 bits, y tienen cuatro registros
ndice de 16 bits (incluyendo el puntero de pila).
Los registros de datos se usan a veces de forma
implcita por las instrucciones, haciendo ms difcil
la organizacin de los registros para emplearlos con
valores temporales.
Los registros del procesador se emplean para
controlar instrucciones en ejecucin, manejar
direccionamiento de memoria y proporcionar
capacidad
aritmtica.
Los
registros
son

direccionables por medio de un nombre.


Registros de Propsito General
Los registros de propsito general AX, BX, CX y DX son los caballos de batalla del sistema. Son nicos en el
sentido de que se les puede direccionar como una palabra o como un byte.

Registro AX: El registro AX es el registro acumulador, es utilizado para operaciones que implican
entrada/salida y la mayor parte de la aritmtica.

HOJA DE APOYO # 5
Registro BX: El registro BX es el registro base, y es el nico registro de propsito general que puede ser
un ndice para direccionamiento indexado. Tambin es comn emplear el BX para clculos.
Registro CX: El registro CX es conocido como el registro contador. Puede contener un valor para controlar
el nmero de veces que un ciclo se repite o un valor para corrimiento de bits.
Registro DX: El registro DX es el registro de datos. Algunas operaciones de entrada/salida requieren su
pulso, y las operaciones de multiplicacin y divisin con cifras grandes suponen al DX y AX trabajando
juntos.
Registros ndice
Los registros SI y DI estn disponibles para direccionamiento indexado y para sumas y restas.
Registro SI: El registro ndice fuente de 16 bits es requerido por algunas operaciones con cadenas de
caracteres. El SI est asociado con el registro DS.
Registro DI: El registro ndice destino tambin es requerido por algunas operaciones con cadenas de
caracteres. El DI est asociado con el registro ES.
Registros Apuntadores
Los registros SP (apuntador de pila) y BP (apuntador base) estn asociados con el registro SS y permiten al
sistema accesar datos en el segmento de la pila.
Registro SP: El apuntador de pila de 16 bits est asociado con el registro SS y proporciona un valor de
desplazamiento que se refiere a la palabra actual que est siendo procesada en la pila. El sistema maneja
de manera automtica este registro.
Registro BP: El apuntador base de 16 bits facilita la referencia de parmetros, los cuales son datos y
direcciones transmitidos va la pila.
Registros de Banderas
Es un registro de 16 bits, de los cuales nueve sirven para indicar el estado actual de la mquina y el
resultado del procesamiento. Muchas instrucciones aritmticas y de comparacin cambian el estado de las
banderas y apoyndose de ellas determinan la accin subsecuente.
Los bits de las banderas son las siguientes:
OF (overflow, desbordamiento): Indica desbordamiento del bit de mayor orden despus de una
operacin aritmtica de nmeros signados (1=existe overflow; 0=no existe overflow). Para operaciones sin
signo, no se toma en cuenta esta bandera.
DF (direccin): Controla la seleccin de incremento o decremento de los registros SI o DI en las
operaciones con cadenas de caracteres (1=decremento automtico; 0=incremento). La bandera DF se
controla con las instrucciones STD y CLD.
IF (interrupcin): Indica que una interrupcin externa sea procesada o ignorada (1=habilita la
interrupcin; 0=deshabilita la interrupcin). El estado de la bandera IF se controla con las instrucciones STI
y CLI.
TF (trampa): Permite la operacin del procesador en modo de depuracin (paso a paso)
SF (signo): Contiene el signo resultante de una operacin aritmtica (0=positivo; 1=negativo).

HOJA DE APOYO # 5
ZF (cero): Indica el resultado de una operacin aritmtica o de comparacin (0=resultado diferente de
cero; 1=resultado igual a cero).
AF (acarreo auxiliar): Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmtica
especializada. Esta bandera se prueba con las instrucciones DAA y DAS para ajustar el valor de AL despus
de una suma o resta BCD.
PF (paridad): Indica paridad par o impar en una operacin de datos de ocho bits (0=paridad impar;
1=paridad par).
CF (acarreo): Contiene el acarreo de los bits de mayor orden despus de una operacin aritmtica;
tambin almacena el contenido del ltimo bit en una operacin de corrimiento o de rotacin.
Registros de Segmento
Definen reas de 64 Kb dentro del espacio de direcciones de 1 Mb del 8086. Estas reas pueden solaparse
total o parcialmente. No es posible acceder a una posicin de memoria no definida por algn segmento: si
es preciso, habr de moverse alguno.
Registro CS: El DOS almacena la direccin inicial del segmento de cdigo de un programa en el registro
CS. Esta direccin de segmento, ms un valor de desplazamiento en el registro apuntador de instruccin
(IP), indica la direccin de una instruccin que es buscada para su ejecucin. Para propsitos de
programacin normal, no se necesita referenciar el registro CS.
Registro DS: La direccin inicial de un segmento de datos de programa es almacenada en el registro DS.
Esta direccin, ms un valor de desplazamiento en una instruccin, genera una referencia a la localidad de
un byte especfico en el segmento de datos.
Registro SS: El registro SS permite la colocacin en memoria de una pila, para almacenamiento temporal
de direcciones y datos. El DOS almacena la direccin de inicio del segmento de pila de un programa en el
registro SS. Esta direccin de segmento, ms un valor de desplazamiento en el registro del apuntador de la
pila (SP), indica la palabra actual en la pila que est siendo direccionada. Para propsitos de programacin
normal, no se necesita referenciar el registro SS.
Registro ES: Algunas operaciones con cadenas de caracteres utilizan el registro extra de segmento para
manejar el direccionamiento de memoria. El registro ES est asociado con el registro DI (ndice). Un
programa que requiere el uso del registro ES puede inicializarlo con una direccin de segmento apropiada.
Registro Apuntador de Instrucciones
El registro IP de 16 bits contiene el desplazamiento de direccin de la siguiente instruccin que se ejecuta.
El IP est asociado con el registro CS en el sentido de que el IP indica la instruccin actual dentro del
segmento de cdigo que se est ejecutando actualmente.
Acceso a memoria
Ambos microprocesadores tienen un rango de entrada/salida de 64 Kbytes e interrupciones vectorizadas
fijas. La mayora de las instrucciones solo pueden acceder a una posicin de memoria, por lo que un
operando debe ser forzosamente un registro. El resultado se almacena en uno de los operandos.
Los i8086 e i8088 presentan cuatro registros de segmento (CS, DS, ES y SS), que se pueden establecer a
partir de los registros ndice. Debido a que estos procesadores pueden direccionar hasta 1 MB de memoria,
para lo que son necesarios 20 bits, ya que sus registros son de 16 bits, es necesario emplear registros de
segmento para acceder a toda la memoria. En lugar de suministrar los bits faltantes, como la mayora de
los procesadores segmentados, el i8086 y el i8088 desplazan un registro de segmento 4 bits hacia la
izquierda y lo suman a la direccin de memoria, siendo el resultado la direccin efectiva. Esto suele ser
considerado como un mal diseo, aunque puede ser aceptable, e incluso til en el lenguaje ensamblador.
Por el contrario, provoca confusin cuando se hace un uso extensivo de los punteros (como en el lenguaje

HOJA DE APOYO # 5
C), debido a que es posible que dos punteros con diferentes valores apunten a la misma direccin de
memoria. Peor an, este esquema de registros solapados hace difcil expandir el mapa de memoria a ms
de 1 MB, y de hecho, esto se cambi en el Intel 80286.
Patillaje

Pines del 8086


+--\/--+
<-<-<-<-<-<-<-<-<->
<->
<-<-<-<-<--

GND 1|
A14 <-> D14 2|
A13 <-> D13 3|
A12 <-> D12 4|
A11 <-> D11 5|
A10 <-> D10 6|
A9 <-> D9 7|
A8 <-> D8 8|
A7 <-> D7 9|
A6 <-> D6 10|

|40
|39
|38
|37
|36
|35
|34
|33
Intel |32
8086 |31

A5 <-> D5 11|

|30 HLDA, !RQ/!GT1 <-

A4
A3
A2
A1
A0

|29 !WR, !LOOK


|28 M/!IO, !S2
|27 DT/!R, !S1
|26 !DEN, !S0
|25 ALE, QS0
|24 !INTA, QS1
|23 !TEST <-|22 READY <-|21 RESET <--

<-> D4 12|
<-> D3 13|
<-> D2 14|
<-> D1 15|
<-> D0 16|
--> NMI 17|
-->INTR 18|
--> CLK 19|
GND 20|

Pines del 8086 y del 8088. La lneas del bus de direcciones se ven en
rojo, las del bus de datos en azul y las del bus de control en verde.
Las lneas del bus de energa se ven en negro. Estos procesadores
multiplexan en tiempo el bus de direcciones, con el bus de datos y
control. En el 8086 se ven los pines del 2 al 16 y los pines 35 al 39
con doble funcionalidad, en un momento determinado transporta la
direccin y en otro momento entran o salen los datos (o sale
informacin de algunas lneas del bus de control).

Vcc (+5V)
A15 --> D15 <->
A16 --> S3 -->
A17 --> S4 -->
A18 --> S5 -->
A19 --> S6 -->
!BHE/S7 -->
MN/!MX <-!RD
-->
HOLD, !RQ/!GTO <-

-->
-->
-->
-->
-->
-->

En el 8088 se comparten los pines 9 al 16 entre el bus de direcciones


y de datos, y los pines 35 al 38 entre el bus de direcciones y el de
control.

+------+

Adems del bus externo de datos, que se reduce a 8 bits, la

diferencia con el 8086 es mnima)

Pines del 8088


+--\_/--+
GND 1|
|40
<-- A14 2|
|39
<-- A13 3|
|38
<-- A12 4|
|37
<-- A11 5|
|36
<-- A10 6|
|35
<-- A9 7|
|34
<-- A8 8|
|33
<-> D7 <-- A7 9| Intel |32
<-> D6 <-- A6 10| 8088 |31

Velocidad

Vcc (+5V)
A15 -->
A16 --> S3 -->
A17 --> S4 -->
A18 --> S5 -->
A19 --> S6 -->
!SSO....HIGH, -->
MN/!MX
<-!RD
-->
HOLD....!RQ/!GTO <-

>

La frecuencia del reloj del i8086


10 MHz.
A continuacin se muestra el
necesarios para hacer algunas

<-> D5 <-- A5 11|

|30 HLDA....!RQ/!GT1 <-

<->
<->
<->
<->
<->

|29
|28
|27
|26
|25
|24
|23
|22
|21

>
D4 <-- A4 12|
D3 <-- A3 13|
D2 <-- A2 14|
D1 <-- A1 15|
D0 <-- A0 16|
--> NMI 17|
-->INTR 18|
--> CLK 19|
GND 20|

!WR.....!LOOK -->
M/!IO...!S2
-->
DT/!R...!S1
-->
!DEN....!S0
-->
ALE.....QS0
-->
!INTA...QS1
-->
!TEST
<-READY
<-RESET
<--

e i8088 se sita entre 4,77 MHz y

nmero de ciclos, aproximados,


operaciones:

+-------+
Suma: 3 - 4 (registro),
9+EA - 25+EA (acceso a memoria)
Multiplicacin: 70 - 118 (registro), 76+EA - 143+EA (acceso a memoria)
Movimiento de datos: 2 (registro), 8+EA - 14+EA (acceso a memoria)
Salto cercano: 11 - 15, 18+EA (acceso a memoria)
Salto lejano: 15, 24+EA (acceso a memoria)

EA: tiempo necesario para calcular la direccin de memoria efectiva, que va de 5 a 12 ciclos.
Coprocesador numrico
Ambos microprocesadores no tienen ninguna instruccin de coma flotante, pero se les puede aadir un
coprocesador matemtico para aadirles dichas instrucciones. El Intel 8087 era el coprocesador
matemtico ms comn, pero otros fabricantes como Weitek ofrecan otras alternativas con mayor
rendimiento.
Microcomputadoras que usan el i8086 o i8088
La primer microcomputadora que us el i8086 fue el Mycron 2000. Tambin fue usado por el procesador de
texto IBM Displaywriter. Por el contrario, la microcomputadora ms importante de todos, el IBM PC, us el
Intel 8088.

Você também pode gostar