PDF de programación - El microprocesador de 16 bits 8086

Imágen de pdf El microprocesador de 16 bits 8086

El microprocesador de 16 bits 8086gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 15 de Diciembre del 2017)
1.854 visualizaciones desde el 15 de Diciembre del 2017
47,8 KB
12 paginas
Creado hace 21a (18/02/2003)
Universidad de Alcalá
Departamento de Automática

I. T. Informática de Sistemas
Laboratorio de Microprocesadores




INTRODUCCIÓN

El microprocesador de 16 bits 8086

En 1978 Intel sacó al mercado el 8086, con un bus de datos de 16 bits y capaz de
direccionar hasta 1 Mb de memoria. La importancia del 8086 se debe a que fue elegido por IBM
para desarrollar el Personal Computer, que fue tomado como estándar por casi todos los
fabricantes de ordenadores. Posteriormente Intel fabricó sucesivamente el 80186, el 80286, el
80386, el i486 y los Pentiums, manteniendo en todos ellos la compatibilidad software con los
anteriores.



MODELO DE PROGRAMACIÓN

15 ES 0
15 DS 0
15 SS 0
15 DS 0

15 IP 0

15 AH 8
15 BH 8
15 CH 8
15 DH 8

7 AL 0
7 BL 0
7 CL 0
7 DL 0

AX
BX
CX
DX

15 SP 0
15 BP 0
15 SI 0
15 DI 0

O D I T S Z

A

P

C

PSW



TERMINALES EN EL 8086
• Alimentación única de +5V y dos terminales de GND.
• Entrada única de reloj CLK que requiere una relación cíclica del 30%.
• Una línea de entrada de RESET.
• Terminal de entrada MN/MX para seleccionar los modos mínimo o máximo en la CPU. En el
modo mínimo la CPU genera las señales de control del sistema, está pensado para sistemas
sencillos. En el modo máximo, pensado para aplicaciones complejas, es necesario un circuito
controlador de bus (8288).

• Bus de datos de 16 bits, cuyas líneas están multiplexadas con las 16 líneas de menor peso del

bus de direcciones (AD0-AD15).

• Bus de direcciones de 20 bits. Las cuatro líneas de mayor peso (D16-D19) están

multiplexadas con cuatro de las 8 líneas indicadoras del estado del procesador.

• Ocho líneas de salida indicadoras del estado del procesador (S0-S7), multiplexadas con

• Terminal de salida /BHE (multipexada con S7) que habilita la parte alta (D8-D15) del bus de

• Terminal de entrada READY utilizada para sincronizar el procesador con periféricos o

distintas señales.

datos.

memorias más lentas.

8086

Página 1



Universidad de Alcalá
I. T. Informática de Sistemas
Departamento de Automática
Laboratorio de Microprocesadores

• Terminal de salida /RD para indicar operación de lectura y /WR para indicar operación de

escritura en memoria o puerto de entrada/salida.

para o no el procesador hasta una interrupción.

• Terminal de salida M/IO que indica si el acceso es a memoria o a un puerto.
• Terminal de entrada /TEST que es examinado en la instrucción WAIT para determinar si se
• Dos líneas de entrada de interrupciones: INTR (enmascarable) y NMI (no enmascarable).
• Línea de salida /INTA de reconocimiento de petición de interrupción enmascarable.
• Línea de salida ALE que indica dirección válida en el bus de direcciones/datos.
• Terminal de salida /DEN que valida el traspaso de datos en el bus de datos.
• Línea de salida DT/R que indica el sentido de la transferencia en el bus de datos.
• Terminal de entrada HOLD para que otro dispositivo tome el control del bus y terminal de

salida HLDA de cesión del citado bus.

• Terminales de salida que informan sobre el estado del procesador: S0-S2 indican la
operación que se está ejecutando, S3-S3 están multiplexadas con A16-A17 e indican el
registro de segmento que se está utilizando y S5 (multiplexada con A18) reproduce el flag I.

• Las señales RQ/GT0 RQ/GT1 permiten la comunicación con otros procesadores del mismo

bus local.

• La señal de salida /LOCK se activa con las instrucciones que incluyen el prefijo LOCK, para

indicar que no es posible la cesión del bus a ningún otro procesador.

• Las líneas QS0-QS1 informan sobre el estado de la cola interna de instrucciones.


Las señales M/IO, /WR, /INTA, ALE, DT/R, /DEN, HOLD y HLDA son exclusivas del

modo mínimo. Las señales S0-S2, RQ/GT0, RQ/GT1, /LOCK y QS0-QS1 solo están disponibles
en modo máximo

EL REGISTRO DE ESTADO (PSW)

