Temas arquitectura interna 8086 8088 de 13-08-10
-
Upload
franz-alex-fernandez-ceron -
Category
Education
-
view
613 -
download
4
Transcript of Temas arquitectura interna 8086 8088 de 13-08-10
Arquitectura del
8086/8088En 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).
MicroprocesadoresI
Arquitectura del Microproceasador 8086
Arquitectura del 8086/8088
Arquitectura de computadoras IIEl 8086
Estos microprocesadores
tiene 2 procesadores
conectados
internamente, estos
procesadores son:
EU
Unidad de ejecución
(Execution Unit).
BIU
Unidad de interfaz con el
Bus (Bus Interface Unit).
Arquitectura del Microproceasador 8086
La unidad de ejecución (EU)
La EU es la encargada de ejecutar las
instrucciones.
Arquitectura de computadoras IIEl 8086
Arquitectura del Microproceasador 8086
La Unidad de Interfase con el Bus (BIU)
Es la responsables de la comunicación externa del procesador. Se encarga de proporcionar las direcciones de la memoria y transmitir y recibir datos e instrucciones.
Arquitectura de computadoras IIEl 8086
Arquitectura del Microproceasador 8086
Registros de uso general
AX, BX, CX, DX: pueden utilizarse bien como registros de 16 bits o como dos registros separados de 8 bits (byte superior e inferior) cambiando la X
por H o L según queramos referirnos a la parte alta o baja respectivamente. Por ejemplo,
AX se descompone en AH (parte alta) y AL (parte baja). Evidentemente, ¡cualquier cambio sobre AH o AL altera AX
AX = Acumulador.
Es el registro principal, es utilizado en las instrucciones de multiplicación y división y en algunas instrucciones aritméticas especializadas, así como en ciertas operaciones de carácter específico como entrada, salida y traducción.
Arquitectura de computadoras IIEl 8086
Arquitectura del Microproceasador 8086
Registros de propósito general
Arquitectura de computadoras IIEl 8086
BX = Base.Se usa como registro base para referenciar
direcciones de memoria con direccionamiento indirecto.
CX = Contador.
Se utiliza comúnmente como contador en bucles y operaciones repetitivas de manejo de cadenas.
DX = Datos.Usado en conjunción con AX en las operaciones
de multiplicación y división. En las de entrada y salida se emplea para especificar la dirección del puerto E/S.
Arquitectura del Microproceasador 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 posición de memoria no definida por algún segmento: si es preciso, habrá de moverse alguno.
CS = Registro de segmento de código (code segment).Contiene la dirección del segmento con las instrucciones del
programa.
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 ampliación para zona de datos.
Arquitectura de computadoras IIEl 8086
Arquitectura del Microproceasador 8086
Registros punteros:Direccion de memoria=RS*16+desplazamiento(punteros)
Puntero de instrucciones o contador de
programa
Arquitectura de computadoras IIEl 8086
IP = Puntero de instrucción (instruction pointer). Marca el desplazamiento de la instrucción en curso dentro del segmento de
código. Es automáticamente modificado con la lectura de una instrucción.
Direccion efectiva=CS*16+IP
Arquitectura del Microproceasador 8086
Registros punteros de pila
SP = Puntero de pila (stack pointer).Apunta al inicio de la pila SS.
BP = Puntero base (base pointer).Es un puntero de base, que apunta a una zona dentro
de la pila SS.
Direccion efectiva=SS*16+BP
Direccion efectiva=SS*16+SP
Arquitectura de computadoras IIEl 8086
Arquitectura del Microproceasador 8086
Registros punteros índices DI y SI:
Arquitectura de computadoras IIEl 8086
SI = Índice fuente (source index).Apuntan al segmento de datos.
DI = Índice destino (destination index).Apuntan al segmento de datos y/o segmentoextra
Dirección efectiva=DS*16+SI
Dirección efectiva=DS*16+DI
Arquitectura del Microproceasador 8086
Registro de estado o de indicadores (flags)
Arquitectura de computadoras IIEl 8086
Es un registro de 16 bits de los cuales 9 son utilizados para indicar diversas situaciones durante la ejecución de un programa.
Los bits 0, 2, 4, 6, 7 y 11 son indicadores de condición, que reflejan los resultados de operaciones del programa.
Arquitectura del Microproceasador 8086
Bit
Señala desbordamiento aritméticoDesbordamiento (Overflow Flag")OF
Indica la dirección de las operaciones.Dirección ("Direction Flag")DF
Este bit controla el estado del sistema de
interrupciones enmascarables . Cuando está
activo (1) permite las interrupciones; el
estado inactivo (0) las deshabilita.
Interrupción ("Interrupt Flag")IF
Si está activo, el procesador genera
automáticamente una interrupción después
de la ejecución de cada instrucción, lo que
permite controlar paso a paso la ejecución del
programa. Este bit debe estar normalmente
inactivo (a 0).
Detención ("Trap Flag")TF
Si está activo indica que el resultado de
operación o de comparación son negativos.Signo ("Sign Flag")SF
Está activo si el resultado de operación es
cero o resultado de comparación igual.Cero ("Zero Flag")ZF
Indicador de ajuste en operaciones
aritméticas con cantidades BCD Acarreo auxiliarAF
Si está activo Indica un número par de bits
activos (bits cuyo contenido es 1). Esta
información es útil cuando el procesador
controla transmisiones de datos.
Paridad ("Parity Flag")PF
Indicador de arrastre del bit de mayor
orden, que puede ocurrir en las operaciones
aritméticas suma y resta.Acarreo ("Carry Flag")CF
UsoIndicador de:
Arquitectura de computadoras IIEl 8086
Arquitectura del Microproceasador 8086
SEGMENTACIÓN
Arquitectura de computadoras IIEl 8086
Dirección lógica
Registro de segmentoDesplaz
amiento
Dirección de segmento
Dirección física
CPU
SEGMENTO
Memoria
0
FFFFF
Arquitectura del Microproceasador 8086
Segmento de Memoria
Un segmento es un área continua de memoria que puede tener hasta 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 traslaparse con otros segmentos.
SEGMENTO
Memoria
0
FFFFF
Arquitectura de computadoras IIEl 8086
Arquitectura del Microproceasador 8086
SEGMENTACIÓN
Arquitectura de computadoras IIEl 8086
02000
SEGMENTO DE
CÓDIGO
RELOCALIZADO
SEGMENTO DE
CÓDIGO EN CURSO
PROGRAMA
MEMORIA
Relocalización de un programa usando el registro CS
PROGRAMA
600
1A300
600
nuevo (CS)=1A30
Arquitectura del Microproceasador 8086
Formación de una Dirección Física
Arquitectura de computadoras IIEl 8086
0000
4 bits
Dirección de
segmento
Dirección
efectiva,
lógica u
offset
Dirección física
EL REGISTRO DE SEGMENTO SE DESPLAZA 4 BITS HACIA LA IZQUIERDA (MULTIPLICACIÓN x16)
20 BITS
Siempre que una memoria es accesada , se genera una dirección física a partir de la dirección lógica.
Arquitectura del Microproceasador 8086
Terminales (pinout) del 8088
Este microprocesador está encapsulado en el formato DIP (Dual Inline Package) de 40 patas (veinte de cada lado).
FUNCION DE LOS PINES DEL
8086/8088 GND (Masa)
A14 (Bus de direcciones)
A13 (Bus de direcciones)
A12 (Bus de direcciones)
A11 (Bus de direcciones)
A10 (Bus de direcciones)
A9 (Bus de direcciones)
A8 (Bus de direcciones)
AD7 (Bus de direcciones y datos)
AD6 (Bus de direcciones y datos)
AD5 (Bus de direcciones y datos)
AD4 (Bus de direcciones y datos)
AD3 (Bus de direcciones y datos)
AD2 (Bus de direcciones y datos)
AD1 (Bus de direcciones y datos)
AD0 (Bus de direcciones y datos)
NMI (Entrada de interrupción no enmascarable)
INTR (Entrada de interrupción enmascarable)
CLK (Entrada de reloj generada por el 8284)
GND (Masa)
RESET (Para inicializar el 8088)
READY (Para sincronizar periféricos y memorias lentas)
Test Este pin de entrada se prueba por la instrucción espera de prueba.
FUNCION DE LOS PINES DEL
8086/8088
/INTA (El 8088 indica que reconoció la interrupción)
ALE (Indica que salen direcciones por AD, en caso contrario, es el bus de datos)
/DEN (Data enable: habilita los transceptores 8286 y 8287 (se conecta al pin de "output enable"), esto sirve para que no se mezclen los datos y las direcciones).
DT/R (Data transmit/receive: se conecta al pin de dirección de los chips recién indicados).
IO/M (Si vale 1: operaciones con ports, si vale 0: operaciones con la memoria)
/WR (Cuando vale cero hay una escritura)
HLDA (Hold Acknowledge: el 8088 reconoce el HOLD)
HOLD (Indica que otro integrado quiere adueñarse del control de los buses, generalmente se usa para DMA o acceso directo a memoria).
/RD (Cuando vale cero hay una lectura)
MN/MX (Cuando esta entrada está en estado alto, el 8088 está en modo mínimo, en caso contrario está en modo máximo)
/SSO (Junto con IO/M y DT/R esta salida sirve para determinar estados del 8088)
A19/S6 (Bus de direcciones/bit de estado)
A18/S5 (Bus de direcciones/bit de estado)
A17/S4 (Bus de direcciones/bit de estado)
A16/S3 (Bus de direcciones/bit de estado)
A15 (Bus de direcciones)
Vcc (+5V)