You are on page 1of 82

Docente: Ing.

Edgar Ortuo Ros

Capitulo 1 Introduccin a los microprocesadores.

La Electrnica de Control y Electrnica en general podemos dividir


en 2 tecnologas:
MAQUINAS CABLEADAS hasta el ao 1970
MAQUINAS PROGRAMADAS desde el ao 1971

MAQUINAS CABLEADAS Y MAQUINAS PROGRAMADAS

MAQUINAS CABLEADAS:

La Maquina Cableada se basaba en la utilizacin de UN CIRCUITO


ESPECIFICO PARA CADA APLICACIN .
La lgica cableada industrial es la tcnica de diseo de pequeos a complejos
automatismos utilizados en plantas industriales, bsicamente con rels
cableados. En telecomunicaciones y en informtica, la lgica cableada
utiliza compuertas lgicas discretas (TTL, CMOS, HCMOS), para
implementar circuitos digitales de comunicaciones y computadores

MAQUINAS CABLEADAS

Ejemplo de una maquina cableada

Sus desventajas son:


1.- Baja fiabilidad.
2.- Elevado nmero de componentes.
3.- Alto costo por conceptos de materiales y mano de obra.

MAQUINAS PROGRAMADAS
En oposicin al principio de la mquina cableada surgi La mquina
programada desde 1971, basada en UNA ESTRUCTURA
PRINCIPAL PARA TODAS LAS APLICACIONES.
Los motivos fundamentales originaron la aparicin y desarrollo de las
mquinas programadas (computadoras) en 1971 fueron tres:
1 . El incremento de la complejidad en las funciones y en el nmero
de elementos que conformaban las mquinas.
2. Los avances tecnolgicos en la fabricacin de circuitos integrados
de alta escala de integracin (LSI).
3. La "casualidad", que tanto ha acompaado
a los descubrimientos en Electrnica y
en general en todas las ciencias.
5

Diagrama de bloques Maquina Programada

Partes que componen una maquina


programada:
1.- CPU
2.- Memoria
3.- Mdulos de Entrada y Salida

MAQUINA PROGRAMADA
Se denomina UNIDAD CENTRAL DE PROCESO CPU o

Microprocesador al conjunto de elementos electrnicos, en


general de carcter digital, capaz de interpretar y ejecutar el
juego de instrucciones y procesar los datos de la memoria.
Tambin procesa los datos de los mdulos de entrada, as como
de gobernar al resto de los componentes que constituyen el
sistema.
La MEMORIA, es el que almacena los datos y las instrucciones
del programa.
MDULOS DE ENTRADA Y SALIDA (I/O) los circuitos de

Interfase de los perifricos con el conjunto formado por la CPU y


la MEMORIA se denominan MDULOS DE ENTRADA Y
SALIDA (I/O).
7

MAQUINAS PROGRAMADAS O
COMPUTADORAS
La

ventajas ms reseables de las mquinas


programadas son:
a) Reducido hardware. Ejemplo: si es de carcter
lgico, como la AND, sustituye a una puerta con una
instruccin que de otra manera tendra que
implementarse con hardware.
b) Alta confiabilidad.
c) Bajos costos de los materiales, mano de obra y
mantenimiento.
d) Permite realizar fcil y rpidamente cambios y
adaptaciones sin afectar por lo general la estructura del
sistema, sino slo el programa de instrucciones.
e) Reduce el tiempo del diseo.
8

Estructura Bsica del


Microprocesador

Con la aparicin del microprocesador alrededor de 1970


se origin una profunda transformacin de las tcnicas de
control y diseo clsicos.
Se denomina MICROPROCESADOR a un simple circuito
integrado LSI que contiene los elementos que constituyen
la Unidad Central de Proceso o CPU de una Mquina
Programada
9

Las principales funciones de los elementos digitales que forman el


Microprocesador son las siguientes:
A) Direccionamiento de la instruccin a ejecutar
Se realiza mediante el CONTADOR DE PROGRAMA (PC), que
aunque normalmente se ya incrementando en una unidad, puede
cargarse con cualquier valor, lo que permite la rotura de la
secuencia ordenada en la ejecucin de las instrucciones del
10
programa.

Esquema modelo Von Neuman

Volver

Estructura Bsica del Microprocesador


B) Decodificador de instrucciones
El decodificador recibe la instruccin en cdigo binario
(cdigo mquina) e interpreta su significado.

C) Unidad de Control y Tiempo o Secuenciador


Es el componente encargado de generar y transmitir las seales
de gobierno y sincronismo a todo el sistema, para ejecutar la
instruccin previamente decodificada.
D) Unidad Lgico-Aritmtica (ALU)
Es la encargada de efectuar las operaciones de carcter
lgico. y aritmtico. Est gobernada directamente por la
Unidad de Control y se encuentra muy relacionada con un
registro de trabajo llamado ACUMULADOR. Normalmente, el

Acumulador contiene uno de los Datos u Operandos que,


realiza la ALU, as como el resultado de la misma, una vez
ejecutada.
12

Estructura Bsica del


Microprocesador
E) Registros de trabajos diversos:

Los mas importantes son:


Stack Pointer o Puntero de pila: Sirve para direccionar algunas posiciones de
memoria en las que se guarda temporalmente el contenido de ciertos elementos
significativos de la CPU.

Registro de estado: contiene informacin sobre el estado interno de la CPU. Se


compone de una serie de bits, que reciben el nombre de flags o banderas. Los ms
usuales son:
Bandera Arrastre aritmtico o noveno bit (C). Bit de desbordamiento en rotaciones
y desplazamientos.
Bandera Sobrepasamiento o exceso(V). Usado con aritmtica de complemento a 2,
en la que al sumar 2 nmeros con bit de signo, el arrastre de los bits de ms peso
puede afectar al de signo.
Bandera Acarreo o arrastre del 4 (H). Bit para emplear con la aritmtica BCD.
Bandera Cero (Z). La operacin anterior ha dado resultado nulo o cero.
Bandera de interrupcin (I): Flag para el enmascaramiento de ciertas
interrupciones.
Bandera Paridad (P). Para comprobacin de trasferencias de datos.
13

Estructura Bsica del


Microprocesador
F) Otros componentes son:
Estn los buffer triestado (amplificadores de tres estados)
que adaptan las informaciones con el exterior de la CPU, el
generador de seales de reloj que sincroniza el sistema y,
finalmente, otros registros auxiliares.
La estructura descrita del microprocesador le confiere la
potencia como para aplicarse en casi todos los campos de la
industria, comercio, gestin, etc., variando en cada caso
solamente el programa de instrucciones y los mdulos de
adaptacin con los perifricos exteriores.
Tambin hay que tener en cuenta que la arquitectura tpica
de los microprocesadores utiliza un nico bus interno para
transferencia de informaciones.
14

Sistema bsico con microprocesador


ARQUITECTURA DE UN SISTEMA ALREDEDOR DE UN
MICROPROCESADOR
La mquina programada, o sea, el computador consta de tres partes
relacionadas entre s, que son:
1. CPU.
2. MEMORIA
3.- UNIDADES DE ENTRADA Y SALIDA (I/O)
La CPU ejecuta las instrucciones que le proporciona la Memoria y procesa
los datos recibidos desde los mdulos de entrada o desde la Memoria, para
originar unos resultados que salen al exterior por los mdulos de Salida.

15

Informaciones que circulan por el bus de


una computadora

Por los tres buses circulan las informaciones:


1. Informacin de datos e instrucciones
Las instrucciones estn almacenadas siempre en la Memoria,
mientras los datos que procesa u obtiene las instrucciones del
programa puede proceder de la Memoria o de los mdulos de
Entrada y Salida.
Tiene un bus de 8 bits, 16, 24, 32,64 dependiendo el tipo de
procesador, recibe nombre de "bus de datos, bidireccional
informacin puede circular entrando o saliendo de la CPU.

16

Arquitectura de von Neumann


Arquitecturas von Neumann

CPU, Memoria e I/O se comunican a travs de Buses.

Data Bus
Control
Memoria

CPU

I/O

Control
Address Bus

Informaciones que circulan por el bus de


una computadora

18

Informaciones que circulan por el bus de


una computadora
2. Informacin de direcciones de la memoria y otros
elementos
Se trata de la informacin digital que enva la CPU
a la Memoria y restantes elementos del sistema
para seleccionar una posicin o elemento concreto.
Puede haber buses de 8,16,24,32,64,128 bits
Se le llama "bus de direcciones".
Este bus es unidireccional, puesto que su
informacin siempre procede de la CPU.

19

Informaciones que circulan por el bus de


una computadora
3. Informacin de control y tiempos
Es la informacin que enva la CPU a los elementos del
sistema, o bien recibe de stos, y cuya misin es gobernar e
informar el estado del conjunto de componentes que
forman el sistema.
Se le llama "bus de control".

20

Estructura de buses compartidos


La conexin a los buses en paralelo de todos los componentes de un sistema
basado en microprocesador obliga la desconexion total de los que no
participan en el intercambio en un momento determinado. En otro caso se
produciria un cortocircuito.

21

Estructura de buses compartidos

Para evitar que los componentes que no participen en una


transferencia cortocircuiten el estado de las lneas, todos disponen de
buffer triestado, en salida y entrada.

22

Evolucin del microprocesador


1971: Intel 4004. Nota: Fue el primer

microprocesador comercial.
1972: Intel 8008
1974: Intel 8080, Intel 8085
1975: Signetics 2650, MOS 6502, Motorola 6800
1976: Zilog Z80
1978: Intel 8086, Motorola 68000
1979: Intel 8088
1982: Intel 80286, Motorola 68020
1985: Intel 80386, Motorola 68020, AMD Am386
1987: Motorola 68030
1989: Intel 80486, Motorola 68040, AMD Am486
23

Evolucin del microprocesador


1993: Intel Pentium, Motorola 68060, AMD K5, MIPS

R10000
1995: Intel Pentium Pro
1997: Intel Pentium II, AMD K6, PowerPC G3, MIPS R120007
1999: Intel Pentium III, AMD K6-2, PowerPC G4
2000: Intel Pentium 4, Intel Itanium 2, AMD Athlon XP,
AMD Duron, MIPS R14000
2003: PowerPC G5
2004: Intel Pentium M
2005: Intel Pentium D, Intel Extreme Edition con hyper
threading, Intel Core Duo, AMD Athlon 64, AMD Athlon 64
X2, AMD Sempron 128.
2006: Intel Core 2 Duo, Intel Core 2 Extreme, AMD Athlon
FX
2007: Intel Core 2 Quad, AMD Quad Core, AMD Quad FX
2008-2014 corei3, corei5, core i7
24

Funcionamiento

El microprocesador ejecuta instrucciones almacenadas como nmeros

binarios organizados secuencialmente en la memoria principal. La


ejecucin de las instrucciones se puede realizar en varias fases:
Preselecciona (PreFetch): pre-lectura de la instruccin desde la memoria

principal.
Selecciona (Fetch): envo de la instruccin al decodificador.
Decodificacin (Decode) de la instruccin: determinar qu instruccin
es y por tanto qu se debe hacer.

Lectura de operandos (si los hay)

Ejecucin (Execute): lanzamiento de las mquinas de estado que llevan a

cabo el procesamiento.
Escritura (Store) de los resultados en la memoria principal o en los
registros.
Cada una de estas fases se realiza en uno o varios ciclos de CPU,

dependiendo de la estructura del procesador, y concretamente de su grado


de segmentacin. La duracin de estos ciclos viene determinada por la
frecuencia de reloj, y nunca podr ser inferior al tiempo requerido para
realizar la tarea individual (realizada en un solo ciclo) de mayor coste
temporal. El microprocesador se conecta a un oscilador, normalmente un
cristal de cuarzo capaz de generar pulsos a un ritmo constante, de modo
que genera varios ciclos (o pulsos) en un segundo.
25

Ciclo de instruccin ALU

26

EJECUCIN DE LAS INSTRUCCIONES

Para que un programa pueda ser ejecutado por una computadora, ha de

estar almacenado en la memoria central (memoria RAM). El


microprocesador tomar una a una las instrucciones que lo componen
e ir realizando las tareas correspondientes.

27

Velocidad
Actualmente se habla de frecuencias de Gigaherzios (GHz.), o de

Megaherzios (MHz.). Lo que supone miles de millones o


millones, respectivamente, de ciclos por segundo.
El indicador de la frecuencia de un microprocesador es un buen
referente de la velocidad de proceso del mismo, pero no el nico.
La cantidad de instrucciones necesarias para llevar a cabo una
tarea concreta, as como el ancho de banda cantidad de
instrucciones ejecutadas por ciclo ICP, son los otros dos factores
que determinan la velocidad de la CPU.
La cantidad de instrucciones necesarias para realizar una tarea
depende directamente del juego de instrucciones disponible,
mientras que el ndice ICP depende de varios factores, como el
grado de supersegmentacin y la cantidad de unidades de
proceso o "pipelines" disponibles, entre otros. La cantidad de
instrucciones necesarias para realizar una tarea depende
directamente del juego de instrucciones.
28

Unidad aritmtico lgica


La Unidad Aritmtico Lgica Arithmetic Logic Unit (ALU), es un

circuito digital que calcula operaciones. Las operaciones que realiza


son las siguientes: suma, resta, multiplicacin, divisin, comparacin
(mayor que, menor que, igual a) y aquellas que trabajan con dgitos
binarios (10 que se conoce como operaciones lgicas: AND, NOR, NOT,
NAND, OR, X-OR, etc) entre dos nmeros.
Los ms complejos ALU son construidos dentro de los chips de
microprocesadores modernos como el Core Duo Quad, Core i3, i5, i7.
Estos procesadores tienen dentro de ellos un ALU muy complejo y
poderoso que pueden tener mltiples ncleos, cada ncleo con
mltiples unidades de ejecucin, cada una de ellas con mltiples ALU.
Muchos otros circuitos pueden contener ALU: GPU (Graphics
Processing Unit) como los que estn en las tarjetas grficas NVidia y
ATI, FPU (Floating Point Unit) como el viejo coprocesador numrico
80387, y procesadores digitales de seales como los que se encuentran
en tarjetas de sonido Sound Blaster, lectoras de CD y las TV de alta
definicin.

29

Ejemplos GPU y Coprocesador

Graphics Processing

30

Unit Coprocesador numrico Intel 287

Componentes ALU
El registro de estado (Flags) indican el estado en el que

se encuentran despus de una operacin y que habrn de


ser tenidas en cuenta en operaciones posteriores. Por
ejemplo, en el caso de hacer una resta, tiene que quedar
constancia si el resultado fue cero, positivo o negativo.

Cada modelo de procesador tiene sus propios registros de estados


pero los ms comunes son:

Z = Zero flag. el resultado es cero


O = Overflow flag. Fuera de rango
V = Overflow flag. el resultado supera el nmero de bits que puede
manejar el ALU
P = Parity flag. paridad del nmero de 1 en los datos
I = Interrupt flag.
C = Carry flag. acarreo de la operacin realizada
AC = Carry Auxiliar flag. acarreo auxiliar del cuarto al quito bit.

31

Instrucciones del ALU


Se conoce como set de instrucciones al conjunto de instrucciones que es

capaz de entender y ejecutar un microprocesador.


Las instrucciones se clasifican segn su funcin en:

Instrucciones de transferencia de datos. Estas instrucciones mueven datos

(que se consideran elementos de entrada/salida) desde la memoria hacia los


registros internos del microprocesador, y viceversa. Tambin se usan para pasar
datos de un registro a otro del microprocesador. Existen algunas instrucciones
que permiten mover no slo un dato, sino un conjunto de hasta 64 KBytes con
una sola instruccin.
Instrucciones de clculo. Son instrucciones destinadas a ejecutar ciertas
operaciones aritmticas, como por ejemplo sumar, restar, multiplicar o dividir,
o ciertas operaciones lgicas, como por ejemplo AND, OR, as como
desplazamiento y rotacin de bits.
Instrucciones de transferencia del control del programa. Permiten romper
la secuencia lineal del programa y saltar a otro punto del mismo. Pueden
equivaler a la instruccin GOTO que traen muchos lenguajes de programacin.
Instrucciones de control. Son instrucciones especiales o de control que
actan sobre el propio microprocesador. Permiten acceder a diversas funciones,
como por ejemplo activar o desactivar las interrupciones, pasar rdenes al
coprocesador matemtico, detener la actividad del microprocesador hasta que
se produzca una interrupcin, etc.
32

Arquitecturas de Microprocesadores
La arquitectura de microprocesadores es el diseo conceptual y la

estructura operacional fundamental de un sistema de computadora. Es


decir, es un modelo y una descripcin funcional de los requerimientos y
las implementaciones de diseo para varias partes de una computadora,
con especial inters en la forma en que la unidad central de proceso (CPU)
trabaja internamente y accede a las direcciones de memoria.
Tambin suele definirse como la forma de seleccionar e interconectar
componentes de hardware para crear computadoras segn los
requerimientos de funcionalidad, rendimiento y costo.

33

Arquitecturas de Microprocesadores
CISC es un modelo de arquitectura de computadores (Complex Instruction

Set Computer). Los microprocesadores CISC tienen un conjunto de


instrucciones que se caracteriza por ser muy amplio y permitir operaciones
complejas entre operandos situados en la memoria o en los registros
internos, en contraposicin a la arquitectura RISC.
De Arquitectura computacional, RISC (Reduced Instruction Set
Computer), Computadora con Conjunto de Instrucciones Reducido.

34

Arquitecturas de Microprocesadores
De Arquitectura computacional, RISC (Reduced Instruction

Set Computer), Computadora con Conjunto de Instrucciones


Reducido. Es un tipo de microprocesador con las siguientes
caractersticas fundamentales:

35

Configuracin tpica de un Microprocesador


En la figura se ha tratado de generalizar los conjuntos de pines
dedicados a una funcin especifica, al igual que la mayora de los
microprocesadores existentes en el mercado.

36

Funcin de los pines


Los conjuntos de patillas caractersticas se pueden agrupar de la siguiente manera:
A)Lneas de direccionamiento
Con referencia a la figura 2-6 existen 16 lneas de direccionamiento, que corresponden a los
pines numerados desde el 25 al 40, cuya misin es transferir la direccin de la posicin de
memoria o elemento seleccionado por la CPU.

B) Lneas de datos
Son 8, que configuran al bus de instrucciones y datos, y que en el microprocesador hipottico
corresponden a los pines 13 al 20.
C) Entrada de alimentacin
En la actualidad casi todos los microprocesadores requieren una sola tensin de alimentacin,
que adems se procura coincida con la necesaria para los sistemas TTL, es decir, + 5 V. Los pines
23
y
24
reciben
dicha
alimentacin.
D) Cristal o red R-C
Los modernos microprocesadores disponen internamente de un generador de reloj, cuya
frecuencia
se
controla
exteriormente
mediante
un
cristal o una red R-C, aplicables entre los pines 21 y 22.
E) Salida de las seales de reloj
El generador interno del microprocesador produce dos seales normalmente opuestas, que
sirven para sincronizar los elementos del sistema qu lo precise. Las salidas se realizan por los
pines 1 y 2.
F) Peticin de RESET y Reconocimiento de RESET (RESET/IN y RESET/OUT)
Por la lnea de entrada al microprocesador RESET IN se provoca una peticin del estado de
RESET que se trata como una interrupcin que sirve para inicializar el sistema. RESET OUT es
un pin de salida de la CPU (5) que informa del estado de RESET, o sea, se trata de una
informacin de reconocimiento de un estado.
37

Funcin de los pines


G) HOLD y HOLDA
La lnea de entrada HOLD sirve para solicitar la entrada de la CPU en un
estado especial denominado HOLD. HOLDA es una seal de reconocimiento del estado HOLD.
El estado HOLD deja con alta impedancia los buses de direccionamiento,
datos y control, para poder ser empleados desde el exterior para la
realizacin del Acceso Directo a Memoria (DMA).
H) READY
Lnea que sirve para sincronizar la CPU con memorias lentas. Al activarse,
el procesador se detiene.
I) Interrupciones
Las lneas de "interrupcin" sirven para detener el procesamiento normal
que lleva a cabo la CPU y permite a sta saltar a otros programas que
atienden las interrupciones.
Dentro de los diferentes tipos de interrupciones las hay "no enmascarables"
que realizan siempre que se provocan, en cambio hay otras llamadas
"enmascarables" que slo se llevan a cabo si un bit del Registro d Estado,
el flag de interrupcin, est a cierto nivel.

38

Tipos de Memorias Integrada


Existen dos tipos de memorias integradas:
RAM (Random Acces Memory). Memorias de Acceso

Aleatorio.Lectura y escritura, voltil.


ROM(Read Only Memory). Memorias de slo lectura, no
voltil.
RAM
Existen 2 tipos de memoria RAM: Estticas y Dinmicas.

39

Tipos de Memorias RAM


Memoria Ram Clula Esttica.
Memoria Ram Clula Dinmica

40

Memorias RAM
1. Las Celulas dinamicas de las memorias RAM se basan
en la carga de un condensador mediante la conduccin
de un transistor de tipo MOS.

41

Memorias ROM
La constitucin de las memorias ROM se
basa en la realizacin de CONEXIONES en
los ctodos de una matriz de diodos.

42

Tipos de ROM
CLASE DE ROM

TIPO DE CONEXIN

GRABACION

De Mascara

Diseo en una Fabrica

En Fabrica

PROM

Rotura de fusibles

En programador

EPROM

Alteracin elctrica

Programador y rayos ultravioleta.

EEPROM

Alteracin elctrica

Programa y borrado con Programador

Memoria PROM
Un PROM es un chip de memoria en la cual usted puede salvar un programa. Pero una
vez que se haya utilizado el PROM, usted no puede reusarlo.
Memoria EPROM
Un EPROM es un tipo especial de PROM que puede ser borrado exponindo a la luz
ultravioleta. EPROM Erasable Programmable Read-Only Memory (ROM programable
borrable de slo lectura). Inventado por el ingeniero Dov Frohman.
Memoria EEPROM
Es un tipo de memoria ROM que puede ser programado, borrado y reprogramado
elctricamente.

43

MANEJO DE LAS ENTRADAS Y SALIDAS DEL


SISTEMA
La interface entre los perifricos y el sistema de microprocesador

requiere circuitos de adaptacin que pueden estar implementados con


componentes normales MSI (decodificadores, buffer, etc.), con
circuitos integrados LSI de propsito general, como los PIA o PPI
(de adaptacin paralelo) y los UART (de adaptacin serie), o tambin
con controladores especifcos para determinados perifricos.
Existen tres procedimientos importantes para la manipulacin de los
perifericos:
1. Por software. Consiste en un proceso de "consultas sucesivas" los
perifricos realizadas por programa, para detectar quien de ellos
solicita la atencin de la CPU para proceder a realizar una entrada o
salida de informacin. Atiende al periferico cuale corresponde por
programa.
44

MANEJO DE LAS ENTRADAS Y SALIDAS DEL SISTEMA


2. Por Interrupciones. Los perifricos provocan una interrupcin a la
CPU para reclamar la atencin. La interrupcin es por prioridad.
3. Acceso Directo a Memoria (DMA). Cada vez que un perifrico
desea realizar una entrada o salida de informacin se lo comunica a!
controlador DMA, que detiene la CPU mediante una seal HOLD y a
continuacin se produce la transferencia directa de los datos desde
la memoria al perifrico (salida) o viceversa. La transferencia se
realiza sin intervencin de la CPU, por lo cual se alcanzan grandes
velocidades.

45

Microprocesador Intel 8086.


En Junio de 1978 Intel saca a la venta el primer

microprocesador de 16 bits.
El descubrimiento de la tecnologa HMOS propici el
aumento de la densidad de integracin y el paso a la
tecnologa VLSI.

46

Arquitectura del 8086/8088

El 8086

Estos microprocesadores
tiene 2 procesadores y son:
EU
Unidad de ejecucin
(Execution Unit).
BIU
Unidad de interfaz con
el Bus (Bus Interface
Unit). Es la
responsables de la
comunicacin externa
del procesador. Se
encarga de
proporcionar las
direcciones de la
memoria y transmitir y
recibir datos e
instrucciones.

47

Arquitectura del
de computadoras
Microproceasador
II 8086

El 8086

Registros del 8086

48

Arquitectura del
de computadoras
Microproceasador
II 8086

El 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 segn 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.

49

Arquitectura del
de computadoras
Microproceasador
II 8086

El 8086

Registros de propsito general


BX = Base.

Se usa como registro base para referenciar


direcciones de memoria con direccionamiento
indirecto.

CX = Contador.
Se utiliza comnmente como contador en bucles y
operaciones repetitivas de manejo de cadenas.

DX = Datos.

Usado en conjuncin con AX en las operaciones


de multiplicacin y divisin. En las de entrada y salida
se emplea para especificar la direccin del puerto E/S.

50

Arquitectura del
de computadoras
Microproceasador
II 8086

El 8086

Registros de segmento:
Definen reas de 64 KB dentro del espacio de direcciones de 1 MB
del 8086.

CS = Registro de segmento de cdigo (code segment).

Contiene la direccin 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 ampliacin para zona de datos.

51

El 8086

Arquitectura del
de computadoras
Microproceasador
II 8086

Formacin de una Direccin Fsica


Siempre que una memoria es accesada , se genera una
direccin fsica a partir de la direccin lgica.
Direccin
efectiva,
lgica u
offset

4 bits

Direccin de
segmento

EL REGISTRO DE
SEGMENTO SE
DESPLAZA 4 BITS
HACIA LA
IZQUIERDA
(MULTIPLICACIN
x16)

0000

Direccin fsica

20 BITS
52

de computadoras
II 8086
Arquitectura del
Microproceasador

El 8086

Segmento de Memoria
FFFFF

SEGMENTO

Un segmento es un rea continua


de memoria que puede tener
hasta 64K-Bytes, que debe
comenzar en una localidad de
memoria cuya direccin sea lmite
de 16 bytes (cantidad
denominada prrafo) y que puede
traslaparse con otros segmentos.

Memoria
53

Registros punteros:

Arquitectura del
de computadoras
Microproceasador
II 8086

El 8086

Direccion de memoria=RS*16+desplazamiento(punteros)

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.
Direccion efectiva=CS*16+IP

54

Arquitectura del
de computadoras
Microproceasador
II 8086

El 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

55

Arquitectura del
de computadoras
Microproceasador
II 8086

El 8086

Registros punteros ndices DI y SI:


SI = ndice fuente (source index).
Apuntan al segmento de datos.

DI = ndice destino (destination index).


Apuntan al segmento de datos y/o segmentoextra
Direccin efectiva=DS*16+SI
Direccin efectiva=DS*16+DI

56

Arquitectura del
de computadoras
Microproceasador
II 8086

El 8086

Registro de estado o de indicadores (flags)

Es un registro de 16 bits de los cuales 9 son utilizados para


indicar diversas situaciones durante la ejecucin de un
programa.
Los bits 0, 2, 4, 6, 7 y 11 son indicadores de condicin, que
reflejan los resultados de operaciones del programa.

57

El 8086

Arquitectura del
de computadoras
Microproceasador
II 8086

Bit
C

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

Paridad ("Parity Flag")

Acarreo auxiliar

Cero ("Zero Flag")

Est activo si el resultado de operacin es


cero o resultado de comparacin igual.

Signo ("Sign Flag")

Si est activo indica que el resultado de


operacin o de comparacin son negativos.

Detencin ("Trap Flag")

Si est activo, el procesador genera


automticamente una interrupcin despus
de la ejecucin de cada instruccin, lo que
permite controlar paso a paso la ejecucin del
programa. Este bit debe estar normalmente
inactivo (a 0).

Interrupcin ("Interrupt Flag")

Este bit controla el estado del sistema de


interrupciones enmascarables . Cuando est
activo (1) permite las interrupciones; el
estado inactivo (0) las deshabilita.

Direccin ("Direction Flag")

Indica la direccin de las operaciones.