• C (Carry) Flag de acarreo.
• P (Parity) Flag indicador de paridad.
• A (Auxiliar) Flag de acarreo auxiliar (del bit 3 al bit 4).
• Z (Zero) Flag indicador de cero.
• S (Sign) Flag indicador de signo del resultado.
• T (Trap) Flag indicador de ejecución paso a paso.
• I (Interrupt) Flag habilitación de interrupciones enmascarables.
• D (Direction) Flag de dirección ascendente/descendente en instrucciones de cadenas.
• O (Overflow) Flag indicador de desbordamiento.


INTERRUPCIONES

El 8086 puede tratar 256 tipos diferentes de interrupciones, que se numeran en
hexadecimal entre 0x00 y 0xFF y, según el modo en el que se producen, pueden ser internas
o externas. Las interrupciones externas son aquellas producidas por señales eléctricas
procedentes del exterior del microprocesador, normalmente producidas por los periféricos. Las
interrupciones internas son las producidas por la propia CPU en la ejecución de un programa
(por ejemplo ante el intento de división por cero) o por una instrucción específica (son las
interrupciones programadas que se producen cuando se ejecuta la instrucción INT).


Para poder realizar la gestión de todas las interrupciones, los primeros 1024 bytes de
memoria están reservadas para los vectores de interrupción que almacenan los valores que se



8086

Página 2





internas:



La propia CPU del 8086 es capaz de generar automáticamente tres interrupciones

• La interrupción 0 que se genera cuando se produce un intento de división por cero.
• La interrupción 1 que se genera después de ejecutarse cada instrucción si el flag T del
registro de estado está a 1, lo que permite la ejecución paso a paso y la depuración de
programas.

• La interrupción 4 es la interrupción de overflow y se genera cuando se produce una

Universidad de Alcalá
Departamento de Automática

I. T. Informática de Sistemas
Laboratorio de Microprocesadores


deben cargar en los registros IP y CS, para ejecutar la rutina de atención a la interrupción
correspondiente (la interrupción N tendrá su vector de interrupción a partir del byte de dirección
Nx4).




• La línea NMI, que provoca una interrupción no enmascarable que es atendida siempre

El 8086 dispone de dos líneas de petición de interrupción hardware:

mediante la rutina de vector 2.

• La línea INTR, que provoca una interrupción enmascarable, que solo será atendida si el
flag I está a 1, recibiendo en las 8 líneas de menor peso del bus de datos el número del
vector de interrupción. Esta línea es controlada por el circuito PIC (Programmable
Interrupt Controller) que se encarga también de situar el número de interrupción en el bus
de datos.

operación aritmética con desbordamiento.



Mediante la instrucción INT num se genera la interrupción representada por num, que



será atendida siempre, independientemente del estado del flag I.

ORGANIZACIÓN DE LA MEMORIA EN EL 8086

Aunque el 8086 dispone de 20 líneas en el bus de direcciones, la dirección de memoria se
obtiene a partir de dos registros de 16 bits mediante un sistema de segmentación de la memoria,
que equivale a subdividir la memoria en segmentos de 64 Kb, de modo que un registro de
segmento determina la dirección de comienzo de ese segmento de memoria y la posición relativa
(off-set o desplazamiento) la fija otro registro también de 16 bits. Así mediante la combinación
de ambos registros es posible direccionar cada una de las 65536 posiciones del segmento de 64
Kb.


Mediante la segmentación, los 5 dígitos hexadecimales necesarios para direccionar hasta
1 Mb, se obtienen desplazando un dígito a la izquierda el número representado en el registro de
segmento y sumándolo al número que representa el desplazamiento con respecto al origen, es
decir:


DIRECCIÓN FÍSICA = SEGMENTO * 16 + DESPLAZAMIENTO





Cuando se utiliza el método segmentado, las direcciones se expresan mediante el número
base y el offset o desplazamiento, ambos de 4 dígitos hexadecimales y separados por dos puntos.
Por ejemplo la dirección física 56F7A se puede representar escribiendo 56F7:000A ó
5000:6F7A ó 5600:0F7A, ... Con este procedimiento, toda la memoria puede dividirse en
segmentos, los cuales comienzan siempre en una dirección múltiplo de 16 y que, por supuesto,
pueden solaparse.


A la vista del su modelo de programación, el 8086 puede operar con datos de tipo byte y

de tipo palabra que se almacenan en memoria según el convenio de Intel, es decir, con la parte

8086

Página 3



Universidad de Alcalá
Departamento de Automática

I. T. Informática de Sistemas
Laboratorio de Microprocesadores


menos significativa siempre en la dirección más baja, de modo que, por ejemplo, si suponemos
que AX=1234 y que TABLA representa a la dirección 100h (dentro del segmento de datos), la
instrucción MOV TABLA,AX hará que se almacene 34h en la dirección 100h y 12 en la 101h.

LENGUAJE ENSAMBLADOR DEL 8086

El ensamblador del 8086 establece para las líneas de programa la siguiente sintaxis:


Etiqueta: Código_de_Operación Operandos ;Comentarios


El
  • Links de descarga
http://lwp-l.com/pdf7890

Comentarios de: El microprocesador de 16 bits 8086 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad