Está en la página 1de 46

ESCUELA PROFESIONAL DE INGENIERÍA

ELECTRÓNICA Y TELECOMUNICACIONES
CATEDRA: MICROPROCESADORES Y
MICROCONTROLADORES
CATEDRATICO:
ING. MARIA DEL CARMEN SANTILLANA CALLE
CICLO: VI
INTEGRANTES:
CAHUANA VILCA OMAR
DAVID BUENO CARLOS
MORALES QUIÑONES JOSE
USEDA ALIAGA JUAN
EL MICROPROCESADOR 8086 Y
SU ARQUITECTURA
Microprocesadores de 4 bits
En 1971, una compañía que se dedicaba a la fabricación de
memorias electrónicas lanzó al mercado el primer
microprocesador del mundo. Este microprocesador fue el
resultado de un trabajo encargado por una empresa que se
dedicaba a la fabricación de calculadoras electrónicas. El
4004 era un microprocesador de 4 bits capaz de direccionar
4096 localidades de memoria de 4 bits de ancho. Este
microprocesador contaba con un conjunto de 45
instrucciones y fue ampliamente utilizado en los primeros
videojuegos y sistemas de control.
Microprocesadores de 8 bits
 Con la aparición de aplicaciones más complejas para el
microprocesador y el gran éxito comercial del 4004, Intel decidió
lanzar al mercado un nuevo microprocesador, el 8008, éste fue el
primer microprocesador de 8 bits. Las características de este
microprocesador fueron:

 Capacidad de direccionamiento de 16 Kb
 Memoria de 8 bits
 Conjunto de 48 instrucciones

 Las mejoras consistieron en un conjunto más grande de instrucciones,


mayor capacidad de direccionamiento y una mayor velocidad de
procesamiento.
8086
El microprocesador 8086 puede trabajar en dos modos diferentes: el modo
mínimo y el modo máximo.

En el modo máximo el microprocesador puede trabajar en forma conjunta con


un microprocesador de datos numérico 8087 y algunos otros circuitos periféricos.

En el modo mínimo el microprocesador trabaja de forma más autónoma al no


depender de circuitos auxiliares, pero esto a su vez le resta flexibilidad.

En cualquiera de los dos modos, las terminales del microprocesador se pueden


agrupar de la siguiente forma:

 Alimentación
 Reloj
 Control y estado
 Direcciones
 Datos
Arquitectura del 8086/8088
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).
8086/8088 Organización Interna
Registros
 Los registros del procesador se emplean para controlar
instrucciones en ejecución, manejar direccionamiento de
memoria y proporcionar capacidad aritmética. Los registros son
direccionables por medio de un nombre. Los bits por
convención, se numeran de derecha a izquierda, como en:

... 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
 Registros de segmento
Un registro de segmento tiene 16 bits de longitud y facilita un área de memoria para
direccionamiento conocida como el segmento actual.
Registro CS. El DOS almacena la dirección inicial del segmento de código de un programa en el
registro CS. Esta dirección de segmento, mas un valor de desplazamiento en el registro apuntador
de instrucción (IP), indica la dirección de una instrucción que es buscada para su ejecución.
Registro DS. La dirección inicial de un segmento de datos de programa es almacenada en el
registro DS. En términos sencillos, esta dirección, mas un valor de desplazamiento en una
instrucción, genera una referencia a la localidad de un byte especifico en el segmento de datos.

Registro SS. El registro SS permite la colocación en memoria de una pila, para almacenamiento
temporal de direcciones y datos. El DOS almacena la dirección de inicio del segmento de pila de un
programa en le registro SS. Esta dirección de segmento, mas un valor de desplazamiento en el
registro del apuntador de pila (SP), indica la palabra actual en la pila que esta siendo direccionada.

Registros ES. Alguna operaciones con cadenas de caracteres (datos de caracteres) utilizan el
registro extra de segmento para manejar el direccionamiento de memoria. En este contexto, el
registro ES esta asociado con el registro DI (índice). Un programa que requiere el uso del registro
ES puede inicializarlo con una dirección de segmento apropiada.