Desbordamiento (Overflow Flag")

Seala desbordamiento aritmtico

58

8086. Lgica digital.


Arquitectura.

59

8086. Lgica digital.


Chip.

60

Pines 8086
El sistema de entradas y salidas del microprocesador 8086 est diseado en el formato DIP (Dual Inline Package), que consiste en 40
patas (o pines) en total -20 en el lado izquierdo, 20 en el.
Las funciones de los pines son las siguientes:
GND (Masa)
AD0-AD15 (Bus de direcciones y DATOS)
NMI (Entrada de interrupcin no enmascarable)
INTR (Entrada de interrupcin enmascarable)
CLK (Entrada de reloj generada por el 8284)
GND (Masa)
RESET (Para inicializar el 8088)
READY (Para sincronizar perifricos y memorias lentas)
/TEST
/INTA (El 8088 indica que reconoci la interrupcin)
ALE (Cuando est uno indica que salen direcciones por AD, en caso contrario, es el bus de datos)
/DEN (habilita los transceptores 8286 y 8287, esto sirve para que no se mezclen los datos y las direcciones).
DT/R (Data transmit/receive: se conecta al pin de direccin de los chips recin 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 8086 reconoce el HOLD)
HOLD (Indica que otro integrado quiere aduearse 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 mnimo, en caso contrario est en modo mximo)
/SSO (Junto con IO/M y DT/R esta salida sirve para determinar estados del 8086)
Pin 24, QS1: Estado de la cola de instrucciones (bit 1).
Pin 25, QS0: Estado de la cola de instrucciones (bit 0).
Pin 26, S0: Bit de estado 0.
Pin 27, S1: Bit de estado 1.
Pin 28, S2: Bit de estado 2.
Pin 29, /LOCK: Cuando vale cero indica a otros controladores del bus (otros microprocesadores o un dispositivo de DMA) que no
deben ganar el control del bus. Se activa ponindose a cero cuando una instruccin tiene el prefijo LOCK.
Pin 30, RQ/GT1: Es bidireccional y tiene la misma funcin que HOLD/HLDA en modo mnimo.
Pin 31, RQ/GT0: Como RQ/GT1 pero tiene mayor prioridad.
Pin 32 RD (Cuando vale cero hay una lectura)
Pin 33 MN/MX (Cuando esta entrada est en estado alto, el 8088 est en modo mnimo, en caso contrario est en modo mximo)
Pin 34, Esta salida siempre est a uno.
Pin 35 A19/S6 (Bus de direcciones/bit de estado)
Pin 36 A18/S5 (Bus de direcciones/bit de estado)
Pin 37 A17/S4 (Bus de direcciones/bit de estado)
Pin 38 A16/S3 (Bus de direcciones/bit de estado)
Pin 39 A15 (Bus de direcciones)
Pin 40 Vcc (+5V)

61

8086. Lenguaje Assembler


Qu puedo expresar?
Vamos a clasificar el repertorio en 7 tipos de

instrucciones:

Instrucciones de transferencia de datos (e.g. MOV).


Aritmtico-lgicas (e.g ADD).
Desplazamiento y rotacin (e.g. SHL).
Control del secuenciamiento del programa (e.g. JZ, TEST).
Control de programa (e.g. RET).
Control del sistema (e.g. INT).

62

Instrucciones de transferencia de datos


MOV destino, fuente.

Transfiere una palabra de la fuente al punto de destino.


Estn optimizadas para trabajar con el registro AX.
Ejemplo: MOV AL, 5.
IN fuente. Lleva a AX la palabra fuente.
PUSH fuente, POP destino. Introduce/Extrae fuente

en/de la pila;

63

Instrucciones Aritmticas
ADD destino, fuente. Suma fuente y destino y coloca el

resultado en destino. Est optimizada para utilizar AX.


SUB destino, fuente. Igual para la resta.
NEG destino. Realiza el C2 del destino.
MUL fuente; DIV fuente. Se multiplica fuente por el
contenido de AX y se deja el resultado en AX; Igual para la
divisin.
INC destino; DEC destino. Suman o restan 1 al destino.
Usadas para el control de bucles.
64

Instrucciones Lgicas
AND destino, fuente;

OR destino, fuente;
XOR destino, fuente.

Se hace la and/or/xor lgica y se almacena en destino.

65

Desplazamiento y rotacin.
SHL destino. Se desplaza un bit a la izquierda destino

SHR destino. Se desplaza a la derecha.

Siempre se mete un 0 en el bit que nos falta.


ROL destino.
ROR destino.

Aqu los bits rotan.

66

Instrucciones de salto.
JMP etiqueta. Salto incondicional a la etiqueta (dentro del segmento).
JMP etiqueta, segmento. Salto incondicional a la etiqueta contenida en un
cierto segmento.
JE etiqueta; JZ etiqueta; JNE etiqueta; JNZ etiqueta; JS etiqueta; JNS
etiqueta; Saltar si es igual (Z = 1), si es cero (Z = 1), si no es igual (Z = 0), si no
es cero (Z = 0), si es negativo (N = 1), si no es negativo (N = 0).
TEST destino, fuente. Se hace la and lgica para modificar los flags, pero el

resultado no se almacena en ningn lado.


COMP destino, fuente. Igual, pero en lugar de la and lgica se hace la resta.
JL; JNGE; JNL; JGE; JLE; JNG; JNGE; JG. Igual que los otros saltos, pero con
restricciones relacionales, para dar ms flexibilidad al programador.
LOOP etiqueta. Salta a etiqueta en funcin del valor de CX. Primero
decrementa CX. Si no es 0, entonces salta a etiqueta. Optimizan los bucles.

67

Instrucciones de control de programa.


CALL etiqueta. Llama a la subrutina, que se tiene que

encontrar dentro del segmento.


CALL etiqueta, segmento. La subrutina puede estar
en otro segmento.
RET. Retorno de subrutina dentro del segmento.
RETS. Retorno de subrutina desde otro segmento.

RET numero. Retorno de subrutina y ajuste de la pila.


68

Instrucciones de control del sistema.


INT. Interrupcin por software. Tiene un operando

que indica el tipo de interrupcin.


HLT. Paro de la CPU.

69

8086. Lgica digital.


Direccionamiento a memoria.
El 8086 tiene hasta 25 modos de direccionamiento.

Esto proporciona una gran flexibilidad. Enumeramos


los distintos elementos que pueden participar en el
clculo de una direccin
Direccin inicial de segmento: CS, DS o SS.
Memoria 220; registro 16 bits (216). Se multiplica por 16.

Direccin base (para subrutinas): BX o BP.


Una segunda base de 8 bits: SI o DI.
Decalage: Se utiliza para compilar datos, organizar

memoria y reubicar de una manera ms rpida y sencilla.


No puede modificarse en tiempo de ejecucin.
70

8086. Lgica digital.


Direccionamiento a memoria.
Instruccin INC 6[BX][DI] tiene a su nico operando en

memoria. La instruccin incrementa el valor del operando.


Se accede a l con un direccionamiento que usa la base
(contenida en BX), el ndice (contenido en DI) y un
decalage de 6. Si suponemos que DS = 3.000, BX = 4.000 y
DI = 20, entonces la direccin de desplazamiento dentro
del segmento es 6 + 4.000 + 20 = 4.026.
Pero primero hay que multiplicar por 16 (10 en
hexadecimal) a DS, lo que nos dice que el segmento
empieza en la direccin 30.000 de memoria. Por lo tanto
estaremos accediendo a la posicin 34.026 de memoria para
obtener el operando de la instruccin.
71

8086. Lgica digital.


Interrupciones.
Permite 256 tipos diferentes de interrupciones.
Cuando se ejecuta una interrupcin, se termina de

ejecutar la instruccin actual y se salva el estado de la


CPU en la pila.
Salta a la subrutina cambiando CS e IP por la direccin
de la subrutina dentro de la memoria.

72

Lenguaje de Programacion
Es un conjunto de smbolos y reglas sintcticas y semnticas que definen su
estructura y el significado de sus elementos y expresiones, y utilizado para
controlar el comportamiento fsico y lgico de una mquina.
Lenguajes de bajo nivel
Son lenguajes de programacin que se acercan al funcionamiento de una
computadora. El lenguaje de ms bajo nivel es, por excelencia, el cdigo
mquina. A ste le sigue el lenguaje ensamblador, ya que al programar en
ensamblador se trabajan con los registros y memoria de la computadora de
forma directa.
Lenguaje ensamblador
El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para
escribir programas informticos, y constituye la representacin ms directa
del cdigo mquina especfico para cada arquitectura de computadoras
legible por un programador.
73

Ventajas y Desventajas del Lenguaje


Ensamblador
Ventajas

Velocidad: De 5 a 10 veces mas rapidos


Eficiencia de tamao: Ocupa la mitad de tamao

Flexibilidad: Se pueden crear segmentos de codigo imposibles en


otros lenguajes.
Desventajas
Tiempo de programacin: Mas dificil de Aprender, entender y depurar
Programas fuente grandes
Peligro de afectar recursos inesperadamente
Falta de portabilidad
74

Estructura de un Programa en Ensamblador


[etiqueta] [instruccin|directiva [operandos]] [;comentario]

Son los campos de la proposicin.Los campos se

separan por caracteres blancos: caracteres de


espacio y/o de tabulacin. Todos los campos son
opcionales, pero el campo operandos slo pueden
estar
presente
si
existe
el
campo
instruccin|directiva.

75

Estructura de un Programa en Ensamblador


Las etiquetas asignan un nombre a una instruccin.

Esto permite hacer referencia a ellas en el resto del


programa. Pueden tener una mximo de 31
caracteres y deben terminar en :.
Las

directivas son comandos que afectan al


ensamblador, no al procesador. Se puede usar para
preparar segmentos y procedimientos, definir
smbolos, reservar memoria, etc. La mayora de las
directivas no generan cdigo objeto.

76

Modos de Direccionamientos
Los modos de direccionamiento indican la manera de

obtener los operandos y son:


Direccionamiento de Registro
Direccionamiento Inmediato
Direccionamiento Directo

Direccionamiento Indirecto.
Direccionamiento Indirecto con Indice o Indexado
Direccionamiento con base e indice o Indexado a base

El tipo de direccionamiento se determina en funcin de los

operandos de la instruccin.

77

Modos de Direccionamientos
La instruccin MOV realiza transferencia de datos desde un

operando origen a un operando destino. Su formato es el siguiente:

MOV destino, origen

Direccionamiento de registro
Transfiere un byte o palabra desde un registro fuente hasta un

registro destino.

NOTA! No se permite el acceso entre


registros de segmentos ni de distintos
tamaos.
MOV AX,CX ;transfiere el contenido de
CX en AX

78

Modos de Direccionamientos
Direccionamiento inmediato
Transfiere un byte o palabra de datos inmediatos hacia

el operando destino. Este modo es usado para


inicializar registros o localidades de memoria y para
operar sobre ellos con valores constantes de datos.
MOV AX,0ABCDh ;carga en AX el valor 0ABCDh.

79

Modos
de
Direccionamiento
Direccionamiento directo
Cuando el operando es una direccin de memoria.
sta puede ser especificada con su valor entre [ ], o
bien mediante una variable definida previamente (Se
ver ms adelante).
Ejemplo:
MOV AL,[1234H]; almacena en
AL el contenido de la direccin
de memoria DS:1234.

80

Modos de Direccionamiento
Direccionamiento indirecto
Cuando el operando esta en memoria en una posicin

contenida en un registro (BX, BP, SI o DI).


MOV AX,[BX] ; almacena en AX el contenido de la

direccin de memoria DS:[BX].

81

Modos de Direccionamiento
Direccionamiento Indirecto con Indice o Indexado

El operando se encuentra en una direccin determinada


por la suma de un registro de segmento*16, un
registro de ndice, SI o DI y un desplazamiento de 8
16 bits.
Ejemplos:
MOV AX,[DI+DESP]

MOV AX,desp[DI]

ADD [SI+DESP],BX

ADD desp[SI],BX

82

You might also like