MICROPROCESADOR 8086
El 8086
CARACTERISTICAS:
El 8086 dispone de instrucciones especiales para el tratamiento de
cadenas de caracteres.
Los registros del 8086 tienen una misin especfica, por lo que se podra
decir que cada uno de ellos tiene su propia personalidad, aunque varios
comparten tareas comunes.
El encapsulado del 8086 est formado por 40 patillas, simplificando as el
hardware, aunque es necesario la multiplexacin del bus de datos
con el de direcciones.
El 8086 dispone de un conjunto de registros, denominados cola de
instrucciones, en el cual se van almacenando de forma anticipada los
cdigos de las instrucciones, consiguiendo que este aumente su velocidad
de trabajo.
El 8086
CARACTERISTICAS:
Las 20 lneas del bus de direcciones slo permiten direccionar una
memoria de 1 Megabyte.
El 8086 requiere una seal de reloj exterior, siendo 5 y 8 Mhz las
frecuencias tpicas de funcionamiento.
El 8086 dispone de una arquitectura pipe line, es decir, que la CPU
puede seguir leyendo instrucciones en los tiempos en que el bus no se
utiliza.
El 8086
Arquitectura en pipeline
Los procesadores previos al 8086, estaban limitados
en su desempeo por la necesidad de realizar los
dos pasos principales de ejecucin del procesador:
Fetch/Execute, en forma secuencial. Es decir, no se puede
ejecutar una instruccin hasta que se traiga de memoria
(Fetch); y no podan traerse instrucciones de memoria
mientras ejecutaba una instruccin, pues el procesador
estaba ocupado.
El 8086
Arquitectura en pipeline
Para solucionar sto, Intel desarroll la arquitectura
en pipeline del Fetch/Execute, en la cual
simplemente se divide la tarea en dos secciones:
una encargada del Fetch (BIU)
y otra del Execute (EU).
El 8086
El 8086
El 8086
El 8086
MODELO DE PROGRAMACIN
DEL 8086.
El 8086
El 8086
El 8086
El 8086
Registros de segmento:
Definen reas de 64 Kb dentro del espacio de direcciones de 1 Mb del
8086. Estas reas pueden traslaparse total o parcialmente. No es posible
acceder a una posicin de memoria no definida por algn segmento: si es
preciso, habr de moverse alguno.
CS = Registro de segmento de cdigo (code segment).
Contiene la direccin del segmento con las instrucciones del
programa. Los programas de ms de 64 Kb requieren cambiar CS
peridicamente.
DS = Registro de segmento de datos (data segment).
Segmento del rea de datos del programa.
SS = Registro de segmento de pila (stack segment).
Segmento de pila.
ES = Registro de segmento extra (extra segment).
Segmento de ampliacin para zona de datos. Es extraordinariamente
til actuando en conjuncin con DS: con ambos se puede definir dos zonas
de 64 Kb, tan alejadas como se desee en el espacio de direcciones, entre
las que se pueden intercambiar datos
El 8086
El 8086
Puntero de instrucciones o
contador de programa
IP = Puntero de instruccin (instruction
pointer).
Marca el desplazamiento de la instruccin en curso dentro del
segmento de cdigo. Es automticamente modificado con la lectura de una
instruccin.
El 8086
Registros ndices:
SI
El 8086
El 8086
Bit
CF
Indicador de:
Acarreo ("Carry Flag")
Uso
Indicador de arrastre del bit de mayor orden,
que puede ocurrir en las operaciones
aritmticas suma y resta.
Si est activo Indica un nmero par de bits
activos (bits cuyo contenido es 1). Esta
informacin es til cuando el procesador
controla transmisiones de datos.
Indicador de ajuste en operaciones
aritmticas con cantidades BCD
PF
AF
Acarreo auxiliar
ZF
SF
TF
IF
DF
OF
El 8086
Bit
Indicador de:
Indicativo si bit 1
Indicativo si bit 0
CF
Acarreo
CY ("Carry yes")
NC ("No Carry")
PF
Paridad
AF
Acarreo auxiliar
AC ("Auxiliar Carry")
NA ("No Auxiliar")
ZF
Cero
ZR ("Zero")
NZ ("No Zero")
SF
Signo
NG ("Negative") negativo
PL ("Plus") positivo
IF
Interrupcin
EI
DF
Direccin
DN ("Down") decremento
UP incremento
O
F
Desbordamiento
OV ("Overflow")
NV ("No overflow")
El 8086
Segmentacin de la Memoria en el
8086
El 8086
SEGMENTACIN
FFFFF
Direccin lgica
Direccin
fsica
Desplaz
amiento
SEGMENTO
Registro de segmento
Direccin de segmento
CPU
0
Memoria
El 8086
Segmento de Memoria
FFFFF
SEGMENTO
Memoria
El 8086
Segmentos de Memoria
El segmento de cdigo (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.
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 8086
Segmentos de Memoria
- El segmento de pila (con SS como base).
- En l se desarrolla la pila del programa, utilizada para
almacn temporal 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 8086
SEGMENTACIN
TRASLAPE DE SEGMENTOS
CS
CS
SEGMENTO DE
CDIGO
PROGRAMA
SEGMENTO DE
CDIGO
DS
SEGMENTO DE
DATOS
OTRO SEGMENTO
ES
SEGMENTO EXTRA
DE DATOS
SS
STACK
MEMORIA
MEMORIA
El 8086
SEGMENTACIN
Relocalizacin de un programa usando el registro CS
02000
600
PROGRAMA
SEGMENTO DE
CDIGO EN CURSO
nuevo (CS)=1A30
1A300
600
PROGRAMA
MEMORIA
SEGMENTO DE
CDIGO
RELOCALIZADO
El 8086
El 8086
4 bits
Direccin de
segmento
0000
0000
Direccin fsica
20 BITS
EL REGISTRO DE
SEGMENTO SE
DESPLAZA 4 BITS
HACIA LA
IZQUIERDA
(MULTIPLICACIN
x16)
El 8086
El 8086