Registros FS y GS. Son registros extra de segmento en los procesadores 80386 y posteriores.
 Registros de propósito general.

Los registros de propósito general AX, BX, CX y DX son los motores sistema. Son únicos en el sentido
de que se puede direccionarlos como una palabra o como una parte de un byte. El ultimo byte de la
izquierda es la parte "alta", y el ultimo byte de la derecha es la parte "baja". Por ejemplo, el registro CX
consta de una parte CH (alta) y una parte Cl (baja).

 Registro AX. El registro AX, el acumulador principal, es utilizado para operaciones que implican
entrada/salida y la mayor parte de la aritmética. Por ejemplo, las instrucciones para multiplicar ,
dividir y traducir suponen el uso del AX. También, algunas operaciones generan código mas eficiente
si se refieren al AX en lugar de a los otros registros.

 Registro BX. El BX es conocido como el registro base ya que es el único registro de propósito general
que puede ser índice para direccionamiento indexado. También es común emplear el BX para cálculos.

 Registro CX. El DX es conocido como l registro de datos. Alguna operaciones de entrada/salida


requieren uso, y las operaciones de multiplicación y división con cifras grandes suponen al DX y al AX
trabajando juntos.
Registros Apuntadores.

Los registros SP (apuntador de la pila) Y BP


(apuntador de base) están asociados con el registro SS
y permiten al sistema accesar datos en el segmento de
la pila.
 Registro SP. El apuntador de la pila de 16 bits esta asociado con el registro SS y
proporciona un valor de desplazamiento que se refiere a la palabra actual que
esta siendo procesada en la pila.

 En el ejemplo siguiente, el registro SS contiene la dirección de segmento


27B30H y el SP el desplazamiento 312H. Para encontrar la palabra actual que
esta siendo procesada en la pila, la computadora combina las direcciones en el
SS y el SP:

 Registro BP. El BP de 16 bits facilita la referencia de parámetros, los cuales son


datos y direcciones transmitidos vía pila.
 Registros Indice.

 Los registros SI y DI están 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). En este contexto, el SI esta asociado con el registro DS. Los
procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el
ESI.
 Registro DI. El registro índice destino también es requerido por algunas operaciones con
cadenas de caracteres. En este contexto, el DI esta asociado con el registro ES. Los
procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el
EDI.
 Registro de Banderas.

 De los 16 bits del registro de banderas, nueve son comunes a toda la familia de
procesadores 8086, y sirven para indicar el estado actual de la maquina y el resultado del
procesamiento. Muchas instrucciones que piden comparaciones y aritmética cambian el
estado de las banderas, algunas cuyas instrucciones pueden realizar pruebas para
determinar la acción subsecuente. En resumen, los bits de las banderas comunes son
como sigue:
 OF (Overflow, desbordamiento). Indica desbordamiento de un bit de orden alto (mas a
la izquierda) después de una operación aritmética.
 DF (dirección). Designa la dirección hacia la izquierda o hacia la derecha para mover o comparar
cadenas de caracteres.

 IF (interrupción). Indica que una interrupción externa, como la entrada desde el teclado, sea
procesada o ignorada.
 TF (trampa). Permite la operación del procesador en modo de un paso. Los programas depuradores,
como el DEBUG, activan esta bandera de manera que usted pueda avanzar en la ejecución de una sola
instrucción a un tiempo, para examinar el efecto de esa instrucción sobre los registros de memoria.
 SF (signo). Contiene el signo resultante de una operación aritmética (0 = positivo y 1 = negativo).

 ZF (cero). Indica el resultado de una operación aritmética o de comparación (0 = resultado diferente


de cero y 1 = resultado igual a cero).
 AF (acarreo auxiliar). Contiene un acarreo externo del bit 3 en un dato de 8 bits para aritmética
especializada.
 PF (paridad). Indica paridad par o impar de una operación en datos de 8 bits de bajo orden (mas a la
derecha).
 CF (acarreo). Contiene el acarreo de orden mas alto (mas a la izquierda) después de una operación
aritmética; también lleva el contenido del ultimo bit en una operación de corrimiento o de rotación.
Las banderas están en el registro de banderas en las siguientes posiciones:
Modelo de programación y uso
del Lenguaje de Ensamblaje
Flags
Repaso de Arquitectura del 8086 (presentación
previa)
Existe un registro que se conoce como el Flags
Register y está ubicado en el Execution Unit en la
familia INTEL® 8086/8088.
Este posee nueve (9) bits de estatus y control
independientes denominados “flags” (banderas).
Flags

Algunas “banderas”, específicamente las
denominadas de estatus son utilizadas para
indicar una condición luego de que una
instrucción ha sido ejecutada por el ALU
como:
CF = carry sum
ZF = zero flag
SF = sign flag
Flags
Otras “banderas”, específicamente las
denominadas de control, son utilizadas
para alterar operaciones del procesador
en ciertas ocasiones.
Interrupt Enable
Direction
Trap
Flags
TF DF IF OF SF ZF AF PF CF

CF = Carry
PF = Parity
AF = Aux carry
ZF = Zero
SF = Sign
OF = Overflow
IF = Interrupt enable
DF = Direction
TF = Trap
Flags 8086/8088
Ahora…hablemos del modelo de programación y el uso del
lenguaje de ensamblaje para la familia INTEL…
Modelo de programación de la familia
INTEL®
La familia de microprocesadores INTEL® ha
evolucionado desde los modelos 8086/8066 hasta los
modelos más recientes de Pentium.
Las adelantos más significativos desde el 8086/8088
hasta el Pentium incluyeron entre otros:
 Mayor capacidad de bits en registros
 Un alcance de acceso a memoria mucho mayor al posible

previamente
Registros Generales en el 8086/8088

Recuerde que los registros generales del 8086/8088 poseen 16


bits de capacidad. Permitiendo combinaciones entre registros
generales y registros “pointer and index” para alcanzar
direcciones en memoria con hasta 20 bits.
Recuerde: 2 ^ 20 = ?
Registros Generales en los modelos
Pentium™

Los modelos Pentium fueron objeto de un aumento en


la capacidad en bits de sus registros generales.
Registros Generales en los modelos
Pentium™
En la figura anterior vemos como los registros
generales del modelo Pentium alcanzaron hasta 32 bits
en capacidad.
Es importante señalar que los cambios comenzaron a
ciencia cierta con el modelo 80386, (mi primer Micro…).
Este aumento le ofrece mayor alcance en memoria a
esta arquitectura de microprocesador.
Conteste:
 Alcance en memoria: ???
Compatibilidad en la familia INTEL®
Importante:
La familia INTEL posee compatibilidad. Es decir, los
programas creados para los modelos 8086/8088 se
pueden ejecutar en los modelos Pentium.
Cuando esto ocurre se dice que estamos trabajando en el
Real Mode.
No necesariamente lo opuesto es también cierto. Es
decir, no se espera que se ejecuten programas
escritos para los modelos Pentium en los modelos
8086/8088.
Programación en Lenguaje de Ensamblaje
El uso de los programas
Los micro necesitan de
unos programas que son
quienes controlan la
ejecución de los
procesos.
Es decir, un micro sin un
programa que los dirija
es un circuito integrado
de alto nivel en reposo.
Este flujo-grama describe la
serie de pasos o instrucciones
que un programa posee para
Flujo-grama
realizar la suma de una serie de
números.
Se inicializa un registro
Se señala al primer numero en
memoria
Se decide el próximo paso
dependiendo del valor
Si no es cero se continua a
sumar lo que esta en memoria al
valor que estaba en el registro
Se señala al próximo numero en
memoria y así continua el
proceso.
Flowchart
Leguaje de Ensamblaje

Luego el flujo-grama se escribe en líneas de código o


instrucciones en lenguaje de ensamblaje. Se utiliza un
léxico similar al ingles.
Recuerde que este léxico se conoce como: mnemonic
al cual comúnmente se le conoce como op-code.
English-like
Assembly
Language

Assembler
Recuerde…el micro
entiende binario…
es decir código de
máquina.
Binary

Figure 12-3 Block diagram of microprocessor programming


Ejemplo para ejecutar
en su máquina…
…ok…vamos a explicar…

(Anote por favor…)


Ejecutando el programa con la herramienta
de Debug…
…Debug…
Ejecucion del
programa
mostrado en la
pantalla de
Debug…
Ejemplo
Construcción de un programa en assembler…
Flujo-grama del ejemplo
Este siempre será el primer paso en la construcción de un
programa.
Ejecución del programa del Ejemplo 12-2 en
el Debug…
Estado de la data en los registros y memoria antes y
después de ejecutar el programa del ejemplo 12-2.
Microprocesador 8086/8088
MAXIMUM MINIMUM
MODE MODE

GND 1 40 Vcc
AD14 AD15
AD13 A16,S3
AD12 A17,S4
AD11 A18,S5
AD10 A19,S6
AD9 /BHE,S7
AD8 MN,/MX
AD7 /RD
AD6 /RQ,/GT0 HOLD
AD5
8086 /RQ,/GT1 HLDA
AD4 /LOCK /WR
AD3 /S2 IO/M
AD2 /S1 DT/R
AD1 /S0 /DEN
AD0 QS0 ALE
NMI QS1 /INTA
INTR /TEST
CLK READY
GND 20 21 RESET
MAXIMUM MINIMUM MAXIMUM MINIMUM
MODE MODE MODE MODE

GND 1 40 Vcc GND 1 40 Vcc


AD14 AD15 A14 A15
AD13 A16,S3 A13 A16,S3
AD12 A17,S4 A12 A17,S4
AD11 A18,S5 A11 A18,S5
AD10 A19,S6 A10 A19,S6
AD9 /BHE,S7 A9 high /SS0
AD8 MN,/MX A8 MN,/MX
AD7 /RD AD7 /RD
AD6 /RQ,/GT0 HOLD AD6 /RQ,/GT0 HOLD
8086 AD5
8088 /RQ,/GT1 HLDA
AD5 /RQ,/GT1 HLDA
AD4 /LOCK /WR AD4 /LOCK /WR
AD3 /S2 IO/M AD3 /S2 IO/M
AD2 /S1 DT/R AD2 /S1 DT/R
AD1 /S0 /DEN AD1 /S0 /DEN
AD0 QS0 ALE AD0 QS0 ALE
NMI QS1 /INTA NMI QS1 /INTA
INTR /TEST INTR /TEST
CLK READY CLK READY
GND 20 21 RESET GND 20 21 RESET
i8086 Circuit - Maximum Mode

Vcc CLK MRDC#


MWTC#
S0# AMWC#
S1#
8288
8284A CLK IORC#
S2# Bus
Clock READY IOWC#
Generator Controller
RESET AIOWC#
DEN
RDY DT/R# INTA#
8086 ALE
CPU
MN/MX#
LE
OE#
BHE# 74LS373
A19:A0,
AD15:AD0 x3
ADDR/DATA BHE#
A19:A16
INTR

DIR
EN#
74LS245
74LS245 D15:D0
x2
ADDR/Data x2
8086 Ciclo de lectura T1 T2 T3 T4

CLK

/S0, /S1, /S2 001 or 101

A16..A19, /BHE Address Status


S3..S6

ALE

float float
AD0..AD15 Address Valid Data

A0..A19 Valid Address

DT/R

DEN

/MRDC or /IORC

43
8086 Ciclo de Escritura T1 T2 T3 T4

CLK

/S0, /S1, /S2 010 or 110

A16..A19, /BHE Address Status


S3..S6

ALE

AD0..AD15 Address Valid Data

A0..A19 Valid Address

DT/R

DEN

/MWTC or /IOWC

44
8086 Ciclo de lectura (1 estado de espera)
T1 T2 T3 Tw T4

CLK

/S0, /S1, /S2 001 or 101

A16..A19, /BHE Address Status


S3..S6

ALE

8284 RDY

READY

float float
AD0..AD15 Address Valid Data

A0..A19 Valid Address

DT/R

DEN

/MRDC or /IORC

45

También podría gustarte