Sei sulla pagina 1di 111

CESVER Material Bibliogrfico de Apoyo Didctico

Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

MATERIAL DE APOYO
BIBLIOGRAFICO

Licenciatura:
INGENIERIA EN SISTEMAS
COMPUTACIONALES

Asignatura:
MICROPROCESADORES

Cuatrimestre:
OCTAVO

Nombre del compilador:


ING. JUAN ALBERTO VAZQUEZ
GONZALEZ

ING JUAN ALBERTO VAZQUEZ G.


Pgina 1 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INDICE

PRESENTACION
INTRODUCCION
MANEJO DE LA ANTOLOGIA

I. INTRODUCCIN A LOS MICROPROCESADORES


1.1 Introduccin a los sistemas basados en microprocesadores.
1.2 Funcionamiento del Sistema.
1.3 Elementos que componen un sistema con microprocesadores.
1.4 Estructura de un Microprocesador
1.5 Memorias
1.6 Perifricos
1.7 Comunicacin entre mdulos.

II. ESTRUCTURA DE UN SISTEMA CON MICROPROCESADORES


2.1 Seales de control y de sincrona del sistema.
2.2 Arquitectura de los sistemas.
2.3 Sistemas auxiliares (backup, wachdog, real clock).
2.4 Planeacin de recursos del sistema.
2.5 Clculo de consumo de energa.
III. BASES DE PROGRAMACIN
3.1 Terminales y funciones.
3.2 Registros principales contador de programa, apuntador de pila, etc.)
3.3 Reinicio (reset).
3.4 Memoria de Programa y memoria de datos.
3.5 Distribucin de registros.
3.6 Vectores de interrupcin.
IV. ESCRITURA DE PROGRAMAS
4.1 Compiladores, ensambladores.
4.2 Conceptos de programacin.
4.3 Conjunto de instrucciones.
4.4 Modos de direccionamiento.
4.5 Condicionales y comparadores.
4.6 Operaciones lgicas.
4.7 Operaciones matemticas.
4.8 Subrutinas.
4.9 Interrupciones.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 2 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

V. INTERFASE CON DISPOSITIVOS EXTERNOS


5.1 Comunicacin en paralelo.
5.2 Comunicacin en serie.
VI. PROCESADORES INTEL 8086 Y 8088
6.1 Las terminales y sus funciones.
6.2 Generador de reloj (8284).
6.3 Demultiplexin y acoplamiento del canal.
6.4 Temporizacin del canal.
6.5 Lista del estado de espera.
6.6 Modo mnimo contra modo mximo.
VII. PROCESADORES INTEL 80386 Y 80486
7.1 Introduccin al microprocesador 80386.
7.2 La estructura de registros.
7.3 El conjunto de instrucciones.
7.4 Administracin de memoria.
7.5 Modo protegido.
7.6 Modo virtual.
VIII. NUEVAS TECNOLOGIAS

GLOSARIO
BIBLIOGRAFIA
REFERENCIAS

ING JUAN ALBERTO VAZQUEZ G.


Pgina 3 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INTRODUCCION

El presente material Bibliogrfico intenta resolver una de las tareas


cotidianas que el alumno enfrenta al inicio de cada cuatrimestre en la bsqueda
de material que lo ayude solventar las necesidades propias a esta materia. He
pretendido apoyarme con el programa correspondiente sin embargo es notable
el avance desmedido de tecnologa por lo que me veo en la necesidad de
ampliar este material a la situacin actual. Esperando cumplir mi cometido dejo
en tus manos este material que entre otras cosas incluye imgenes, referencias y
un reducido glosario que te ayudaran a reforzar tus conocimientos.
Me he tomado el atrevimiento de descartar las referencias de las cuales
extraje algunas fotos y solo he tomado en cuenta las referencias que fortalecern
y ampliaran tu aprendizaje.
Todos los libros que aparecen en la bibliografa son digitales y estn
colocados en la Biblioteca Virtual del CENTRO DE ESTUDIOS SUPERIORES DE
VERACRUZ (CESVER).
De acuerdo con el programa esta materia esta dividida en 8 unidades que
van desde el conocimiento de los microprocesadores de 4 bits hasta los
procesadores actuales QuadCore.
Seria una gran satisfaccin para mi y para el CESVER que tanto docente
como alumno se nutrieran de estos conocimientos y siguieran paso a paso esta
antologa.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 4 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

MANEJO DE LA ANTOLOGA

A lo largo de las 8 unidades que integran esta antologa podemos conocer


la evolucin que han sufrido los procesadores pero para que usted pueda hacer
uso adecuado de esta antologa es necesario que su avance sea detenido, no
intente seguir solo esta antologa, sino tambin realice investigaciones de los
temas propuestos.
La bibliografa propuesta es necesaria sobre todo el libro de LOS
MICROPROCESADORE INTEL que cubre los captulos 6 y 7 a fondo, los link
tambin lo son sobre todo porque profundizan ms en cada tema.
Finalmente se hizo necesario integrar en un Apndice A una serie de
instrucciones que facilitaran la programacin en ensamblador, de igual manera
se agrego un apndice B con los tiempos para el procesador 8086.
Esta antologa se compone igual que las anteriores de elementos
perfectamente marcados en negrita, cursivas y de un tono gris para indicar los
elementos que integran el glosario pero a diferencia de las anteriores se han
omitido palabras que se supone forman ya parte de su vida diaria como futuro
Ingeniero en sistema.
Es cierto que un libro, una antologa y una serie de links no resuelven los
problemas que surgen en la prctica, ms sin embargo si favorecen para que
usted pueda realizar actividades de laboratorio.

OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA

Al terminar el curso el alumno debe:


Desarrollar programas para el control de la memoria y sistemas de
entrada y salida en aplicaciones basadas en microprocesadores.

CRITERIOS Y PROCEDIMIENTOS DE EVALUACIN Y ACREDITACIN

Evaluacin sobre experiencias de aprendizaje 20%


Examen parcial 40%
Examen Final 50%

ING JUAN ALBERTO VAZQUEZ G.


Pgina 5 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Capitulo I
INTRODUCCION A LOS
MICROPROCESADORES

1.1 Introduccin a los sistemas basados en microprocesadores.


microprocesadores.
1.2 Funcionamiento del Sistema.
Sistema.
1.3 Elementos que componen un sistema con microprocesadores.
microprocesadores.
1.4 Estructura de un Microprocesador
1.5 Memorias
1.6 Perifricos
1.7 Comunicacin entre mdulos.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 6 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INTRODUCCION:

A travs de los aos el mundo de la tecnologa ha evolucionado


rpidamente. Este se debe a varios fenmenos ocurridos gracias al esfuerzo
de varios hombres. Uno de estos fenmenos ha sido la aparicin del
microprocesador que con su evolucin a travs de los aos ha llevado a la
tecnologa, sobre todo a la computacin, a niveles inimaginables y cada da
que pasa alcanza logros inesperados.
Un microprocesador es un motor completo de computacin que es
fabricado en un chip sencillo. El primer microprocesador fue el 4004
introducido en el 1971 al mercado por Intel Corporacin. Este procesador no
era muy poderoso, todo lo que poda era sumar y restar y solo poda hacerlo
a 4 bits, pero era una revolucin tecnolgica ya que todo estaba integrado en
un solo chip. Hoy en da tenemos velocidades que en comparacin al origen
son extremas. Modelos como los Pentium IV y los procesadores de AMD han
multiplicado los niveles de procesamientos electrnicos.
Para poder entender la tecnologa de hoy es necesario remontarnos a los
orgenes y las evoluciones de las mismas y es as como poco a poco iremos
avanzando hasta alcanzar los procesadores actuales.

OBJETIVO:

Conocer la arquitectura bsica de los microprocesadores y el


funcionamiento de cada una de las partes que lo conforman.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 7 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INTRODUCCION A LOS MICROPROCESAD


MICROPROCESADORES
El microprocesador es un dispositivo integrado digital capaz de interpretar y
ejecutar un conjunto secuencial de instrucciones (programa), contiene circuitos
electrnicos que realizan operaciones aritmticas, lgicas y de control. Se trata de
un sistema muy complejo, por eso debe ir integrado en chips.
Los microprocesadores no trabajan solos, sino que forman parte de un
sistema mayor.
El microprocesador es el "cerebro" o parte inteligente de este sistema. El
ejemplo ms conocido es el de los ordenadores personales, en los que el
microprocesador pasa a ser el componente que primero se nombra en las
caractersticas del ordenador (Intel, AMD, etc.).

1.1 Introduccin a los sistemas basados en microprocesadores.


Aunque es un elemento bien conocido, el microprocesador est presente en
ms lugares de los que pensamos. Y es que no slo tiene cabida en nuestro
ordenador, o en los servidores de Internet y los organizadores personales, o en el
automvil, sino que se ha introducido en sitios tan recnditos como el
termostato de la calefaccin, la nevera, el mando a distancia de la televisin, o
los telfonos mviles.
Sin el microprocesador no conoceramos el ordenador personal, el Internet,
tampoco seran posibles las impresoras de gran calidad, ni las cmaras digitales,
ni los telfonos mviles, ni el completo control de los parmetros del coche, que
incluye desde el encendido electrnico a la gestin completa del mantenimiento,
pasando por los sistemas de proteccin, desde el ABS al inflado de las bolsas de
aire en caso de accidente.
A mi gusto en casos como estos donde localizamos los microprocesadores
hasta en la sopa (Horno de microondas) podramos decir que nos encontramos en
el caso de la industria de las microcomputadoras.
Y es que este pequeo dispositivo con un tamao menor que una ua humana
ha cambiado nuestra existencia y la percepcin que tenemos de ella, ha
modificado sustancialmente la economa e incluso las relaciones humanas. En la
historia de la humanidad, ningn otro elemento individual ha alterado tanto la
sociedad, la economa y la industria. En definitiva, resulta la piedra angular
sobre la que se est edificando la moderna sociedad de la informacin.
La historia de los procesadores empieza en 1971 con el procesador Intel 4004
procesador de 4 bits y 45 instrucciones, continua su curso hacia un procesador
como el 8008 y el 8080 ambos de 8 bits de datos y 48 instrucciones hasta llegar
al inicio de la serie X86 que en el caso del procesador 8086 y 8088 que contaban
con memoria de 512K y 16 instrucciones de aqu en adelante se presentan
grandes cambios en los microprocesadores siguientes tanto en su modo de
operacin como en la cantidad de memoria incluida y la cantidad de
instrucciones.
Actualmente muchos aparatos domsticos, sobre todo las consolas para
videojuegos, a las que hay que aadir los telfonos mviles, los vdeos, los
asistentes personales digitales (PDA) y un sinfn de aparatos caseros,
industriales, para coches y electrnicos, tienen circuitos parecidos a la mquina
ING JUAN ALBERTO VAZQUEZ G.
Pgina 8 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

de Turing (con la limitacin de que la programacin de estos aparatos est


instalada en un chip de memoria ROM que hay que remplazar cada vez que
queremos cambiar la programacin).
Esta especie de computadoras que se encuentran dentro de otras
computadoras de uso general es conocida como microcontroladores o
computadores integrados.

1.2 Funcionamiento del


del Sistema.
Sistema.
El principio de funcionamiento de un computador se puede entender
fcilmente haciendo una analoga con una orquesta para interpretaciones
musicales, en la cual se debe tener lo siguiente:
1. Un lenguaje con el cual se puedan representar las notas musicales.
Consiste de smbolos que significan algo para representar un tema musical.
De manera anloga a la funcin de las notas musicales, en el campo de los
sistemas informticos se dispone de lenguajes para escribir las instrucciones que
el computador debe interpretar y ejecutar. Algunos de estos lenguajes han sido el
Basic, Fortran, Cobol, C y Pascal, entre otros.
2. Un personal administrativo que organice todas las funciones en el teatro,
tal como ayudar a ubicar los asistentes en sus sillas, controlar las luces,
organizar el aseo, imponer el orden, vender los boletos, guardar las partituras
que ya se tocaron, eliminar las que ya no son tiles, etc.
En el computador, tal administracin de los recursos del sistema le
corresponde a un conjunto de programas denominado Sistema Operativo, los
cuales indican al computador cmo hacer las operaciones bsicas relacionadas
con el manejo de los discos, cmo operar los dispositivos perifricos (monitor,
teclado, impresora, mouse, scanner, etc.).
Los sistemas operativos ms populares actualmente son Linux y Windows. El
primero es libre, y por el segundo hay que pagar una licencia de uso para cada
mquina.
3. Un director que se hace en el centro de la orquesta para indicar a cada
ejecutante cundo y cmo tocar su instrumento.
En el computador, esa labor le corresponde a la CPU, que significa Unidad
Central de Procesamiento. Es la pieza fundamental, sin la cual no puede
funcionar ninguna de las otras. Recibe las instrucciones de los programas, las
traduce al lenguaje interno de la mquina, las ejecuta, controla todos y cada uno
de los pasos del proceso y administra los accesos a la memoria. Hace las
operaciones aritmticas, compara los resultados y procede en consecuencia.
4. Unas partituras con las notas de las canciones que se han de interpretar.
En el computador, las partituras equivalen a los programas de aplicacin. Son
conjuntos de instrucciones desarrollados para que la CPU ejecute las tareas del
usuario, tal como llevar la contabilidad de la empresa, convertir el computador en
una mquina para escribir o dibujar, elaborar planillas, actuar como si fuese un
equipo de sonido o de video, etc. El programa de aplicacin puede ser
desarrollado por el usuario, o comprado en tiendas especializadas.
5. Unos atriles para sostener temporalmente las hojas con las partituras que
se han de interpretar.
ING JUAN ALBERTO VAZQUEZ G.
Pgina 9 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

En el computador, esa funcin le corresponde a la memoria RAM, utilizada


por la CPU como cuaderno de borrador para apuntes ocasionales y para cargar
porciones del programa que ha de ejecutar. Es la memoria temporal para la
sesin de trabajo, a diferencia de la memoria de los discos, que es memoria de
almacenamiento permanente.
6. Uno o ms maletines en los cuales se guardan las carpetas con las
partituras y los accesorios para manejar los instrumentos.
En el computador esto equivale a las unidades de disco, de CD o de cinta. Es
lo que se llama memoria de almacenamiento. De lo que all se graba, se puede
copiar cualquier porcin a la memoria de trabajo (memoria RAM) para que la CPU
haga su trabajo de una forma ms eficiente, ya que a los datos de la memoria
RAM se accede muchsimo ms rpido que si estos se toman cada vez de la
unidad de disco.
7. Diversos instrumentos musicales. Los hay de entrada por teclado, como los
pianos y rganos; de salida de viento como las trompetas y flautas; de cuerdas o
de percusin, como tambores, etc.
En un sistema informtico, los instrumentos equivalen a los equipos de
entrada y salida de datos, tales como el teclado, el mouse (ratn), la cmara de
video, el joystick (palanca de juegos), el scanner (rastreador de imagen), la
impresora y el monitor.

1.3 Elementos que componen un sistema con microprocesadores


Adems de ser la
parte principal de
cualquier
computadora, el
microprocesador
puede ser utilizado
en sistemas tan
variados como
control industrial,
alarmas, robtica,
procesamiento de
seales, etc. Los
microprocesadores
empleados para
estas aplicaciones
generalmente son
mucho ms
sencillos que los
usados en las PC, en la figura de arriba se muestra como se podra implementar
un sistema de control industrial, sin embargo si cambiamos la entradas y salidas
por elementos de computo como puede ser un teclado, ratn, impresora, etc. la
salida ser evidentemente una computadora digital.
Tradicionalmente los sistemas con microprocesadores se basan en la
arquitectura de Von Neumann (se habla ms delante de esta arquitectura), en la
ING JUAN ALBERTO VAZQUEZ G.
Pgina 10 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

cual la unidad central de proceso (CPU), est conectada a una memoria principal
nica (casi siempre slo RAM) donde se guardan las instrucciones del programa y
los datos. A dicha memoria se accede a travs de un sistema de buses nico
(control, direcciones y datos)

En un sistema con arquitectura Von Neumann el tamao de la unidad de


datos o instrucciones est fijado por el ancho del bus que comunica la memoria
con la CPU. As un microprocesador de 8 bits con un bus de 8 bits, tendr que
manejar datos e instrucciones de una o ms unidades de 8 bits (bytes) de
longitud. Si tiene que acceder a una instruccin o dato de ms de un byte de
longitud, tendr que realizar ms de un acceso a la memoria.

1.4 Estructura de un Microprocesador


El microprocesador para poder ser parte medular de un dispositivo se
compone de diversas partes entre las que destacan la Unidad de control (UC)
encargada de detectar el estado de cada uno de los elementos y recibir desde la
memoria las instrucciones que se van a ejecutar.
Dentro de los microprocesadores encontramos las direcciones que representan
nmeros que la computadora usa para especificar la localizacin de un conjunto
de datos dentro de la memoria u otro dispositivo de almacenamiento.
Tambin se hace uso de buses que se trata de pistas o canales que
transportan datos de un lugar a otro, los cuales se clasifican de acuerdo al ancho
de bits (nmero de bits que pueden ser transmitidos simultneamente: 32-bits,
64-bits, etc.).
Otro elemento del procesador es la memoria Cach que ejecuta las
instrucciones de forma ms rpida que el resto de los componentes internos. Por
tanto necesita un espacio extra de memoria conocido como memoria cach, esta
es mucho ms rpida que la RAM. Bsicamente La cach mejora el tiempo de
acceso a memoria principal.
Existen 2 formas de cach: primaria (L1) y secundaria (L2). Generalmente la
cach primaria viene incluida en el microprocesador, mientras que la cach
secundaria se encuentra en la tarjeta madre.
La Frecuencia del Reloj o Velocidad que se refiere al nmero de ciclos que un
CPU efecta. Esta velocidad se expresa en MegaHertz (Mhz) es decir millones de
ciclos por segundo. Hoy en da las velocidades de los microprocesadores es
especificada en GHz, que representa billones de ciclos por segundo.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 11 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

La Unidad de control (UC) que ejecuta una de las 4 tareas bsicas por cada
instruccin que la CPU recibe desde un conjunto de instrucciones o una entrada
del usuario.
Las tareas que ejecuta son:
 Extraer: obtiene la direccin de la prxima palabra en una instruccin
para ser ejecutada.
 Decodificar: enva las instrucciones desde la cach a la unidad
decodificadora.
 Ejecutar: inicia el proceso de clculos matemticos y lgicos y controla
el flujo de datos a sus propios destinos.
 Almacenar: almacena el resultado de la instruccin en el registro
apropiado o localizacin de memoria.
Una Unidad decodificadora encargada de convertir las instrucciones del
usuario o programas, a cdigo binario generando as los ceros y unos.
Similar a la anterior existe una Unidad de punto flotante conocida tambin
como coprocesador matemtico, esta se encarga de manejar operaciones
complejas que incluyen nmeros de punto flotante o nmeros que contienen
fracciones de enteros. Inicialmente el coprocesador se encontraba separado del
CPU, actualmente esta incluido en la arquitectura de este con el fin de aumentar
su velocidad y eficiencia.
Como es obvio un Conjunto de instrucciones almacenadas en el procesador,
que le dicen como funcionar y responder a comandos externos, comparando
resultados de operaciones y llevando a cabo las acciones que han sido definidas
por el fabricante o el programador. El microprocesador lee las instrucciones de
los programas que hay cargados en la memoria y las va procesando una a una a
alta velocidad, convirtindolas a cdigo binario por la unidad decodificadora
para ser ejecutadas.
La "Unidad Aritmtico-
Lgica" (ALU), encargada de
realizar todas las operaciones
e instrucciones que son
enviadas desde la UC.
Todos los datos proceden
del exterior del procesador
(datos de entrada) y como
resultado tendremos un dato
de salida que se mover a
travs de un mismo bus o
camino, las operaciones
sern realizadas por la ALU y
almacenara el resultado en
un registro especial llamado Acumulador, tambin se cuenta con un banco de
registros que servir como almacn de memoria y no se puede acceder desde
fuera. Este almacn de memoria slo admite un dato, que suele tener el tamao
mximo de los datos de ese procesador. El acceso a los registros es

ING JUAN ALBERTO VAZQUEZ G.


Pgina 12 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

extremadamente rpido, ya que estn situados a escasa distancia de las


unidades de clculo del procesador.
El contador de programa (en ingls Program Counter o PC), tambin llamado
Puntero de instrucciones (Instruction Pointer), parte del secuenciador de
instrucciones en algunas computadoras, es un registro del procesador de un
computador que indica la posicin donde est el procesador en su secuencia de
instrucciones. Para lograrlo se hace uso de un reloj encargado de la
sincronizacin con los dems dispositivos, as podemos hablar de frecuencia de
procesador y velocidad interna y externa del bus. El overclocking es un trmino
ingls compuesto que se aplica al hecho de hacer funcionar a un componente del
ordenador a una velocidad superior a su velocidad de diseo original.
Literalmente significa "subir el reloj hay procesadores actuales que soportan este
tipo de tecnologa.
Otra forma ms precisa de ver la estructura de la ALU
es mostrada en la figura de la derecha, donde se logra
distinguir el acumulador y los registros que sern
descritos a continuacin:
Acumulador:
En computacin, un acumulador es un registro en
donde se almacenan los resultados lgicos y aritmticos.
Sin un registro acumulador, sera necesario escribir el
resultado de cada clculo (suma, multiplicacin, etc.) en
la memoria primaria, tal vez para leerse y ser usado slo
para la siguiente operacin. Acceder a la memoria
primaria es ms lento que acceder a un registro
acumulador, porque la tecnologa utilizada para la
memoria primaria es ms lenta.
Registros de datos:
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!: valga como ejemplo
que al incrementar AH se le estn aadiendo 256 unidades a AX.
AX = Acumulador.
Es el registro principal, es utilizado en las instrucciones de multiplicacin y
divisin y en algunas instrucciones aritmticas especializadas, as como en
ciertas operaciones de carcter especfico como entrada, salida y traduccin.
BX = Base.
Se usa como registro base para referenciar direcciones de memoria con
direccionamiento indirecto, manteniendo la direccin de la base o comienzo de
tablas.
CX = Contador.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 13 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Se utiliza comnmente como contador en bucles y operaciones repetitivas de


manejo de cadenas. En las instrucciones de desplazamiento y rotacin se utiliza
como contador de 8 bits.
DX = Datos.
Usado en conjuncin con AX en las operaciones de multiplicacin y divisin
que involucran o generan datos de 32 bits. En las de entrada y salida se emplea
para especificar la direccin del puerto E/S.
Registros de segmento:
Definen reas de 64 Kb dentro del espacio de direcciones de 1 Mb del 8086.
Estas reas pueden solaparse 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.
Registros punteros de pila:
SP = Puntero de pila (stack pointer).
Apunta a la cabeza de la pila. Utilizado en las instrucciones de manejo de la
pila.
BP = Puntero base (base pointer).
Es un puntero de base, que apunta a una zona dentro de la pila dedicada al
almacenamiento de datos (variables locales y parmetros de las funciones en los
programas compilados).
Registros ndices:
SI = ndice fuente (source index).
Utilizado como registro de ndice en ciertos modos de direccionamiento
indirecto, tambin se emplea para guardar un valor de desplazamiento en
operaciones de cadenas.
DI = ndice destino (destination index).
Se usa en determinados modos de direccionamiento indirecto y para
almacenar un desplazamiento en operaciones con cadenas.
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.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 14 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

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; los bits del 8 al 10 son indicadores de control y el resto no se utiliza.
Estos indicadores pueden ser comprobados por las instrucciones de salto
condicional, lo que permite variar el flujo secuencial del programa segn el
resultado de las operaciones.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
CF (Carry Flag): Indicador de acarreo. Su valor ms habitual es lo que nos
llevamos en una suma o resta.
OF (Overflow Flag): Indicador de desbordamiento. Indica que el resultado de
una operacin no cabe en el tamao del operando destino.
ZF (Zero Flag): Indicador de resultado 0 o comparacin igual.
SF (Sign Flag): Indicador de resultado o comparacin negativa.
PF (Parity Flag): Indicador de paridad. Se activa tras algunas operaciones
aritmtico-lgicas para indicar que el nmero de bits a uno resultante es par.
AF (Auxiliary Flag): Para ajuste en operaciones BCD(Cdigo decimal a binario).
DF (Direction Flag): Indicador de direccin. Manipulando bloques de memoria,
indica el sentido de avance (ascendente/descendente).
IF (Interrupt Flag): Indicador de interrupciones: puesto a 1 estn permitidas.
TF (Trap Flag): Indicador de atrape (ejecucin paso a paso).
De acuerdo con la arquitectura no es posible acceder de forma inmediata a los
datos de los registros, pero si es posible obtener estos datos a travs los
resultados del acumulador cuando son enviados a los dispositivos de salida.
Finalmente la arquitectura de nuestro procesador junto con la ALU es
mostrada en la figura, ms adelante iremos ampliando esta imagen pero de
momento esta arquitectura de algn modo temporal servir para que usted vaya
entendiendo el concepto de microprocesador.
La arquitectura de Von Neumann se caracteriza por disponer de una sola
memoria principal donde se almacenan datos e instrucciones de forma indistinta.
A dicha memoria se accede a travs de un sistema de buses nico
(direcciones, datos y control).
La arquitectura Harvard a
diferencia de la de Neumann
dispone de dos memorias
independientes una, que contiene
slo instrucciones y otra, slo
datos. Ambas disponen de sus
respectivos sistemas de buses de
acceso y es posible realizar
operaciones de acceso (lectura o
escritura) simultneamente en
ambas memorias.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 15 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Encapsulado: En las primeras computadoras el CPU se encontraba soldado a


la tarjeta madre, lo que presentaba el inconveniente de no poder cambiarlo
cuando fuese necesario, hoy en da este se encuentra unido a la tarjeta principal
a travs de un conector, conocido como zcalo(socket). La incorporacin de
zcalos de conexin permite conectar diferentes CPUs a la tarjeta madre, o
cambiar fcilmente un procesador daado.

1.5 Memorias
Una memoria cach es una memoria en la que se almacenas una serie de
datos para su rpido acceso. Existen muchas memorias cach (de disco, de
sistema, incluso de datos, como es el caso de la cach de Google), pero en este
caso nos vamos a centrar en la cach de los procesadores.
Bsicamente, la memoria cach de un procesador es un tipo de memoria
voltil (del tipo RAM), pero de una gran velocidad.
En la actualidad esta memoria est integrada en el procesador, y su cometido
es almacenar una serie de instrucciones y datos a los que el procesador accede
continuamente, con la finalidad de que estos accesos sean instantneos. Estas
instrucciones y datos son aquellas a las que el procesador necesita estar
accediendo de forma continua, por lo que para el rendimiento del procesador es
imprescindible que este acceso sea lo ms rpido y fluido posible.
Hay tres tipos diferentes de memoria cach para procesadores:
Cach de 1er nivel (L1):
Esta cach est integrada en el ncleo del procesador, trabajando a la misma
velocidad que este. La cantidad de memoria cach L1 vara de un procesador a
otro, estando normalmente entre los 64KB y los 256KB. Esta memoria suele a su
vez estar dividida en dos partes dedicadas, una para instrucciones y otra para
datos.
Cach de 2 nivel (L2):
Integrada tambin en el procesador, aunque no directamente en el ncleo de
este, tiene las mismas ventajas que la cach L1, aunque es algo ms lenta que
esta. La cach L2 suele ser mayor que la cach L1, pudiendo llegar a superar los
2MB.
A diferencia de la cach L1, esta no est dividida, y su utilizacin est ms
encaminada a programas que al sistema.
Cach de 3er nivel (L3):
Es un tipo de memoria cach ms lenta que la L2, muy poco utilizada en la
actualidad.
En un principio esta cach estaba incorporada a la placa base, no al
procesador, y su velocidad de acceso era bastante ms lenta que una cach de
nivel 2 o 1, ya que si bien sigue siendo una memoria de una gran rapidez (muy
superior a la RAM, y mucho ms en la poca en la que se utilizaba), depende de
la comunicacin entre el procesador y la placa base.
Para hacernos una idea ms precisa de esto, imaginemos en un extremo el
procesador y en el otro la memoria RAM. Pues bien, entre ambos se encuentra la
memoria cach, ser ms rpida cuanto ms cerca se encuentre del ncleo del
procesador (L1).
ING JUAN ALBERTO VAZQUEZ G.
Pgina 16 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Las memorias cach son extremadamente rpidas (su velocidad es unas 5


veces superior a la de una RAM de las ms rpidas), con la ventaja aadida de no
tener latencia, por lo que su acceso no tiene ninguna demora... pero es un tipo de
memoria muy cara.
Esto, unido a su integracin en el procesador (ya sea directamente en el
ncleo o no) limita bastante el tamao, por un lado por lo que encarece al
procesador y por otro por el espacio disponible.
En cuanto a la utilizacin de la cach L2 en procesadores multinucleares,
existen dos tipos diferentes de tecnologas a aplicar.
Por un lado est la habitualmente utilizada por Intel, que consiste en que el
total de la cach L2 est accesible para ambos ncleos y por otro est la utilizada
por AMD, en la que cada ncleo tiene su propia cach L2 dedicada solo para ese
ncleo.
La cach L2 apareci por primera vez en los Intel Pentium Pro, siendo
incorporada a continuacin por los Intel Pentium II, aunque en ese caso no en el
encapsulado del procesador, sino externamente (aunque dentro del procesador).
Una memoria utilizada de forma externa es la RAM, vista en la antologa
Organizacin de Computadoras 3 cuatrimestre y capitulo 3 de la Ingeniera en
Sistemas Computacionales del Centro de Estudios Superiores de Veracruz.

1.6 Perifricos
Perifricos
Se denominan perifricos tanto a las unidades o dispositivos a travs de los
cuales entra informacin al ordenador (dispositivos de entrada), o sale
informacin procesada de ste (dispositivos de salida), como a los sistemas que
almacenan o archivan la informacin, sirviendo de memoria auxiliar a la memoria
principal. Hacen posible un intercambio de informacin entre el ordenador y el
exterior, por lo que hacen til el ordenador.
Segn esta definicin, los perifricos estn constituidos por unidades de
entrada, unidades de salida y unidades de memoria masiva auxiliar. Estas
ltimas unidades tambin pueden considerarse como unidades de E/S, ya que el
ordenador central puede escribir (dar salidas) sobre ellas, y la informacin escrita
puede ser leda, es decir, ser dada como entrada. Ahora bien, la informacin
grabada en estos soportes no es directamente perceptible para el usuario de la
ordenador, esto es, no puede haber una intercomunicacin directa usuario-
ordenador como la que hay a travs de un teclado/pantalla.
Los perifricos se comunican con el microprocesador a travs de
interrupciones, es decir, cuando el perifrico quiere comunicarse con el "micro"
enva una seal de aviso para que este ltimo interrumpa el proceso que est
realizando. El micro identifica quin le ha interrumpido porque en cada una de
las lneas de interrupcin que tiene para los perifricos, slo puede haber uno
conectado. Cuando el ordenador arranca, carga los parmetros de los distintos
perifricos que tiene conectados, de modo que cuando el microprocesador es
interrumpido, sabe como identificarlos y establecer la comunicacin.
Cuando es el microprocesador el que desea comunicarse con el perifrico,
trata a ste como si fuese una direccin de memoria y vuelca en ella la
informacin que desea enviarle. Para que no haya interferencias con los dems
ING JUAN ALBERTO VAZQUEZ G.
Pgina 17 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

perifricos cada uno tiene asignada una determinada direccin de memoria, por
lo que no puede haber dos perifricos ubicados en la misma direccin. En ciertos
casos hay perifricos a los que se les permite acceder directamente a la memoria
del PC para hacer traslade de informacin, esto agiliza considerablemente este
proceso, pero para conseguirlo el microprocesador debe proporcionar unos
canales de acceso directo a la memoria (DMA). Cada perifrico ha de tener su
propio canal de acceso y no debe de compartirlo con ningn otro.
Por lo tanto, en la instalacin de un perifrico debemos estar seguros de que la
direccin de memoria que le asignamos, as como su lnea de interrupcin y el
canal de DMA (Acceso directo a memoria), no estn compartidas con ningn otro
perifrico.
La informacin que viaja de unos perifricos a otros, al microprocesador, o a
la memoria, est encauzada a travs de unas lneas de comunicacin. El
conjunto de dichas lneas forma el bus del ordenador. En el bus vuelcan
informacin a una gran variedad de perifricos que, adems, pueden estar
fabricados por diferentes empresas. Si no se establecen unas normas mnimas,
cada perifrico derramar su propia informacin pero con el formato que cada
fabricante establezca, llegndose a la situacin de tener una gran cantidad de
informacin en el bus que nadie es capaz de utilizar, ya que no es comprensible
por los distintos perifricos que se conectan. Para evitar esta situacin se han
creado unos buses estndar.
El bus ISA fue reemplazado desde el ao 2000 por el bus PCI. Los
componentes diseados para el bus ISA eran muy grandes y fueron de los
primeros buses en usarse en los ordenadores personales. Hoy en da no se
fabrican buses ISA.
Los computadores poseen distintos tipos de buses que proporcionan
comunicacin a distintos niveles dentro de la jerarqua del sistema. El bus que
conecta los componentes principales del computador (procesador, memoria y
E/S) se denomina bus del sistema. Las estructuras de interconexin ms
comunes dentro de un computador estn basadas en el uso de uno o ms buses.

1.7 Comunicacin entre mdulos.


En los microcomputadores, la
comunicacin entre la CPU y otros
dispositivos como memorias y puertos
se efecta a travs del bus del sistema.
El bus de direcciones de un
microcomputador se encuentra
estrechamente relacionado con los
decodificadores, ya que gracias a ellos
es posible seleccionar los dispositivos
internos del microcomputador y las
posiciones de memoria para efectuar
operaciones de lectura y escritura.
A continuacin de dar una explicacin sobre la composicin de este bus y su
funcionamiento.
ING JUAN ALBERTO VAZQUEZ G.
Pgina 18 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Los buses de direcciones, datos y control inicialmente son el "bus del


sistema". Este bus se encuentra separado en tres canales que manejan
respectivamente direcciones, datos y seales de control, los cuales permiten al
procesador comunicarse con los dems dispositivos del microcomputador, tales
como las memorias y los dispositivos de E/S.
Bus de Datos
Este bus es bidireccional y es el canal por el cual se conducen los datos entre
la CPU y los dems dispositivos (memorias, puertos y otros).
Bus de Direcciones
El bus de direcciones es un canal unidireccional por el cual la CPU enva las
direcciones de memoria para ubicar informacin en los dispositivos de memoria,
puertos u otros dispositivos del microcomputador.
Bus de Control
El bus de control, al igual que el bus de direcciones es unidireccional y se
utiliza para efectuar la lectura y escritura en las memorias y puertos de E/S.
Este bus en general lo emplea la CPU para controlar el flujo de los datos y las
direcciones de forma organizada.
FUNCIONAMIENTO DEL BUS DEL SISTEMA
El bus de datos depende del tamao de los datos que maneja el procesador,
este puede tener 8, 16 o 32 bits y el bus de direcciones generalmente tiene como
mnimo 16 bits. El bus del sistema se utiliza para transferir informacin entre la
CPU y la memoria o para extraer instrucciones almacenadas en memoria y datos
presentes en los puertos de E/S.
El intercambio de informacin por el bus del sistema se realiza con dos tipos
de operaciones:
Ciclo de Lectura: Cuando los datos en Memoria o puertos de E/S se
transfieren a la CPU.
Ciclo de Escritura: Cuando los datos de la CPU se transfieren a la Memoria o a
los puertos de E/S.
Las lneas de control son aquellas con las que se controla el flujo de la
informacin por los buses, y las ms importantes son:
 CHIPSELECT (CS)
 LECTURA (RD)
 ESCRITURA (WR)
Cada transferencia empieza con la carga de una direccin en el bus de
direcciones. Las lneas correspondientes a los bits menos significativos de la
direccin se encuentran conectadas directamente a las memorias. Las lneas de
direccin de los bits ms significativos se utilizan para seleccionar el dispositivo
del cual se desea extraer la informacin, ya sea una EPROM, RAM o un Puerto de
E/S. Entonces, el decodificador de direcciones se encarga de seleccionar el
dispositivo que se debe activar segn la direccin presente en el bus. Para ello,
cada dispositivo en el microcomputador debe tener una nica direccin que lo
identifique.
La seal CS selecciona el dispositivo que debe transmitir los datos por el bus
de datos. Luego una de las seales RD o WR se activa desde la CPU, con lo cual

ING JUAN ALBERTO VAZQUEZ G.


Pgina 19 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

se ordena al dispositivo seleccionado enviar los datos a la CPU (ciclo de lectura) o


recibirlos de la CPU (ciclo de escritura).
Todos los ciclos de lectura y escritura comienzan con una direccin vlida de
la CPU. Luego el decodificador de direcciones genera una seal CS para
seleccionar uno de los dispositivos. Entonces la CPU enva una seal RD o WR
para efectuar la lectura o escritura de los datos.
Para una operacin de lectura el dispositivo debe conducir a travs del bus de
datos, lo cual toma un tiempo corto (el tiempo de acceso de los datos), y los datos
deben estar disponibles en el bus durante el flanco de subida de la seal RD.
Durante este flanco de subida la CPU toma los datos y los almacena
internamente en sus registros.
Durante un ciclo de escritura la CPU por si misma maneja de los datos. En
este caso, al igual que en el ciclo de lectura los datos deben estar disponibles en
el bus antes de que ocurra el flanco de subida de la seal WR, para que el
dispositivo seleccionado pueda recibir los datos correctamente.

ACTIVIDAD:

Realice un cuestionario e intercambie preguntas con sus compaeros de clase,


aconsejo solicitar al maestro que evalu las respuestas dadas.

EVALUACION:
 Explique en no ms de tres lneas el funcionamiento de un procesador.
 Mencione por lo menos tres elementos que integran al procesador.
 Disee una estructura del microprocesador explicando cada una de las
partes.
 Cul es la importancia de la memoria en un procesador?
 Mencione como se lleva a cabo la comunicacin entre el microprocesador y
los distintos perifricos.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 20 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Capitulo II
ESTRUCTURA DE UN SISTEMA
CON MICROPROCESADORES

2.1 Seales de control y de sincrona del sistema.


2.2 Arquitectura de los sistemas.
2.3 Sistemas auxiliares (backup, wachdog, real clock).
2.4 Planeacin de recursos del sistema.
2.5 Clculo de consumo de energa.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 21 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INTRODUCCION:

Adems de ser la parte principal de cualquier computadora, el


microprocesador puede ser utilizado en sistemas tan variados como control
industrial, alarmas, robtica, procesamiento de seales, etc. Los
microprocesadores empleados para estas aplicaciones generalmente son
mucho ms sencillos que los usados en las PC.
En varias imgenes del capitulo anterior hemos visto el diagrama a
bloques simplificado de un sistema de control con microprocesador.
Si cambiamos los tipos de dispositivos de entrada y de salida, ste
diagrama en bloques podra ser el de una computadora personal.
Los sistemas construidos sobre la base de los microprocesadores,
requieren para su puesta en marcha, el desarrollo del software, es decir, el
desarrollo de programas que una vez construidos, son almacenados en las
memorias permanentes (PROM, EPROM,...) del sistema, donde son
buscados por el microprocesador para desarrollar todas las funciones y
tareas deseadas.

OBJETIVO:

Ampliaremos nuestro estudio de los procesadores hasta conocer las


seales y la arquitectura que manejan.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 22 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

ESTRUCTURA DE UN SISTEMA CON MICROPROCESAD


MICROPROCESADORES
Un sistema basado en microprocesadores es aquel en el cual a partir de
instrucciones a realizar que son almacenados en memoria es capaz de utilizar
una serie de instrucciones y funciones predeterminadas de forma sncrona,
adems de poder realizar una serie de operaciones que son asncronas.
Los bloques que integran esta arquitectura ya han sido vistos en el capitulo
anterior por lo que en este capitulo ya nos sern de inters los bloques, sino ms
bien la forma en la cual se comunicaran y ordenaran estos bloques.

2.1 Seales de control y de sincrona del sistema.


El control de la informacin que circula a travs de un determinado bus puede
estar centralizado o no centralizado. Si el control est centralizado, es un nico
dispositivo el que determina quin y cundo lee o escribe en el bus; sin embargo,
cuando el control es no centralizado, cualquiera puede leer o escribir en el bus
bajo ciertas condiciones. Cualquiera de los dos casos anteriores puede estar
implementado con cualquiera de los tres tipos siguientes de conexin:
 Daisy Chain (DC)
 Polling o Encuesta (E)
 Peticin Independiente (PI)
Centralizado - Daisy Chain: Existe una seal Bus Disponible que atraviesa
todos los dispositivos y que est desactivada cuando ninguno de ellos usa el bus.
Cuando uno de ellos requiere acceder al bus, activa su correspondiente salida
Peticin Bus y entonces, el control activa la lnea Bus Disponible. Si un
dispositivo recibe la seal Bus Disponible y no desea utilizar el bus, pasa la seal
al prximo dispositivo. Cuando un dispositivo recibe dicha seal y desea utilizar
el bus, activa la lnea Bus Ocupado, desactiva la lnea Peticin Bus y empieza su
transmisin. Las lneas permanecen en este estado hasta que el dispositivo
termina su transmisin, instante en que desactiva la seal Bus Ocupado, lo que
hace que el control desactive la seal Bus Disponible y el ciclo comience de
nuevo. Como ventaja, esta estructura cuenta con su simplicidad y como
desventajas, con su marcada cantidad de fallos, el esquema fijo de prioridades,
lentitud relativa de funcionamiento y dificultad para aadir o suprimir
dispositivos.
Centralizado - Encuesta: Cada dispositivo posee un nmero de
identificacin. Cuando el control recibe una seal de Peticin Bus, realiza una
cuenta progresiva y, cuando el dispositivo que desea acceder al bus detecta que
la cuenta coincide con su nmero de identificacin, activa la lnea Bus Ocupado.
El control detiene la cuenta hasta que el dispositivo desactiva la seal Bus
Ocupado, una vez finalizada la transaccin. Cuando se produce una nueva
peticin de bus, el contador puede ser reinicializado (existe una prioridad entre
los dispositivos, como en el caso anterior) o reanudarse donde qued (no hay
prioridades). Este tipo de control centralizado implica un mayor nmero de lneas
de control para realizar la cuenta. Tambin puede emplazarse un contador en
cada dispositivo y activarlos mediante una nica seal de control, pero en ese
caso aumenta la posibilidad de fallos.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 23 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Centralizado - Peticin Independiente: Cada dispositivo cuenta con una


lnea de salida Peticin de Bus que activa cuando desea acceder al bus y otra de
entrada Bus Asignado que el control activa cuando se le ha asignado el uso del
bus a ese dispositivo especfico. Hay una nica lnea de Bus Ocupado que el
dispositivo que usa el bus activa para indicar al control que el bus est en uso.
No Centralizado - Daisy Chain: Una lnea Bus Disponible recorre todos los
dispositivos. Cuando un dispositivo recibe un cambio de estado (flanco) en esta
seal, puede transmitirlo al siguiente si no desea usar el bus o bloquearlo
mientras hace uso de l. Cuando el bus permanece inactivo, la seal Daisy Chain
va realizando cambios de estado a lo largo de todos los dispositivos (accin que se
conoce como pasar el testigo) hasta que alguno de ellos la bloquee y acceda al
bus. La dependencia de flancos en lugar de niveles hace que este esquema sea
ms sensible a los ruidos.
No Centralizado - Encuesta: Cuando el dispositivo que posee el bus desea
cederlo, coloca un cdigo de identificacin en las lneas de polling (lneas de
consulta a dispositivos) y activa la seal Bus Disponible. Si el cdigo coincide con
el de otro dispositivo que desea el bus, ste ltimo activa la seal Bus Aceptado y
el primero retira el cdigo de las lneas de polling y desactiva la lnea Bus
Disponible. Entonces, el segundo dispositivo desactiva la lnea Bus Aceptado e
inicia la transaccin. En caso de que, ante la activacin de Bus Disponible,
ningn dispositivo active la seal Bus Aceptado transcurrido un tiempo
preestablecido, el dueo actual del bus coloca un nuevo cdigo en las lneas de
polling y vuelve a intentar la transferencia. Este mtodo requiere mayor
complejidad de hardware y que el bus sea asignado a algn dispositivo al
arrancar el sistema.
No Centralizado - Peticin Independiente: Cuando un dispositivo desea
acceder al bus, activa su lnea Peticin Bus. Cuando el dispositivo que tiene
asignado el bus termina sus transacciones, desactiva la lnea Bus Asignado,
realiza una consulta de todas las lneas Peticin Bus y determina cul es la de
mayor prioridad, pasndole el control al dispositivo correspondiente. En esta
modalidad es necesario un gran nmero de lneas.
Una vez que un dispositivo ha conseguido el control de un bus, debe
establecer contacto con el destinatario deseado. Para esto, se requiere la
siguiente informacin:
Direccin de procedencia: Suele ser implcita, ya que suele tratarse del
dispositivo que se ha hecho con el control del bus.
Direccin de destino: Puede ser implcita (en un bus dedicado, por ejemplo).
Se llama bus dedicado a aquel que realiza una funcin especfica o comunica
dos dispositivos.
Clase de comunicacin: Tipo de informacin a transferir (datos, comandos,
estado, interrupciones, etc.). Esto tambin puede ser parcial o totalmente
implcito, o puede estar condicionado por el tipo de accin.
Tipo de accin: Funcin a realizar (escritura, lectura).
Toda esta informacin debe transferirse entre los dispositivos atendiendo a un
tipo de sincronismo.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 24 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Un bus puede ser, bajo este punto de vista, sncrono (S) o asncrono (A). En
los buses asncronos se suele emplear la tcnica denominada entrelazado de las
seales para hacer que la comunicacin sea ms fiable y que no se vea
influenciada por ruidos ocasionales en las lneas del bus. El entrelazado consiste
en que, cuando varias seales coordinan una sincronizacin, cada una de ellas
solamente podr activarse o desactivarse dependiendo de si lo ha hecho alguna
de las dems, es decir, las seales no son totalmente independientes entre s.

2.2 Arquitectura de los sistemas.


Los datos introducidos en el computador se utilizan como base de operaciones
de tipo aritmticas lgicas, son funciones realizadas por la ALU que adems
tienen registros especiales y de uso general vistos en el capitulo anterior en
donde se procesa la informacin antes y despus de su uso. Luego se almacena
en la memoria central que es la zona de almacenamiento de gran capacidad
guardndose aqu tanto datos como programas ejecutables.
Todo el sistema es controlado por la unidad de control generando las seales
de temporizacin y sincronizacin para todo el sistema.
A partir de esta descripcin se pueden apreciar en la arquitectura del sistema
dos elementos diferentes en cuanto a sus caractersticas por un lado los circuitos
electrnicos que conforman el procesador y por el otro lado el conjunto de
operaciones que se realizan y que constituyen el programa.
Desde el punto de vista de su arquitectura (que es esencialmente el juego de
instrucciones bsicas del procesador), se diferencia entre los sistemas
denominados CISC (Complex Instruction Set Computer) con una arquitectura
compleja y los RISC (Reduced Instruction Set Computer) con un conjunto de
instrucciones ms simples.
La tecnologa CISC (Complex Instruction Set Computer) naci en los aos 70
de la mano de Intel, creador en 1971 del primer microchip que permitira el
nacimiento de la informtica personal. Ms concretamente, sera en 1972 cuando
aparecera el 8080, primer chip capaz de procesar 8 bits, suficiente para
representar nmeros y letras. Con la posibilidad de colocar todos los circuitos en
un solo chip y la capacidad de manejar nmero y letras nacera la cuarta
generacin de ordenadores, la de los conocidos como PC u ordenadores
personales. El diseo de esta arquitectura estuvo orientado por las condiciones
de mercado de aquella poca y muy especialmente por la limitacin en oferta y
precio de la memoria de acceso aleatorio del ordenador, la RAM. As pues,
muchas de las decisiones tomadas con relacin al diseo del chip tenan como
objetivo minimizar los requerimientos de memoria que se hicieran al ordenador.
Una forma de reducir la necesidad de memoria era simplificando el software e
incrementando la complejidad del procesador, lo cual si bien iba en deterioro del
rendimiento global del sistema era una solucin mucho mejor que tener que
aadir ms RAM.
La arquitectura RISC (Reduced Instructions Set Computer), por su parte, se
implementara desde su aparicin, algo ms tarda, principalmente en estaciones
de trabajo y servidores de red. En estas mquinas, donde la potencia y la
velocidad era requisito, los chips RISC se convertiran en los aos 80 en la
ING JUAN ALBERTO VAZQUEZ G.
Pgina 25 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

arquitectura ms comn y la combinacin de RISC con el sistema operativo Unix,


en la configuracin de mayor rendimiento. El elevado coste de estos sistemas
limitara su implantacin a este tipo de mquinas de gama alta de utilizacin
principal en mbitos empresariales o acadmicos, los nicos que podan
sufragarlas. La arquitectura RISC funciona de modo muy diferente a la CISC, su
objetivo no es ahorrar esfuerzos externos (por parte del software con sus accesos
a la RAM) sino facilitar que las instrucciones sean ejecutadas lo ms rpidamente
posible. La forma de conseguirlo es simplificando el tipo de instrucciones que
ejecuta el procesador. As, las instrucciones ms breves y sencillas (de ah el
trmino de reduced) de un procesador RISC son capaces de ejecutarse mucho
ms aprisa que las instrucciones ms largas y complejas de un chip CISC.
Adems, una serie de tcnicas inciales como la ejecucin superescalar y el
uso de segmentacin permita ejecutar ms de una instruccin a la vez
aumentando el rendimiento del chip. Sin embargo, este diseo requiere de mucha
ms RAM y de una tecnologa de compilador ms avanzada. Ambas cosas no
estuvieron disponibles para la informtica domstica hasta ms recientemente y
fue a partir de entonces, 1990, que Motorola e IBM se atrevieron a desarrollar un
chip RISC diseado para ser comercializado en ordenadores personales, el
PowerPC.
Para muchos observadores, el hecho de que la arquitectura RISC hubiera
triunfado en el entorno de mainframes, estaciones de trabajo o miniordenadores,
entornos todos muy exigentes y que puede permitirse elegir lo mejor, era una
prueba latente de la superioridad de su diseo con respecto a los chips CISC. As,
cuando en 1990 Apple lanza su primer Power Macintosh y anuncia que se pasa
al RISC, muchos auguraron que la tecnologa de instrucciones complejas tena
los das contados. Pero los fabricantes de procesadores CISC, han ido
aumentando el rendimiento y lo que es ms importante, han conseguido
mantener los precios de los chips muy bajos.

2.3 Sistemas auxiliares (backup, wachdog, real clock).


El "backup" consiste en realizar copias de seguridad de la informacin. Estas
copias pueden realizarse de forma manual y peridica. Pero, cual es el objeto de
hacer copias manualmente si tenemos un sistema redundante? La ventaja de los
"backups" es que por efectuarse segn ciertos perodos, la informacin
respaldada no es exactamente igual a la actual. Esto permite cierta proteccin
contra los errores humanos, borrado accidental o uso negligente ya que si nos
damos cuenta a tiempo (esto es, antes de que se haga un "backup" del error)
podremos recuperar los datos con cierto desfase de tiempo y solo ser necesario
actualizar ese desfase. Hay multitud de sistemas de copia de seguridad. Las ms
recomendables son las que dejan dos desfases (diarios y semanales por ejemplo)
ya que proporcionan una mejor seguridad, si se copi el error en el primer
perodo an nos queda un segundo para recuperar.
Aunque la traduccin de wachdog sea "perro-guardin", es un concepto de
proteccin usado para volver a reiniciar el programa cuando ste "se pierde" o
realiza una accin no prevista. Los watchdog existen fsicos o por programa. Su
funcionamiento contar cada ciertos pulsos de reloj en un determinado tiempo
ING JUAN ALBERTO VAZQUEZ G.
Pgina 26 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

esperando algn evento generado por el programa, si no le llega el evento el


watchdog se activa y hace que todo empiece de nuevo y si le llega el evento,
entonces todo est bien y no hace nada.
Un sistema de tiempo real es aquel en el que para que las operaciones
computacionales estn correctas no depende solo de que la lgica e implementacin de
los programas computacionales sea correcto, sino tambin en el tiempo en el que dicha
operacin entreg su resultado. Si las restricciones de tiempo no son respetadas el
sistema se dice que ha fallado.

2.4 Planeacin de recursos del sistema.


Un sistema operativo es un software de sistema, es decir, un conjunto de
programas de computadora destinado a permitir una administracin eficaz de
sus recursos. Comienza a trabajar cuando se enciende el computador, y gestiona
el hardware de la mquina desde los niveles ms bsicos, permitiendo tambin la
interaccin con el usuario.
Un sistema operativo se puede encontrar normalmente en la mayora de los
aparatos electrnicos que utilicen microprocesadores para funcionar, ya que
gracias a stos podemos entender la mquina y que sta cumpla con sus
funciones (telfonos mviles, reproductores de DVD, computadoras, etc.).
Los sistemas operativos, en su condicin de capa software que posibilitan y
simplifica el manejo de la computadora, desempean una serie de funciones
bsicas esenciales para la gestin del equipo. Entre las ms destacables, cada
una ejercida por un componente interno (mdulo en ncleos monolticos y
servidor en microncleos), podemos resear las siguientes:
Proporcionar ms comodidad en el uso de un computador.
Gestionar de manera eficiente los recursos del equipo, ejecutando servicios
para los procesos (programas).
Brindar una interfaz al usuario, ejecutando instrucciones (comandos).
Un sistema operativo desempea 5 funciones bsicas en la operacin de un
sistema informtico: suministro de interfaz al usuario, administracin de
recursos, administracin de archivos, administracin de tareas y servicio de
soporte y utilidades.
Es la parte del sistema operativo que permite comunicarse con l, de tal
manera que se puedan cargar programas, acceder archivos y realizar otras
tareas. Existen tres tipos bsicos de interfaces: las que se basan en comandos,
las que utilizan mens y las interfaces grficas de usuario como lo es Windows.
Los sistemas operativos administran los recursos de hardware y de redes de
un sistema informativo, como el CPU, memoria, dispositivos de almacenamiento
secundario y perifricos de entrada y de salida.
Un sistema de informacin contiene programas de administracin de archivos
que controlan la creacin, borrado y acceso de archivos de datos y de programas.
Tambin implica mantener el registro de la ubicacin fsica de los archivos en
los discos magnticos y en otros dispositivos de almacenamiento secundarios.
Los programas de administracin de tareas de un sistema operativo
administran la realizacin de las tareas informticas de los usuarios finales. Los

ING JUAN ALBERTO VAZQUEZ G.


Pgina 27 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

programas controlan que reas tiene acceso al CPU y por cunto tiempo. Las
funciones de administracin de tareas pueden distribuir una parte especfica del
tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier
momento para sustituirla con una tarea de mayor prioridad.

2.5 Clculo de consumo de energa.


Un sistema integrado (a veces traducido del ingls como embebido, empotrado
o incrustado) es un sistema informtico de uso especfico construido dentro de
un dispositivo mayor. Los sistemas integrados se utilizan para usos muy
diferentes de los usos generales para los que se emplea un ordenador personal.
En un sistema integrado la mayora de los componentes se encuentran
incluidos en la placa base o motherboard, la tarjeta de vdeo, audio, mdem, etc.
Dos de las diferencias principales son el precio y el consumo de energa.
El consumo elctrico est directamente relacionado con la disipacin de calor
por el microprocesador: a mayor voltaje, mayor cantidad de calor generada.
Debido a la alimentacin elctrica, se produce una disipacin de calor que
ser mayor o menor en funcin de cada microprocesador. Esto hace necesario el
uso de ventiladores y disipadores trmicos en los microprocesadores,
especialmente a partir del 486 y todos los posteriores. Los efectos de una mala
refrigeracin acaban provocando un funcionamiento inestable del
microprocesador, cuelgues inesperados, errores de clculo y, en casos extremos,
puede que el chip acabe totalmente quemado.
Una de las posibles consecuencias que puede generar el aumento de
temperatura de un microprocesador se denomina electromigracin. Este
fenmeno hace que determinados tomos que unen el material del que estn
fabricados las pistas internas del microprocesador se separen, lo que provoca que
cada vez conduzcan peor los impulsos elctricos y que el microprocesador
funcione cada vez peor, ms lentamente, produciendo frecuentes errores.
Un aspecto muy importante a considerar en la compra y venta de cualquier
equipo es el consumo de energa que tendr. Usando algunas de las pruebas de
PCMARK se tomaron mediciones instantneas (RMS) en diversos procesos,
sacando un promedio de ellas y se asignaron a cada rubro. Estos son los
resultados:

ING JUAN ALBERTO VAZQUEZ G.


Pgina 28 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Los datos anteriores permiten calcular el consumo de energa.

En la gran mayora de computadoras actuales la BIOS proporciona esta


informacin.

ACTIVIDAD:
Investigue la diferencia de los sistemas operativos Linux y Windows, tambin busque
la arquitectura de cada uno de estos sistemas.

EVALUACION:
 Que se entiende por sincrona y porque es importante.
 Que ventaja ofrece la planeacin de los procesadores.
 Defina los trminos wachdog y real clock.
 Construya un diagrama con la arquitectura de Von Neumman explicando el
funcionamiento de cada bloque.
 Mencione cuales son las seales de control de un microprocesador.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 29 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Capitulo III
BASES DE PROGRAMACION.

3.1 Terminales y funciones.


3.2 Registros principales contador de programa,
programa, apuntador de pila, etc.
3.3 Reinicio (reset).
3.4 Memoria de Programa y memoria de datos.
3.5 Distribucin de registros.
3.6 Vectores de interrupcin.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 30 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INTRODUCCION:

Con la aparicin de las computadoras personales (PC) y la reduccin en


el costo de las mismas, el microprocesador se convirti en uno de los
dispositivos electrnicos ms importantes en la historia de la electrnica.
Bsicamente, un microprocesador es un circuito electrnico de muy alta
escala de integracin, capaz de realizar una infinidad de tareas de forma
repetitiva a velocidades muy altas. Esto se logra por medio de la lgica
dictada por un conjunto de instrucciones que el microprocesador interpreta y
ejecuta y que recibe el nombre de programa.
Desde su aparicin en 1971 el microprocesador ha sufrido una gran
cantidad de cambios, todos ellos hacia el lado de aumentar su capacidad y
velocidad de procesamiento.
Pero para poder utilizar todo el potencial que encierra un
microprocesador, es necesario conocer y comprender su lenguaje natural,
esto es: el lenguaje ensamblador.

OBJETIVO:

Conoceremos aquellos componentes con a los cuales podemos tener


acceso de forma directa dentro del microprocesador.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 31 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

BASES DE PROGRAMACION.
Con la concepcin del transistor en 1947 y el inicio de su fabricacin en serie
en 1955, se facilit radicalmente su aplicacin en el diseo de familias lgicas
para sistemas digitales, abriendo el camino en 1957 para la revolucin de las
computadora con circuitos integrados, donde varios transistores se integran en
una oblea de silicio para formar el circuito integrado funcional; algunos de estos
circuitos operaban como cerrojos, que permitan mantener un estado lgico
binario en las salidas de las computadoras el tiempo suficiente para ser visible
por el ojo humano(pixeles o puntos); otros circuitos de tres estados lgicos
enviaban y recibian rpidamente informacin que sera procesada en el ncleo de
las computadoras. Estos componentes bsicos se mezclaron con contadores,
multiplexores y unidades aritmtico-lgicas que atrapaban, manipulaban y
liberaban los primeros datos, de ah que las primeras computadoras estuvieran
formadas por tablillas tapizadas de circuitos integrados discretos, en 1971 estos
circuitos se concatenaron en un solo circuito de alta integracin para producir el
primer microprocesador central.
El componente microprocesador no funciona por si solo, debe acompaarse
por otros circuitos con diversas lgicas, que conectados entre si forman un
diseo de una compleja arquitectura en particular. No todos los
microprocesadores son iguales, difieren en su ncleo, capacidades y su conjunto
de instrucciones, pero en una cosa no difieren, todos operan con cifras binarias,
incluso las supercomputadoras.
Para programar, practicar y comprender cabalmente el microprocesador
central es preciso crear un entorno bsico que llamamos computadora, tmese
cinco componentes y mntelos en la placa de un circuito impreso, estas piezas
seran: 1. Un microprocesador central como objetivo, 2. Una memoria definitiva
con el programa para que arranque el sistema y proporcione un resultado
prctico, 3. Incluya una memoria para guardar temporalmente los programas,
4. Despus conecte un tri-estado lgico para recibir las instrucciones o datos del
exterior, 5. Y por ltimo conecte un cerrojo lgico para enviar los datos tratados
al exterior. De las instrucciones que se incluyan en la memoria de arranque
depender el programa monitor o programa definitivo para la tarea especfica,
este programa es lo que algunos llaman BIOS (Basic Input/Output System) o
firmware.

3.1 Terminales y funciones.


Por medio de las terminales el microprocesador emite o recibe seales
digitales.
El microprocesador puede ejecutar instrucciones que lo hacen realizar
diferentes operaciones, las ms bsicas son:
Leer datos de memoria
Leer datos de las unidades de entrada
Realizar operaciones aritmticas y lgicas simples (suma, resta, AND,
OR, XOR) con los datos que ha ledo de memoria o de las unidades de
entrada.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 32 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Escribir datos o resultados de cmputos a memoria


Escribir datos o resultados de cmputos a las unidades de salida
A continuacin describiremos la misin que corresponde a cada una de las
principales terminales del microprocesador 8085.
A8-A15. Estos terminales corresponden a las
salidas de los 8 bits ms significativos del bus de
direcciones del sistema que est integrado el
microprocesador.
AD0-AD7. Es un conjunto de terminales de
entrada/salida que realizan una doble funcin.
Mediante un multiplexor, el microprocesador se
comunica en primer lugar con los 8 bits ms
significativos del bus de direcciones y
posteriormente con el bus bidireccional de datos.
ALE. Address Latch Enable (Activacin del
biestable latch de direcciones). Es una salida que
determina si la informacin presente en las lneas
AD0-AD7 corresponde a un dato o a una direccin.
Se utiliza para dispara un registro de 8 bits que
memoriza la parte baja de una direccin.
S0-S1. Son salidas que informan del estado del
bus de datos. Indican el tipo de ciclo de mquina
que el microprocesador realiza: bsqueda, lectura, escritura o paro.
RD.Read. Salida que se emplea para indicar que la posicin de memoria o
dispositivo de E/S seleccionado quiere ser ledo por la CPU y, adems que el bus
de datos est disponible para realizar la transferencia.
WR.Write. Salida que se utiliza para indicar que la informacin presente en el
bus de datos ha de ser escrita en la posicin de memoria o dispositivo de E/S
direccionado.
Las funciones de las 40 patas con las que se conecta el 8085 con el exterior
son las siguientes:
Pin Nombre Descripcin
1 X1
Entre estas dos patas se ubica el cristal
2 X2
RESET
3 Para inicializar perifricos
OUT
4 SOD Salida serie
5 SID Entrada serie
Entrada de interrupcin no enmascarable (significa que la interrupcin no puede ser deshabilitada
6 TRAP
por software).
7 RST 7.5 Entrada de interrupcin (mxima prioridad)
8 RST 6.5 Entrada de interrupcin
9 RST 5.5 Entrada de interrupcin

ING JUAN ALBERTO VAZQUEZ G.


Pgina 33 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

10 INTR Entrada de interrupcin (mnima prioridad)


11 /INTA Reconocimiento de interrupcin
12 AD0 Bus de direcciones y datos multiplexado
13 AD1 Bus de direcciones y datos multiplexado
14 AD2 Bus de direcciones y datos multiplexado
15 AD3 Bus de direcciones y datos multiplexado
16 AD4 Bus de direcciones y datos multiplexado
17 AD5 Bus de direcciones y datos multiplexado
18 AD6 Bus de direcciones y datos multiplexado
19 AD7 Bus de direcciones y datos multiplexado
20 GND Referencia de tierra. Todas las tensiones se miden con respecto a este punto.
21 A8 Bus de direcciones
22 A9 Bus de direcciones
23 A10 Bus de direcciones
24 A11 Bus de direcciones
25 A12 Bus de direcciones
26 A13 Bus de direcciones
27 A14 Bus de direcciones
28 A15 Bus de direcciones
29 S0 Bit de estado del 8085
Cuando est uno indica que salen direcciones por las patas ADn, en caso contrario, entran o
30 ALE
salen datos
31 /WR Cuando vale cero hay una escritura
32 /RD Cuando vale cero hay una lectura
33 S1 Bit de estado del 8085
34 IO/M Si vale 1: operaciones con puertos, si vale 0: operaciones con la memoria
35 READY Sirve para sincronizar memorias o perifricos lentos
36 /RESET IN Cuando est a cero inicializa el 8085
37 CLK OUT Salida del reloj para los perifricos
38 HLDA Reconocimiento de HOLD (congelamiento)
39 HOLD Sirve para poner los buses en alta impedancia para el manejo de DMA (acceso directo a memoria)
40 VCC tensin de alimentacin: +5Vdc
Existe una gran con los procesadores actuales, los cuales solo pueden realizan
las operaciones aritmticas bsicas con nmeros enteros o fraccionarios, sino
tambin ejecuta operaciones como raz cuadrada y funciones trascendentes como
clculo del seno, coseno, tangente, arcotangente, logaritmos y exponenciacin y

ING JUAN ALBERTO VAZQUEZ G.


Pgina 34 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

por lo mismo cuentan con numero mayor de pines., extendiendo su aplicacin a


ms puertos y dispositivos grficos.

3.2 Registros principales contador de programa, apuntador de pila, etc.).


etc.).
Los registros de la CPU del 8085-A estn distinguidos como sigue:
El acumulador (Registro ACC o A) es el foco de todas las instrucciones de
acumulador, las que incluyen las instrucciones aritmticas, lgicas, de carga y
almacenamiento, y de I/O. Es un registro de solo 8 bits.
El contador de programa (PC) siempre apunta a la posicin de memoria de la
siguiente instruccin a ser ejecutada. Contiene siempre una direccin de 16 bits.
Registros de propsito general BD, DE, y HL pueden ser usados como seis
registros de 8 bits o como tres de 16 bits, la intercambiabilidad, depende de la
instruccin que se est efectuando. El par HL funciona como puntero de datos
para referencia de direccin de memoria ya sea como fuente o como destino en
numerosas instrucciones. Un nmero menor de instrucciones pueden utilizar los
pares BC y DE para direccionamiento indirecto.
El puntero de stack (SP) es un puntero de datos especial que apunta siempre
al tope del stack (prxima direccin disponible del stack). Es un registro
indivisible de 16 bits.
El registro de indicadores o de banderas contiene 5 indicadores de 1 bit,
cada uno de los cuales registran la informacin de estado del procesador y puede
tambin controlar la operacin del procesador.
Indicadores
Se muestran los 5 indicadores de la CPU del 8085-A:
El indicador de acarreo (CY) es repuesto y ajustado por las operaciones
aritmticas.
Su estado puede ser verificado directamente por el programa. Por ejemplo, la
suma de dos nmeros de un byte puede producir una respuesta que no cabe en
un byte:

Una operacin que da como resultado un rebasamiento del bit de orden


superior en el acumulador pone en 1 al indicador de acarreo. La operacin de
suma que no termina con rebasamiento borra el indicador de acarreo.
El indicador de acarreo tambin acta como indicador de llevo para las
operaciones de resta.
El indicador de acarreo auxiliar (AC) indica rebasamiento del bit 3 del
acumulador de la misma forma que el indicador de acarreo indica rebasamiento
del bit 7. Este acarreo se utiliza por lo comn en la aritmtica BCD.
El indicador de signo es puesto con el valor del bit ms significativo del
acumulador siguiendo la ejecucin de las instrucciones aritmticas o lgicas.
Estas instrucciones utilizan el bit 7 de los datos para representar el signo de
los nmeros contenidos en el acumulador. Esto permite la manipulacin de los
nmeros en el rango desde 128 a +127.
ING JUAN ALBERTO VAZQUEZ G.
Pgina 35 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

El indicador de cero es puesto a 1 si el resultado generado por ciertas


instrucciones es cero. El indicador de cero es borrado si el resultado no es cero.
El resultado que tiene un acarreo pero que tiene la respuesta de cero en el
acumulador pondr ambos indicadores en 1, el de cero y el de acarreo. Por
ejemplo:

El incremento o decremento de ciertos registros de la CPU con resultado de


cero tambin pondrn en 1 el indicador de cero.
El indicador de paridad (P) es puesto a 1 si la paridad (nmero de bits en 1)
del acumulador es par. Si es impar se borra.
Stack. El puntero de stack mantiene la direccin del ltimo byte introducido
en el stack. El puntero de stack puede ser inicializado para utilizar cualquier
porcin de la memoria de lectura/escritura como stack. El puntero de stack es
decrementado cada vez que se introducen datos en el stack y se incrementa cada
vez que los datos son recuperados del stack (el stack crece hacia abajo en
trminos de direcciones de memoria y el tope del stack es la direccin numrica
ms baja del stack que se utiliza actualmente. Note que el puntero de stack se
incrementa o decrementa siempre en dos bytes ya que todas las operaciones de
stack se aplican a los pares de registros.
Unidad aritmtica lgica (ALU). La ALU contiene el acumulador, el registro
de estados, y algunos registros temporales que son inaccesibles para el
programador. Las operaciones aritmticas, lgicas, y de rotacin son efectuadas
por la ALU. Los resultados de esas operaciones pueden ser depositadas en el
acumulador, o pueden ser transferidas al bus de datos interno para su uso en
algn otro lugar.
Registro y decodificador de instrucciones. Durante la bsqueda de una
instruccin, el primer byte de una instruccin conteniendo el cdigo de
instruccin) es transferido desde el bus interno al registro de instrucciones de 8
bits. El contenido del registro de instrucciones, est en su momento disponible
para el decodificador de instrucciones. La salida del decodificador, est asociada
con las seales de temporizacin, controlan los registros, la ALU, y los buffers de
datos y direcciones. Las salidas del decodificador de instrucciones y el generador
de reloj interno generan las seales de temporizacin de los estados y ciclos de
mquina.

3.3 Reinicio (reset).


El reinicio (reset) se puede considerar un caso especial de interrupcin.
Cuando un sistema basado en microprocesador recibe alimentacin por
primera vez, inmediatamente despus de ello (apenas unos milisegundos
despus) ha de sufrir un reposicionado mediante una lnea al respecto llamada

ING JUAN ALBERTO VAZQUEZ G.


Pgina 36 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

RESET. En nuestra CPU, y prcticamente en todas, esa patilla ha de recibir


durante unos instantes (el fabricante especifica el tiempo mnimo, que se suele
medir en ciclos de clock) nivel bajo e inmediatamente despus ser llevada a nivel
alto. Podemos interpretar el protocolo como la salida de una etapa contra el reloj.
En nuestra CPU, cuando se activa su patilla Reset se borra el contenido de
todos los registros, y se pone el contador de programa a cero volviendo a empezar
el conteo de las instrucciones.
Se debe de activar ahora la lectura de memoria para que se mande y
posteriormente se ejecute la primera instruccin.
En la etapa de reset tambin
 Se carga el vector de interrupcin correspondiente, segn el tipo de
reset.
 La RAM y los registros de entrada/salida se colocan en sus posiciones
por defecto.
 Algunos perifricos internos se configuran a valores por defecto, otros se
quedan como estn.
Existen 4 causas de reset:
1. Reset de encendido (POR): generado por un circuito interno cuando la
tensin de alimentacin parte de 0 y comienza a subir.
2. Reset externo: cuando se pone a baja el pin .
3. Reset por fallo del reloj: Si el circuito de monitorizacin del reloj est
activo, se genera reset cuando el reloj se ralentiza o detiene. Se fuerza a
baja la lnea para resetear los perifricos externos.
4. Reset por temporizador de ``computador operando con propiedad''
(COP): el COP es un temporizador que est corriendo continuamente, si
se llega al final de su cuenta el procesador se resetea.

3.4 Memoria de Programa y memoria de datos.


En la arquitectura tradicional de computadoras y microprocesadores la
unidad central de proceso (CPU), est conectada a una memoria nica que
contiene las instrucciones del programa que fueron desde el inicio cargados por
la BIOS y los datos y que estn enlazadas por el mismo bus.
La arquitectura conocida como Harvard, consiste simplemente en un esquema
en el que el CPU esta conectado a dos memorias a travs de dos buses
independientes y no necesariamente debe de tener el mismo ancho. Una de las
memorias contiene solamente las instrucciones del programa (Memoria de
Programa) y la otra almacena los datos (Memoria de Datos).
Memoria de programa:
El microprocesador necesita de un programa (software) que este almacenado
en una memoria de valor fijo (no voltil) como las memorias ROM o EPROM. Esta
memoria es la BIOS de la computadora.
Adicionalmente existen en esta memoria datos especficos, datos invariables
que no pueden ser modificados ya que de hacerlo se corre el riesgo de daar el
equipo y nunca volver a funcionar.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 37 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Esta memoria se direcciona principalmente usando el registro de 16 bits


llamado Data Pointer que no es ms que un puntero de partida. Esta memoria es
de tamao reducido comparada con la memoria de datos.
Memoria de datos:
Una memoria de escritura/lectura (RAM) es necesaria para almacenar datos
variables, como por ejemplo valores de clculo y valores de seal. Es el caso de la
memoria RAM la cual necesita un abastecimiento continuo de corriente. Al
desconectar la unidad de control por el interruptor de encendido, esta memoria
pierde todos los datos almacenados (memoria voltil). Los tamaos de estas
memorias en la actualidad es de unos 4 Gigas para PCs de escritorio.

3.5 Distribucin de registros.


Los registros son el espacio donde se almacenan temporalmente los datos con
lo que en cada momento est trabajando la ALU, adems de almacenar tambin
las propias operaciones que la ALU est ejecutando en dicho momento.
Cuando se habla de un procesador de 32 bits, o una arquitectura de 64
bits, de lo que se est hablando es del tamao de los registros de ese procesador.
Los registros de cada modelo de CPU tendrn un determinado tamao: 32 bits o
64 bits es lo ms normal. Fjate que este tamao es realmente pequeo: los
registros slo sern capaces de alojar en cada momento lo realmente
imprescindible: todo lo dems que no sea til permanecer siempre en la RAM, a
la espera de ser requerido por la ALU.
Si lo piensas un poco, vers que cuanto ms grandes sean los registros mejor,
ya que cabrn ms datos a la vez en el CPU y la ALU podr trabajar con ms
informacin de golpe, con lo que en conjunto todo ir ms rpido: cuantos ms
datos se puedan procesar de una vez, menos se dejarn para despus, verdad?.
Por eso la evolucin de los microprocesadores viene marcada, entre otras cosas,
por el tamao de sus registros: de pasar de las primeras CPU de 8 bits hemos
pasado en la actualidad a CPUs de 128 bits o incluso 256 bits. Es posible que te
extrae que los microprocesadores que incorporan las tarjetas grficas tengan un
tamao de registros siempre mayor al de la CPU central del ordenador: esto es
debido a que los primeros tienen un mayor volumen de procesamiento por
segundo; no obstante, estos dos tipos de microprocesadores no son comparables,
ya que ni su arquitectura interna ni su funcionalidad son parecidos y por tanto el
rendimiento de ambos no es comparable en el mismo mbito.
Aun cuando hemos visto a los largo del capitulo 1 y 2 varios de los registros
que integran a un procesador pretendo volver a tocar este tema en este capitulo
con el fin no solo de garantizar el conocimiento, sino adems de que usted
conozca la forma en la cual estn distribuidos a lo largo del procesador.
Los registros se dividen en:
 Registros de segmento
 Registros de apuntadores de instrucciones
 Registros apuntadores
 Registros de propsitos generales
 Registro ndice
 Registro de bandera.
ING JUAN ALBERTO VAZQUEZ G.
Pgina 38 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Registros de segmento.
Un registro de segmento se utiliza para alinear en un limite de prrafo o dicho
de otra forma codifica la direccin de inicio de cada segmento y su direccin en
un registro de segmento supone cuatro bits 0 a su derecha.
Un registro de segmento tiene 16 bits de longitud y facilita un rea de
memoria para direccionamientos conocidos como el segmento actual. Los
registros de segmento son:
 Registro CS
 Registro DS
 Registro SS
 Registro ES
 Registro FS y GS
Registro CS.
El DOS almacena la direccin inicial del segmento de cdigo de un programa
en el registro CS. Esta direccin de segmento, ms un valor de desplazamiento en
el registro de apuntado de instruccin (IP), indica la direccin de una instruccin
que es buscada para s ejecucin. Para propsito de programacin normal, no se
necesita referenciar el registro CS.
Registro DS.
La direccin inicial de un segmento de datos de programa es almacenada en el
registro DS. En trminos sencillos, esta direccin, ms un valor de
desplazamiento en una instruccin, genera una referencia a la localidad de un
bytes especifico en el segmento de datos.
Registro SS.
El registro SS permite la colocacin en memoria de una pila, para
almacenamiento temporal de direcciones y datos. El DOS almacena la direccin
de inicio del segmento de pila de un programa en el registro SS. Esta direccin de
segmento, ms un valor de desplazamiento en el registro del apuntador de la pila
(SP), indica la palabra actual en la pila que est siendo direccionada. Para
propsitos de programacin normal, no se necesita referenciar el registro SS.
Registro ES.
Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan
el registro esta 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
direccin apropiada.
Registros FS y GS.
Son registros extra de segmento en los procesadores 80386y posteriores a
estos procesadores.
Registro Apuntador de instrucciones. (IP).
El registro apuntador de instrucciones (IP) de 16 bits contiene el
desplazamiento de direccin de la siguiente instruccin que se ejecuta.
El registro IP esta asociado con el registro CS en el sentido de que el IP indica
la instruccin actual dentro del segmento de cdigo que se esta ejecutando
actualmente.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 39 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Registros apuntadores.
Los registros apuntadores estn asociados con el registro SS y permiten al
procesador accesar datos en el segmento de pila los registros apuntadores son
dos:
Registro SP.
El apuntador de pila IP 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.
Registro BP.
El registro BP de 16 bits facilita la referencia de parmetros, los cuales son
datos y direcciones transmitidos.
Registros de propsitos generales.
Los registros de propsitos generales AX, BX, CX y DX son los caballos de
batalla o las herramientas del sistema. Son los 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), y usted puede referirse a cualquier parte por si nombre.
Las instrucciones siguientes mueven ceros a los registros CX, CH y CL
respectivamente.
Mov CX, 00
Mov CH, 00
Mov CL, 00
Los procesadores 80386 y posteriores permiten el uso de todos registros de
propsito general, ms versiones de 32 bits; EAX, EBX y EDCX.
Registros AX.
El registro AX, el acumulador principal, es utilizado para operaciones que
implican entrada/salida y la mayor parte de la aritmtica. Por ejemplo, las
instrucciones para multiplicar, dividir y traducir suponen el uso del AX.
Tambin, algunas operaciones generan cdigo ms eficientes si se refiere al AX
en lugar de los otros registros.
Registro BX.
El BX es conocido como el registro base ya que es el nico registro de
propsitos generales que pueden ser unos ndices para direccionamiento
indexado. Tambin es comn emplear al BX para clculos.
Registro CX.
El CX es conocido como el registro contador. Puede contener un valor para
controlar el nmero de veces que un ciclo se repite o un valor para corrimiento de
bits, hacia la derecha o hacia la izquierda. El CX tambin es usado para muchos
clculos.
Registro DX.
El DX es conocido como el registro de datos. Algunas operaciones de
entrada/salida requieren su uso, y las operaciones de multiplicacin y divisin
con cifras grandes suponen al DX y al AX trabajando juntos. Puede usar los
registros de propsitos para suma y resta de cifras de 8, 16, 32 bits.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 40 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Registro ndice.
Los registros SI y DI estn disponibles para direccionamientos indexados y
para sumas y restas. Que son las operaciones de punta.
Registro SI.
El registro ndice de 16 bits es requerido por algunas operaciones con cadenas
de caracteres. Los procesadores 80386 y posteriores permiten el uso de un
registro ampliado a 32 bits, el ESI.
Registro DI.
El registro ndice destino tambin es requerido por algunas operaciones con
cadenas de caracteres. Los procesadores 80386 y posteriores permiten el uso de
un registro ampliado a 32 bits, el EDI.
Registro de bandera.
Los registros de banderas sirven parar indicar el estado actual de la maquina
y el resultado del procesamiento, Cuando algunas instrucciones piden
comparaciones o clculos aritmticos cambian el estado de las banderas.
Las banderas ms comunes son las siguientes:
 OF (Over flow flag, desbordamiento).
Indica el desbordamiento de un bit de orden alto (mas a la izquierda) despus
de una operacin aritmtica.
 DF (Direction flag, Direccion).
Designa la direccin hacia la izquierda o hacia la derecha para mover o
comparar cadenas de caracteres.
 IF (Interruption flag, Interrupcion).
Indica que una interrupcin externa, como la entrada desde el teclado sea
procesada o ignorada.
 TF (Trap flag, Trampa).
Examina el efecto de una instruccin sobre los registros y la memoria. Los
programas depuradores como DEBUG, activan esta bandera de manera que
pueda avanzar en la ejecucin de una sola interrupcin a un tiempo.
 SF (Sign flag, Signo).
Contiene el signo resultante de una operacin aritmtica (0=positivo y 1=
negativo).
 ZF (Zero flag, Zero).
Indica el resultado de una operacin aritmtica o de comparacin (0=
resultado diferente de cero y 1=resultado igual a cero).
 AF (Auxiliary carry flag, Acarreo auxiliar).
Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmtica
especializada.
 PF (Parity flag, Paridad).
Indica paridad par o impar de una operacin en datos de ocho bits de bajo
orden (mas a la derecha).
 CF (Carry flag, Acarreo).
Contiene el acarreo de orden ms alto (mas a la izquierda) despus de una
operacin aritmtica; tambin lleva el contenido del ultimo bit en una operacin
de corrimiento o rotacin.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 41 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

3.6 Vectores de interrupcin.

Cada clase de dispositivo (discos duros, discos flexibles, reloj, terminal) tiene
asociado una zona de memoria que se llama vector de interrupcin, la cual
contiene la direccin del procedimiento de servicio de la interrupcin. Cuando se
produce una interrupcin, el contador de programa y la palabra de estado del
proceso actual en ejecucin son enviados a la pila por el hardware de la
interrupcin. Entonces, la mquina salta a la direccin indicada en el vector de
interrupcin correspondiente.
La tabla de vectores de interrupcin IDT ("Interrupt Description Table") del PC
es una zona de 1024 bytes en la memoria baja, que contiene un mximo de 256
vectores (punteros de 4 bytes) a los programas que atienden las interrupciones.
La tabla de vectores de interrupcin del PC tiene posiciones que son estndar,
esto significa que algunos nmeros de interrupcin corresponden a un mismo
servicio en todas las mquinas. En la tabla adjunta se han sealado algunos de
estos servicios, indicando el nmero de interrupcin, la direccin del vector y el
uso de la ISR correspondiente.
Numero Direccin Uso
0 0000h Cuando se realiza una divisin por cero, el procesador genera una excepcin que
tiene este nmero.
1 0004h Se utiliza para ejecutar programas paso a paso (depuradores).
2 0008h Generado cuando se produce una interrupcin no enmascarable NMI.
5 0014h Servicio de impresin del contenido de la pantalla. La invocacin de este servicio
provoca el mismo resultado que la combinacin de teclas SHIFT+CTRL (que
utilizan este servicio).
8 0020h El reloj del sistema genera interrupciones con este nmero con una frecuencia de
18.21 veces por segundo aproximadamente (se conocen como "ticks"). Este
servicio incrementa en una unidad la cuenta del reloj (almacenada en la memoria
de datos de la ROM-BIOS). Del valor de este contador, que es puesto a cero cada
24 horas, se basan los servicios de hora del sistema.
16 0040h Servicios de video. Contiene 16 subservicios tales como ajuste del tamao y
desplazamiento del cursor, escritura y lectura de un carcter o de un pxel,
desplazamiento vertical ("Scroll"), ajuste y lectura del modo de video, etc.
17 0044h Servicio de componentes del equipo. Proporciona una palabra de 16 bits que
contiene informacin bsica sobre los componentes instalados en el ordenador.
18 0048h Este servicio informa del tamao de la memoria instalada en el sistema.
19 004Ch La ROM BIOS proporciona seis servicios estndar de disquete: Reinicializacin;
obtencin del estado; lectura; escritura y verificacin de sectores, y formateo de
pistas.
20 0050h En esta interrupcin se agrupan diversos subservicios de comunicaciones para
puertos serie proporcionados por la BIOS: Inicializar los parmetros de inicio del
puerto; enviar un carcter; recibir un carcter; obtener el estado del puerto.
21 0054h Incluye los servicios de cassette. En realidad es una reliquia prehistrica, ya que
el PC tena posibilidad de una casetera opcional.
22 0058h Incluye los servicios de teclado que incluye tres subservicios: Lectura de un
carcter del buffer del teclado; Informar si hay algn carcter en el buffer;
seleccin maysculas/minsculas (estado del "Shift").
23 005Ch Incluye tres subservicios para impresora: Enviar un carcter al puerto paralelo;
Inicializar el puerto; obtener un informe esquemtico del estado de la impresora.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 42 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

24 0060h Esta es otra reliquia prehistrica. Se trata del cargador del intrprete BASIC;
este lenguaje que estaba presente en la ROM de los primeros PC's.
25 0064h Este servicio es la rutina de puesta en marcha ("bootstrap") del equipo. El
resultado de su activacin es equivalente a su puesta en marcha. Se denomina
reinicio en caliente, y es parecido al efecto que se consigue por el teclado con la
combinacin CTRL+ALT+DEL.
26 0068h Este servicio suministra la hora del sistema mediante la inspeccin del contador
de ticks de reloj pasados desde media noche. Incluye dos subservicios, que
permiten respectivamente leer y escribir el valor del contador de ticks.
Nota: La librera estndar C++ dispone de una funcin clock() que devuelve
el valor del tiempo transcurrido desde el inicio del programa. Esta funcin
se basa en la inspeccin del contador de ticks.

ACTIVIDAD:
Compare el procesador 8085 que fue analizado a lo largo de este capitulo con el
procesador 8004, 8008 y 8080..

EVALUACION:
 Que diferencia existe entre memoria de datos y memoria de programa.?
 Que pines del procesador 8085 son utilizados para el reloj?
 Que se entiende por reset y cuando se utiliza?
 A que se le llama vector de interrupcin?
 Mencione por lo menos las funciones de 10 registros.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 43 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Capitulo IV
ESCRITURA DE PROGRAMAS

4.1 Compiladores, ensambladores.


4.2 Conceptos de programacin.
4.3 Conjunto de instrucciones.
4.4 Modos de direccionamiento.
4.5 Condicionales
Condicionales y comparadores.
4.6 Operaciones lgicas.
4.7 Operaciones matemticas.
4.8 Subrutinas.
4.9 Interrupciones.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 44 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INTRODUCCION:

Una definicin antigua de una computadora es: una mquina o aparato


electrnico capaz de ejecutar operaciones repetitivas muy complejas a altas
velocidades.
En el uso diario, datos e informacin son esencialmente sinnimos. Sin
embargo, los informticos sueles hacer una diferencia; datos se refiere a la
representacin de algn hecho, concepto o entidad real (los datos pueden
tomar diferentes formas; por ejemplos, palabra escritas o habladas, nmeros
y dibujos); informacin implica datos procesados y organizados.
Un sistema en general se define como conjunto de componentes
conectados interactivos, que tienen un propsito y una unidad total.
Sistemas de procesamiento de informacin es un sistema que transforma
datos brutos en informacin organizada, significativa y til.
El conjunto de instrucciones que especifican la secuencia de operaciones
a realizar, en orden, para resolver un sistema especfico o clase de
problemas, se denomina algoritmo. En otras palabras, un algoritmo es una
frmula para la resolucin de problemas.
El procesador debe ser capaz de interpretar el algoritmo, lo que significa
Comprender las instrucciones de cada paso
Realizar las operaciones correspondientes

OBJETIVO:

El alumno comprender y aplicar los conceptos principales de


programacin empleados en los microprocesadores.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 45 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

ESCRITURA DE PROGRAMAS
El software para computadoras puede clasificarse en general en dos clases: los
programas de sistema, que controlan la operacin de la computadora en s y los
programas de aplicacin, los cuales resuelven problemas para sus usuarios.
El programa fundamental es el sistema operativo, que controla todos los
recursos de la computadora y proporciona la base sobre la cual pueden escribirse
los programas de aplicacin.
Un sistema de computacin moderno consta de uno o ms procesadores,
cierta memoria principal (a menudo conocida como "memoria central"), relojes,
terminales, discos, interfaces en una red y otros dispositivos de entrada/salida.
La escritura de programas que tengan un registro de todos estos componentes
y los utilice en forma correcta, ya no digamos en forma ptima, es una labor en
extremo difcil. Si cada programador tuviera que preocuparse por la forma de
funcionamiento de las unidades de disco y con las docenas de cosas que podran
ir mal al leer un bloque de un disco, es poco probable que pudieran escribirse
muchos programas.
Hace muchos aos, qued claro que deba determinarse una forma de
proteger a los programadores de la complejidad del hardware. La forma en que
esto ha evolucionado de manera gradual es colocando un nivel de software por
arriba del simple hardware, con el fin de controlar todas las partes del sistema y
presentar al usuario una interfaz o mquina virtual que facilite la comprensin
del programa.

4.1 Compiladores, ensambladores.


Comenzaremos nuestro tema abordando algunas definiciones que en este
momento sern de gran utilidad.
Llamaremos software a las instrucciones electrnicas que van a indicar a la
PC que es lo que tiene que hacer. Tambin se puede decir que son los programas
usados para dirigir las funciones de un sistema de computacin o un hardware.
El termino ensamblador hace referencia a un programa de computadora que
produce un programa en lenguaje de maquina el cual puede ser ejecutado
directamente por la computadora.
Lo hace a partir de seis pasos que a continuacin se enumeran.
1. Convertir los cdigos a su cdigo equivalente en lenguaje de mquina
2. Convertir los operandos simblicos (las etiquetas o variables) en las
direcciones correspondientes de los operandos
3. Construir las instrucciones en lenguaje de mquina en el formato
apropiado
4. Convertir las constantes definidas en el programa en su verdadera
representacin
5. Escribir el cdigo en lenguaje de ensamblador con el cdigo en lenguaje
de mquina correspondiente
6. Procesar las directrices al ensamblador (las directrices son instrucciones
o comandos dirigidos al ensamblador, que ste procesa y ejecuta al
hallarlos en el programa en lenguaje de ensamblador; estas directrices

ING JUAN ALBERTO VAZQUEZ G.


Pgina 46 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

no se traducen a lenguaje de mquina, si no que el ensamblador ejecuta


alguna accin, como reservar memoria para variables, entre otras)
Aunque todos los ensambladores realizan bsicamente las mismas tareas,
podemos clasificarlos de acuerdo a caractersticas.
Ensambladores Cruzados (Cross-Assembler).
Se denominan as los ensambladores que se utilizan en una computadora que
posee un procesador diferente al que tendrn las computadoras donde va a
ejecutarse el programa objeto producido.
El empleo de este tipo de traductores permite aprovechar el soporte de medios
fsicos (discos, impresoras, pantallas, etc.), y de programacin que ofrecen las
mquinas potentes para desarrollar programas que luego los van a ejecutar
sistemas muy especializados en determinados tipos de tareas.
Ensambladores Residentes.
Son aquellos que permanecen en la memoria principal de la computadora y
cargan, para su ejecucin, al programa objeto producido. Este tipo de
ensamblador tiene la ventaja de que se puede comprobar inmediatamente el
programa sin necesidad de transportarlo de un lugar a otro, como se haca en
cross-assembler, y sin necesidad de programas simuladores.
Sin embargo, puede presentar problemas de espacio de memoria, ya que el
traductor ocupa espacio que no puede ser utilizado por el programador.
Asimismo, tambin ocupar memoria el programa fuente y el programa objeto.
Esto obliga a tener un espacio de memoria relativamente amplio. Es el
indicado para desarrollos de pequeos sistemas de control empleando
microprocesadores.
La ventaja de estos ensambladores es que permiten ejecutar inmediatamente
el programa; la desventaja es que deben mantenerse en la memoria principal
tanto el ensamblador como el programa fuente y el programa objeto.
Macroensambladores.
Son ensambladores que permiten el uso de macroinstrucciones (macros).
Debido a su potencia, normalmente son programas robustos que no
permanecen en memoria una vez generado el programa objeto. Puede variar la
complejidad de los mismos, dependiendo de las posibilidades de definicin y
manipulacin de las macroinstrucciones, pero normalmente son programas
bastantes complejos, por lo que suelen ser ensambladores residentes.
Microensambladores.
Generalmente, los procesadores utilizados en las computadoras tienen un
repertorio fijo de instrucciones, es decir, que el intrprete de las mismas
interpretaba de igual forma un determinado cdigo de operacin.
El programa que indica al intrprete de instrucciones de la UCP cmo debe
actuar se denomina microprograma. El programa que ayuda a realizar este
microprograma se llama microensamblador. Existen procesadores que permiten
la modificacin de sus microprogramas, para lo cual se utilizan
microensambladores.
Ensambladores de una fase.
Estos ensambladores leen una lnea del programa fuente y la traducen
directamente para producir una instruccin en lenguaje mquina o la ejecuta si
ING JUAN ALBERTO VAZQUEZ G.
Pgina 47 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

se trata de una pseudoinstruccin o directiva. Tambin va construyendo la tabla


de smbolos a medida que van apareciendo las definiciones de variables,
etiquetas, etc.
Debido a su forma de traduccin, estos ensambladores obligan a definir los
smbolos antes de ser empleados para que, cuando aparezca una referencia a un
determinado smbolo en una instruccin, se conozca la direccin de dicho
smbolo y se pueda traducir de forma correcta. Estos ensambladores son
sencillos, baratos y ocupan poco espacio.
Ensambladores de dos fases.
Los ensambladores de dos fases se denominan as debido a que realizan la
traduccin en dos etapas. En la primera fase, leen el programa fuente y
construyen una tabla de smbolos; de esta manera, en la segunda fase, vuelven a
leer el programa fuente y pueden ir traduciendo totalmente, puesto que conocen
la totalidad de los smbolos utilizados y las posiciones que se les ha asignado.
Estos ensambladores son los ms utilizados en la actualidad.

Un compilador es un programa que lee un programa escrito en un lenguaje


fuente y lo traduce a un programa equivalente en otro lenguaje, el lenguaje
objeto. Como parte importante de este proceso de traduccin, el compilador
informa al usuario de la presencia de errores en el programa fuente.
En nuestro caso estaremos utilizando los compiladores con el fin de obtener
un lenguaje que la computadora entienda a partir de instrucciones que
entendamos nosotros.

4.2 Conceptos de programacin.


Se denomina lenguaje mquina a la serie de datos que la parte fsica de la
computadora o hardware, es capaz de interpretar.
Una computadora digital o, mejor dicho, su parte fsica, slo distingue datos
de tipo binario, es decir, constituidos por dos nicos valores a los que se
denomina valor 0 y valor 1 y que fsicamente, se materializan con tensiones
comprendidas entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente. Para
representar datos que contengan una informacin se utilizan una serie de unos y
ceros cuyo conjunto indica dicha informacin.
La informacin que hace que el hardware de la computadora realice una
determinada actividad de llama instruccin. Por consiguiente una instruccin es
un conjunto de unos y ceros. Las instrucciones as formadas equivalen a
acciones elementales de la mquina, por lo que al conjunto de dichas
instrucciones que son interpretadas directamente por la mquina se denomina
lenguaje mquina.
El lenguaje mquina fue el primero que empleo el hombre para la
programacin de las primeras computadoras. Una instruccin en lenguaje
mquina puede representarse de la siguiente forma:
011011001010010011110110
Esta secuencia es fcilmente ejecutada por la computadora, pero es de difcil
interpretacin, siendo aun ms difcil la interpretacin de un programa (conjunto
de instrucciones) escrito de esta forma. Esta dificultad hace que los errores sean
ING JUAN ALBERTO VAZQUEZ G.
Pgina 48 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

frecuentes y la correccin de los mismos costosa, cuando no imposible, al igual


que la verificacin y modificacin de los programas.
La anterior secuencia de dgitos binarios (bits) puede indicar a la computadora
que:
Traslade el contenido de la posicin de memoria X a la posicin de memoria Y
Si lo vemos escrito de esta forma, lo entenderemos fcilmente, ya que est en
nuestro lenguaje natural, pero la mquina elemental ser incapaz de entender
nada. Vemos, pues, que la forma de indicar a la mquina lo que debe hacer es
totalmente diferente de la indicar a un ser humano lo mismo, por lo que deben
emplearse sistemas de traduccin de una forma a otra.
Ya se ha dicho que en un principio el programador empleaba directamente el
lenguaje mquina. En este caso el traductor era el programador; pero vimos
tambin los problemas que esto causaba.
Con la prctica en el manejo de la mquina se cay en la cuenta de que se
podra utilizar la propia mquina para ayudar en la traduccin de estos
programas. Es decir, que si a una mquina elemental se le dotaba de un
programa, tambin elemental, que tradujera un nmero determinado de
caracteres de caracteres alfabticos en una secuencia de unos y ceros, se podra
escribir un programa constituido por una secuencia de grupos de caracteres
alfabticos, en la que cada uno de los grupos indicara una accin a realizar por
el ordenador y, una vez escrito el programa, sera la propia mquina la que
pasara los grupos de caracteres a bits.
Las ventajas de esto son evidentes, ya que para el hombre resulta ms
fcil manipular grupos de caracteres y la traduccin se hara de manera
automtica. Por ejemplo, se podra escribir:
TRASLADAR 11010110, 00011101
Esto indicara que el contenido de la posicin 11010110 haba que pasarlo a
la posicin 00011101 si se sabe que al grupo alfabtico TRASLADAR le
corresponde la secuencia de bits 11110101. La mquina traducira la anterior
instruccin como:
11110101 11010110 00011101
Al grupo alfabtico se le denomina mnemotcnico, y existir un mnemotcnico
por cada instruccin. Se le da este nombre porque sirve para recordar con mayor
facilidad el conjunto de instrucciones de una determinada mquina.
De esta forma aparecieron los lenguajes ensambladores (Assembler, en
ingls). Poco a poco, con el avance de la programacin (Software), estas primeras
y sencillas ayudas se fueron haciendo ms complejas, permitiendo que, adems
de los mnemotcnicos correspondientes a la operacin a realizar, se pudieran
emplear otros para indicar, por ejemplo, los operandos. La anterior instruccin se
podra escribir de la siguiente forma:
TRASLADAR POS-A POS-B
Que nos resulta de ms fcil comprensin.
Tambin se introdujo la posibilidad de indicar a la computadora la direccin
de un salto en la secuencia de ejecucin de un programa mediante la utilizacin
de etiquetas.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 49 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

A los programas que permiten pasar del programa escrito de esta manera
(programa fuente, en ensamblador) al lenguaje mquina tambin se les denomina
normalmente ensambladores. Estos traductores, como ya se ha dicho, se fueron
complicando cada vez ms para que la labor del programador fuera ms fcil,
incluyendo los denominados directivos del ensamblador, que son rdenes o
informaciones que el programador da al traductor, no instrucciones de lenguaje
mquina.
Aun con todas estas sofisticaciones y ayudas, el programador de lenguaje
ensamblador debe conocer perfectamente el sistema fsico (Hardware) de la
mquina con que trabaja, pues aunque emplee mnemotcnicos, etiquetas, etc.,
stas sirven para indicar una posicin de memoria determinada, un registro o
cualquier otra parte de la mquina.
Por eso se dice que el lenguaje ensamblador es un lenguaje de bajo nivel, es
decir, ligado con el hard concreto de una determinada mquina. Aqu radica la
diferencia importante con los lenguajes ms complejos, llamados de alto nivel,
como el Basic, C++, etc., ya que en stos el programador no tiene porque
reconocer el hard de la mquina. Trabaja con variables, constantes e
instrucciones simblicas, y es el traductor quien las transforma en las
direcciones apropiadas.

4.3 Conjunto de instrucciones.


La mayora de las instrucciones requieren algunos operandos o expresiones
para trabajar, lo cual es vlido tambin para las directivas. Los operandos
representan valores, registros o localidades de memoria a ser accesadas de
alguna manera. Las expresiones combinan operandos y operadores aritmticos y
lgicos para calcular en valor o la direccin a acceder. AL FINAL DE LA
ANTOLOGIA SE HA AGREGADO UN APENDICE CON LAS INSTRUCCIONES DE
ALGUNOS PROCESADORES QUE DEBEN DE SER CONSULTADAS PARA LA
COMPRESION DE ESTE CAPITULO.
Los operandos permitidos se enlistan a continuacin:
Constantes.- Pueden ser nmeros, cadenas o expresiones que representan un
valor fijo. Por ejemplo, para cargar un registro con valor constante usaramos la
instruccin MOV indicando el registro y el valor que cargaramos dicho registro.
mov ax,9
mov al,c
mov bx,65535/3
mov cx,count
count slo sera vlido si este fue declarado con la directiva EQU.
Directos.- Aqu se debe especificar la direccin de memoria a accesar en la
forma segmento: offset(entero que indica la distancia).
mov ax,ss:0031h
mov al,data:0
mov bx,DGROUP:block

ING JUAN ALBERTO VAZQUEZ G.


Pgina 50 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Relocalizables.-Por medio de un smbolo asociado a una direccin de


memoria y que puede ser usado tambin para llamadas.
mov ax, value
call main
mov al,OFFSET dgroup:tabla
mov bx, count
count slo ser vlido si fue declarado con la directiva DW.
Contador de localizacin.- Usado para indicar la actual localizacin en el
actual segmento durante el ensamblado.
Registros.- Cuando se hace referencia a cualquiera de los registros de
propsito general, apuntadores, ndices, o de segmento.
Basados.- Un operador basado representa una direccin de memoria relativa a
uno de los registros de base (BP o BX). Su sintaxis es:
desplazamiento[BP]
desplazamiento[BX]
[desplazamiento][BP]
[BP+desplazamiento]
[BP].desplazamiento
[BP]+desplazamiento
en cada caso la direccin efectiva es la suma del desplazamiento y el contenido
del registro.
mov ax,[BP]
mov al,[bx]
mov bx,12[bx]
mov bx,fred[bp]
Indexado.- Un operador indexado representa una direccin de memoria
relativa a uno de los registros ndice (SI o DI). Su sintaxis es:
desplazamiento[DI]
desplazamiento[SI]
[desplazamiento][DI]
[DI+desplazamiento]
[DI].desplazamiento
[DI]+desplazamiento
en cada caso la direccin efectiva es la suma del desplazamiento y el contenido
del registro.

mov ax,[si]
mov al,[di]
mov bx,12[di]
mov bx,fred[si]
Base-indexados.- Un operador base-indexado representa una direccin de
memoria relativa a la combinacin de los registros de base e ndice. Su sintaxis
es:
desplazamiento[BP][SI]
desplazamiento[BX][DI]
desplazamiento[BX][SI]
desplazamiento[BP][DI]
ING JUAN ALBERTO VAZQUEZ G.
Pgina 51 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.
[desplazamiento][BP][DI]
[BP+DI+desplazamiento]
[BP+DI].desplazamiento
[DI]+desplazamiento+[BP]
en cada caso la direccin efectiva es la suma del desplazamiento y el contenido
del registro.
mov ax,[BP][si]
mov al,[bx+di]
mov bx,12[bp+di]
mov bx,fred[bx][si]
Estructuras.- Su sintaxis es variable.campo. variable es el nombre con que se
declar la estructura, y campo es el nombre del campo dentro de la estructura.
date STRUC
mes DW ?
dia DW ?
aa DW ?
date ENDS
actual date ja,01,84
mov ax,actual.dia
mov actual.aa, 85
Operadores y expresiones.- Se cuenta con los siguientes operadores:
-aritmticos
expresin1 * expresin2
expresin1 / expresin2
expresin1 MOD expresin2
expresin1 + expresin2
expresin1 - expresin2
+ expresin
- expresin
-de corrimiento
expresin1 SHR contador
expresin1 SHL contador
-relacionales
expresin1 EQ expresin2
expresin1 NE expresin2
expresin1 LT expresin2
expresin1 LE expresin2
expresin1 GT expresin2
expresin1 GE expresin2
- de bit
NOT expresin
expresin1 AND expresin2
expresin1 OR expresin2
expresin1 XOR expresin2

ING JUAN ALBERTO VAZQUEZ G.


Pgina 52 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

-de ndice
[expresin1] [expresin2]
ejemplos:
mov al, string[3]
mov string[last],al
mov cx,dgroup:[1] ; igual a mov cx,dgroup:1
-de apuntador
tipo PTR expresin
tipo puede ser BYTE 1, WORD 2, DWORD 4, QWORD 8,
TBYTE 10, NEAR 0FFFFh, FAR 0FFFEh. Ejemplos:
call FAR PTR subrout3
mov BYTE ptr [array], 1
add al, BYTE ptr [full_word]
-de nombre de campo
estructura.campo
ejemplos:
inc month.day
mov time.min,0
mov [bx].dest

-de propsito especial.


OFFSET expresion.- Regresa el desplazamiento del operando
mov bx, OFFSET dgroup:array
mov bx, offset subrout3
SHORT etiqueta.- Para un salto de menos de 128 bytes
jmp SHORT loop
LENGTH variable.- Regresa el nmero de elementos de variable segn
su tipo
mov cx,length array
SIZE variable.- Regresa el tamao en bytes alojados para variable
mov cx,size array
SEG expresin.- Regresa el valor del segmento para expresin
mov ax, SEG saludo

4.4 Modos de direccionamiento.


direccionamiento.
El campo de operacin de una instruccin especifica la operacin que se va a
ejecutar. Esta operacin debe realizarse sobre algunos datos almacenados en
registros de computadora o en palabras de memoria. La manera en que eligen los
operandos durante la ejecucin del programa depende del modo de
direccionamiento de la instruccin. El modo de direccionamiento especifica una
regla para interpretar o modificar el campo de direccin de la instruccin antes
de que se haga la referencia real al operando. Las computadoras utilizan tcnicas
de modo de direccionamiento para acomodar una o las dos siguientes
consideraciones:

ING JUAN ALBERTO VAZQUEZ G.


Pgina 53 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

 Proporcionar al usuario versatilidad de programacin al ofrecer


facilidades como apuntadores a memoria, contadores para control de
ciclo, indexacin de datos y reubicacin de datos.
 Reducir la cantidad de bits en el campo de direccionamiento de la
instruccin.
La disponibilidad de los modos de direccionamiento proporciona al
programador con experiencia en lenguaje ensamblador la flexibilidad para
escribir programas ms eficientes en relacin con la cantidad de instrucciones y
el tiempo de ejecucin.
Para comprender los diferentes modos de direccionamiento que se
presentaran en esta seccin, es imperativo entender el ciclo de operacin bsico
de la computadora. La unidad de control de una computadora esta diseada para
recorrer un ciclo de instrucciones que se divide en tres fases principales:
 Bsqueda de la instruccin de la memoria.
 Decodificar la instruccin.
 Ejecutar la instruccin.
Hay un registro en la computadora llamado contador de programa o PC, que
lleva un registro de las instrucciones del programa almacenado en la memoria.
PC contiene la direccin de la siguiente instruccin que se va a ejecutar y se
incrementa cada vez que se recupera una instruccin de la memoria. La
decodificacin realizada en el paso 2 determina la operacin que se va a ejecutar,
el modo de direccionamiento de la instruccin y la posicin de los operandos.
Despus la computadora ejecuta la instruccin y regresa al paso 1 para hacer
la bsqueda de la siguiente instruccin en secuencia.
En algunas computadoras el modo de direccionamiento de la instruccin se
especifica con un cdigo binario distinto, como se hace con el cdigo de
operacin. Otras computadoras utilizan un cdigo binario nico que representa
la operacin y el modo de la instruccin. Pueden definirse instrucciones con
diversos modos de direccionamiento y, en ocasiones, se combinan dos o ms
modos de direccionamiento en una instruccin.
Aunque la mayora de los modos de direccionamiento modifican el campo de
direccin de la instruccin, hay dos modos que no necesitan el campo de
direccin. Son los modos implcito e inmediato.
MODO IMPLICITO.
En este modo se especifican los operandos en forma implcita en la definicin
de la instruccin. Por ejemplo, la instruccin "complementar acumulador" es una
instruccin de modo implcito porque el operando en el registro de acumulador
esta implcito en la definicin de la instruccin. De hecho todas las instrucciones
de referencia a registro que utilizan un acumulador son instrucciones de modo
implcito.
Las instrucciones de direccin cero en una computadora organizada con pila
son instrucciones de modo implcito porque esta implcito que los operandos
estn en la parte superior de la pila.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 54 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

MODO INMEDIATO.
En este modo se especifica el operando en la instruccin misma. En otras
palabras, una instruccin de modo inmediato tiene un campo operando, en lugar
de un campo de direccin. Un campo de operando contiene el operando real que
se va a usar junto con la operacin especificada en la instruccin. Las
instrucciones de modo inmediato son tiles para inicializar registros en un valor
constante.
Se menciono antes que el campo de direccin de una instruccin puede
especificar una palabra de memoria o un registro de procesador. Cuando el
campo de direccin especifica un registro de procesador se dice que la
instruccin esta en modo de registro.
MODO DE REGISTRO.
En este modo, los operandos estn en registros que residen dentro de la CPU.
Se selecciona el registro particular de un campo de registro en la instruccin.
Un campo k bits puede especificar cualquiera de 2 a la k registros.
MODO INDIRECTO POR REGISTRO.
En este modo la instruccin especifica un registro en la CPU cuyo contenido
proporciona la direccin del operando en la memoria. En otras palabras, el
registro seleccionado contiene la direccin del operando en lugar del operando
mismo. Antes de utilizar una instruccin de modo indirecto por registro, el
programador debe asegurarse de que la direccin de memoria del operando esta
colocada en el registro del procesador con una instruccin previa. Entonces una
referencia al registro es equivalente a especificar una direccin de memoria. La
ventaja de una instruccin de modo de registro indirecto es que el campo de
direccin de la instruccin utiliza menos bits para seleccionar un registro de los
que necesitara para especificar una direccin de memoria en forma directa.
MODO DE DIRECCIONAMIENTO DIRECTO.
En este modo la direccin efectiva es igual a la parte de direccin de la
instruccin. El operando reside en memoria y su direccin la proporciona en
forma directa el campo de direccin de la instruccin. En una instruccin de tipo
brinco el campo de direccin especifica la direccin de transferencia de control
del programa real.
MODO DE DIRECCIONAMIENTO INDIRECTO.
En este modo, el campo de direccin de la instruccin proporciona la direccin
en que se almacena la direccin efectiva en la memoria. El control recupera la
instruccin de la memoria y utiliza su parte de direccin para accesar la memoria
una vez ms con el fin de leer la direccin efectiva.
Unos cuantos modos de direccionamiento requieren que el campo de direccin
de la instruccin se sume al contenido de un registro especfico en la CPU.
En estos modos la direccin efectiva se obtiene del clculo siguiente:
Direccin efectiva = Parte de la instruccin + El contenido de registro CPU.
El registro de CPU utilizado en el clculo puede ser el contador de programa,
un registro de ndice o un registro base. En cualquier caso tenemos un modo de
direccionamiento diferente que se utiliza para una aplicacin distinta.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 55 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

MODO DE DIRECCIONAMIENTO INDEXADO.


En este modo el contenido de un registro ndice se suma a la parte de
direccin de la instruccin para obtener la direccin efectiva. El registro ndice es
un registro CPU especial que contiene un valor ndice. Un campo de direccin de
la instruccin define la direccin inicial del arreglo de datos en la memoria. Cada
operando del arreglo se almacena en la memoria en relacin con la direccin
inicial.
La distancia entre la direccin inicial y la direccin del operando es el valor del
ndice almacenado en el registro de ndice. Cualquier operando en el arreglo
puede accesarse con la misma instruccin siempre y cuando el registro ndice
contenga el valor de ndice correcto. El registro ndice puede incrementarse para
facilitar el acceso a operandos consecutivos. Ntese que si una instruccin de
tipo ndice no incluye un campo de direccin en su formato, la instruccin se
convierte al modo de operacin de indirecto por registro.
Algunas computadoras dedican un registro de CPU para que funcione
exclusivamente como un registro ndice. De manera implcita este registro
participa cuando se utiliza una instruccin de modo ndice. En las computadoras
con muchos registros de procesador, cualquiera de los registros de la CPU puede
contener el nmero de ndice. En tal caso, el registro debe estar especificado en
forma explcita en un campo de registro dentro del formato de instruccin.
MODO DE DIRECCIONAMIENTO DE REGISTRO BASE.
En este modo, el contenido de un registro base se suma a la parte de direccin
de la instruccin para obtener la direccin efectiva. Esto es similar al modo de
direccionamiento indexado, excepto en que el registro se denomina ahora registro
base, en lugar de registro ndice. La diferencia entre los dos modos esta en la
manera en que se usan ms que en la manera en que se calculan. Se considera
que un registro base contiene una direccin base y que el campo de direccin de
la instruccin proporciona un desplazamiento en relacin con esta direccin
base. El modo de direccionamiento de registro base se utiliza en las
computadoras para facilitar la localizacin de los programas en memoria.

4.5 Condicionales y comparadores.


En programacin, un bucle es un tipo de estructura de control que permite
repetir una o ms sentencias mltiples veces. Los bucles ms generales en los
lenguajes de programacin son WHILE, FOR y REPEAT. Todos los bucles se
ejecutan mientras se cumpla una determinada condicin
IF: Si,. Entonces..
Sirven para que el ensamblador incluya o no las sentencias que vienen a
continuacin, segn se cumpla o no una determinada condicin.
.IF cx == 20
MOVE dx, 20
.ELSE
MOVE dx, 30
.ENDIF
FOR: Desde. hasta.
MOV ax, 0

ING JUAN ALBERTO VAZQUEZ G.


Pgina 56 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.
FOR arg, <1,2,3,4,5,6,7,8,9,10>
ADD ax, arg
ENDM ; Esto lo que hace es sumar cada vez a AX el
valor que
; aparece en la de argumentos.
; ( AX = AX + 1, AX = AX + 2, AX = AX + 3,...)
WHILE: Mientras.
(Segmento de Datos)
buf1 BYTE "Esto es una cadena", '$'
buf2 BYTE DUP (?)
(Segmento de Cdigo)
XOR bx, bx
.WHILE (but1[bx]!= '$')
MOV al, buf1[bx]
MOV buf2[bx], al
INC bx
.ENDW
REPEAT: Repite hasta que.
(Segmento de Datos)
buffer BYTE 100 DUP (0)
(Segmento de Cdigo)
XOR bx, bx
.REPEAT
MOV ah, 01h
INT 21h
MOV buffer[bx], al
INC bx
.UNTIL (al==13) ; En este caso la interrupcin 21h
con la funcin 01h deja en AL la tecla que se ha pulsado
y la mete en "buffer". Si esta es ENTER (13) se sale del
bucle, sino sigue en l.

4.6 Operaciones lgicas.


Dentro de los microprocesadores se implementan operaciones lgicas bit a bit
o registro a registro entre operandos, incluyndose operaciones como AND, OR,
XOR, NOT, desplazamientos izquierda o derecha y rotaciones a izquierda o
derecha. Estas operaciones han sido abarcadas en el Apndice A. Un caso de este
tipo de operacin es la siguiente:
AND AL,$80

ING JUAN ALBERTO VAZQUEZ G.


Pgina 57 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

4.7 Operaciones matemticas.


Las operaciones aritmticas o matemticas bsicas son la suma y la resta,
tanto con acarreo como sin l. A partir de ellas deberemos crearnos nuestras
propias rutinas para multiplicar, dividir, etc.
Suma: ADD (Add)
ADD DESTINO, ORIGEN
ADD A, s
ADD HL, ss
ADD ri, rr
De donde
s: Cualquier registro de 8 bits (A, B, C, D, E, H, L), cualquier valor inmediato
de 8 bits (en el rango 0-255 o -128+127 en complemento a dos), cualquier
direccin de memoria apuntada por HL, y cualquier direccin de memoria
apuntada por un registro ndice con desplazamiento de 8 bits.
ss: Cualquier registro de 16 bits de entre los siguientes: BC, DE, HL, SP.
ri: Uno de los 2 registros ndices (IX o IY).
rr: Cualquier registro de 16 bits de entre los siguientes excepto el mismo
registro ndice origen: BC, DE, HL, IX, IY, SP.
; ADD A, s
ADD A, B ; A = A + B
ADD A, 100 ; A = A + 100
ADD A, [HL] ; A = A + [HL]
ADD A, [IX+10] ; A = A + [IX+10]

; ADD HL, ss
ADD HL, BC ; HL = HL + BC
ADD HL, SP ; HL = HL + SP

; ADD ri, rr
ADD IX, BC ; IX = IX + BC
ADD IY, DE ; IY = IY + DE
ADD IY, IX ; IY = IY + IX
ADD IX, IY ; IX = IX + IY
Resta: SUB (Substract)
En el caso de las restas, slo es posible realizar (de nuevo gracias a la no
ortogonalidad del J.I.) la operacin A=A-origen, donde origen puede ser
cualquier registro de 8 bits, valor inmediato de 8 bits, contenido de la memoria
apuntada por [HL], o contenido de la memoria apuntada por un registro ndice
ms un desplazamiento. El formato de la instruccin SUB no requiere 2
operandos, ya que el registro destino slo puede ser A:
SUB ORIGEN
SUB B ; A = A - B
SUB 100 ; A = A - 100
SUB [HL] ; A = A - [HL]
SUB [IX+10] ; A = A - [IX+10]
Un gran numero de operaciones matemticas son mostradas en el Apndice A.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 58 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

4.8 Subrutinas.
Subrutinas.
Una subrutina es un fragmento de cdigo (o subprograma) que va a ser usado
mltiples veces en el programa. Este cdigo lo escribiremos una sola vez y le
pondremos una etiqueta. Desde el programa principal llamaremos a ste cdigo
por su nombre cada vez que queramos ejecutarlo. A ste fragmento de cdigo se
le llama subrutina. La llamada a subrutina se realiza mediante la instruccin
CALL, y tiene como argumento la direccin de la subrutina (o la etiqueta que le
hayamos puesto). El final de la subrutina se indica mediante la instruccin
RETURN RETLW. La instruccin RETURN simplemente seala el final de la
subrutina y vuelve al programa principal. La instruccin RETLW adems vuelve
con un dato en el registro W.
INIC: LXI H,1000H
MVI B,00H
MVI A, AAH
CALL COMP
MVI A, BBH
CALL COMP
MVI A, CCH
CALL COMP
MVI B, FFH
FIN: HLT

COMP: CMP M
JNZ FIN
INX H
RET
Quiero que observe como en el siguiente programa se manda a traer en tres
ocasiones a la rutina COMP y adems esta rutina COMP cuenta con un valor de
retorno RET.

4.9 Interrupciones.
Las interrupciones se dividen en dos tipos las cuales son: Externas e Internas.
Una interrupcin externa es provocada por un dispositivo externo al
procesador. Las dos lneas que pueden sealar interrupciones externas son la
lnea de interrupcin no enmascarable (NMI) y la lnea de peticin de interrupcin
(INTR).
La lnea NMI reporta la memoria y errores de paridad de E/S. El procesador
siempre acta sobre esta interrupcin, aun si emite una instruccin CLI para
limpiar la bandera de interrupcin en un intento por deshabilitar las
interrupciones externas. La lnea INTR reporta las peticiones desde los
dispositivos externos, en realidad, las interrupciones 05H a la 0FH, para
cronometro, el teclado, los puertos seriales, el disco duro, las unidades de disco
flexibles y los puertos paralelos.
Una interrupcin interna ocurre como resultado de la ejecucin de una
instruccin INT o una operacin de divisin que cause desbordamiento, ejecucin
en modo de un paso o una peticin para una interrupcin externa, tal como E/S

ING JUAN ALBERTO VAZQUEZ G.


Pgina 59 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

de disco. Los programas por lo comn utilizan interrupciones internas, que no


son enmascarables, para accesar los procedimientos del BIOS y del DOS.
El BIOS contiene un extenso conjunto de rutinas de entrada/salida y tablas
que indican el estado de los dispositivos del sistema. El dos y los programas
usuarios pueden solicitar rutinas del BIOS para la comunicacin con los
dispositivos conectados al sistema. El mtodo para realizar la interfaz con el
BIOS es el de las interrupciones de software. A continuacin se listan algunas
interrupciones del BIOS.
INT 00H: Divisin entre cero. Llamada por un intento de dividir entre cero.
Muestra un mensaje y por lo regular se cae el sistema.
INT 01H: Un solo paso. Usado por DEBUG y otros depuradores para permitir
avanzar por paso a travs de la ejecucin de un programa.
INT 02H: Interrupcin no enmascarare. Usada para condiciones graves de
hardware, tal como errores de paridad, que siempre estn habilitados. Por lo
tanto un programa que emite una instruccin CLI (limpiar interrupciones) no
afecta estas condiciones.
INT 03H: Punto de ruptura. Usado por depuracin de programas para detener
la ejecucin.
INT 04H: Desbordamiento. Puede ser causado por una operacin aritmtica,
aunque por lo regular no realiza accin alguna.
INT 05H: Imprime pantalla. Hace que el contenido de la pantalla se imprima.
Emita la INT 05H para activar la interrupcin internamente, y presione las
teclas Cltr + PrtSC para activarla externamente. La operacin permite
interrupciones y guarda la posicin del cursor.
INT 08H: Sistema del cronometro. Una interrupcin de hardware que
actualiza la hora del sistema y (si es necesario) la fecha. Un chip temporizador
programable genera una interrupcin cada 54.9254 milisegundos, casi 18.2
veces por segundo.
INT 09H: Interrupcin del teclado. Provocada por presionar o soltar una tecla
en el teclado.
INT OBH, INT OCH: Control de dispositivo serial. Controla los puertos COM1
y COM2, respectivamente.
INT 0DH, INT OFH: Control de dispositivo paralelo. Controla los puertos LPT1
y LPT2, respectivamente.
INT 0EH: Control de disco flexible. Seala actividad de disco flexible, como la
terminacin de una operacin de E/S.
INT 10H: Despliegue en vdeo. Acepta el nmero de funciones en el AH para el
modo de pantalla, colocacin del cursor, recorrido y despliegue.
INT 11H: Determinacin del equipo. Determina los dispositivos opcionales en
el sistema y regresa el valor en la localidad 40:10H del BIOS al AX. (A la hora de
encender el equipo, el sistema ejecuta esta operacin y almacena el AX en la
localidad 40:10H).
INT 12H: Determinacin del tamao de la memoria. En el AX, regresa el
tamao de la memoria de la tarjeta del sistema, en trminos de kilobytes
contiguos.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 60 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INT 13H: Entrada/salida de disco. Acepta varias funciones en el AH para el


estado del disco, sectores ledos, sectores escritos, verificacin, formato y obtener
diagnostico.
Los dos mdulos del DOS, IO.SYS y MSDOS.SYS, facilitan el uso del BIOS. Ya
que proporcionan muchas de las pruebas adicionales necesarias, las operaciones
del DOS por lo general son ms fciles de usar que sus contrapartes del BIOS y
por lo comn son independientes de la maquina. IO.SYS es una interfaz de nivel
bajo con el BIOS que facilita la lectura de datos desde la memoria hacia
dispositivos externos. MSDOS.SYS contiene un administrador de archivos y
proporciona varios servicios. Por ejemplo, cuando un programa usuario solicita la
INT 21H, la operacin enva informacin al MSDOS.SYS por medio del contenido
de los registros. Para completar la peticin, MSDOS.SYS puede traducir la
informacin a una o ms llamadas a IO.SYS, el cual a su vez llama al BIOS.

INTERUPCIONES DEL DOS.


Las interrupciones desde la 20H hasta la 3FH estn reservadas para
operaciones del DOS. A continuacin se mencionan algunas de ellas.
INT 20H: Termina programa. Finaliza la ejecucin de un programa .COM,
restaura las direcciones para Cltr + Break y errores crticos, limpia los buffer de
registros y regresa el control al DOS. Esta funcin por lo regular seria colocada
en el procedimiento principal y al salir.
INT 21H: Peticin de funcin al DOS. La principal operacin del DOS necesita
una funcin en el AH.
INT 22H: Direccin de terminacin. Copia la direccin de esta interrupcin.
INT 23H: Direccin de Cltr + Break. Diseada para transferir el control a una
rutina del DOS, cuando usted presiona Ctlt + Break o Ctlr + c. La rutina finaliza
la ejecucin de un programa o de un archivo de procesamiento por lotes. Sus
programas no deben de emitir esta interrupcin.
INT 24H: Manejador de error critico. Usada por el dos para transferir el
control (por medio del PSP desplazamiento 12H) cuando reconoce un error critico
(a veces una operacin de disco o de la impresora).Sus programas no deben de
emitir esta interrupcin.
INT 25H: Lectura absoluta de disco. Lee el contenido de uno o ms sectores
de disco.
INT 26H: Escritura absoluta de disco. Escribe informacin desde la memoria
a uno o ms sectores de disco.
INT 27H: Termina pero permanece residente (reside en memoria). Hace que
un programa .COM al salir permanezca residente en memoria.
INT 2FH: Interrupcin de multiplexion. Implica la comunicacin entre
programas, como la comunicacin del estado de un spool de la impresora, la
presencia de un controlador de dispositivo o un comando del DOS tal como
ASSIGN o APPEND.
INT 33H: Manejador del ratn. Proporciona servicios para el manejo del ratn.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 61 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

ACTIVIDAD:
Con base en lo aprendido elabore un programa en ensamblador con el cual pueda
llenar con 1s todos el mximo de registros.

EVALUACION:
 Qu diferencia existe entre un compilador, un ensamblador y un programa?
 Defina los siguientes trminos: Contador de programa, Bios, instruccin,
subrutina, e interrupcin.
 A que se le llama direccionamiento?
 Mencione y explique dos instrucciones lgicas y dos instrucciones
aritmticas.
 De acuerdo con lo aprendido describa lo que hara la siguiente serie de
instrucciones.
PUSH DS
MOV AX,0
PUSH AX
MOV AH,07
INT 21H
MOV DL,AL
MOV AH,02
INT 21H
RET

ING JUAN ALBERTO VAZQUEZ G.


Pgina 62 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Capitulo V
INTERFASE CON DISPOSITIVOS
EXTERNOS

5.1 Comunicacin en paralelo.


5.2 Comunicacin en serie.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 63 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INTRODUCCION:

La informacin binaria (seales elctricas) que maneja un computador


puede transmitirse de un lugar a otro en dos formas bsicas, en forma serial
o en forma paralela. En una transmisin serial se forma un tren de bits, uno
tras de otro viajan del lugar de emisin al receptor utilizando una sola va, en
este caso ser un conductor elctrico al cual denominaremos bus Serial,
como en caso de los trenes con una sola va si se desea transmitir en el
sentido contrario, se debe esperar que la va este libre. En la comunicacin
en paralelo cada bit tiene su va exclusiva, con la condicin de que todos
viajen simultneamente, como en el caso de la comunicacin serial para
transmitir en el sentido contrario se debe esperar que la va este libre, a
menos que se tenga una exclusiva para el sentido contrario. La
comunicacin en el interior del computador son bsicamente transmisiones
en paralelo utilizando una sola va, en caso de que se transmita en los dos
sentidos debe ser alternada por cuanto solo se cuenta con una sola va.
A estas vas internas paralelas se les denominan buses paralelos y estos
estn recorriendo todos los dispositivos que interacten internamente en un
computador. Algunos de estos buses paralelos tienen restriccin de
circulacin de informacin en un sentido, cuando as sucede se le denomina
bus unidireccional, y cuando es permitido, la circulacin de informacin en
ambos sentidos en forma alternada, se le denomina bus bidireccional.
El mundo de las comunicaciones internas del computador se realiza en
forma paralela alternada, por fuera del computador predominan las
comunicaciones seriales; las redes de computadores se basan en dicha
comunicacin.
Cuando un bus paralelo tiene 8 conductores en paralelo se dice que es
un bus paralelo de 8 bits. Si tiene 16 conductores entonces se dir que es un
bus paralelo de 16 bits

OBJETIVO:

El alumno conocer las diversas formas de comunicacin del


microprocesador con el exterior.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 64 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INTERFASE CON DISPOSITIVOS EXTERNOS


Los puertos de salida/entrada son elementos materiales del equipo, que
permiten que el sistema se comunique con los elementos exteriores. En otras
palabras, permiten el intercambio de datos, de aqu el nombre interfaz de
entrada/salida (tambin conocida como interfaz de E/S).

5.1 Comunicacin en paralelo.


Un puerto paralelo es lo ms natural para ser usado con un microprocesador
debido a que el mismo fue diseado para transferir datos de 8 bits en paralelo, y
el bus de datos esta optimizado para realizar el procedimiento en paralelo, debido
a esta caracterstica los bytes de datos pueden ser transferidos en altas
velocidades, por ejemplo, el microprocesador Z80 cuenta con la instruccin OTIR
con la cual puede transferir datos hacia un puerto paralelo a razn de 190 000
bytes/seg.
El puerto paralelo adapta la velocidad del ordenador a la del perifrico y
establece un control de flujo hardware para que el ordenador no inunde de
informacin al perifrico.
Mediante el puerto paralelo se puede establecer un mayor control por parte
del ordenador sobre el perifrico. En cambio, en el puerto serie la velocidad esta
preestablecida y no existe tanto control como con el puerto serie.
Conexin fsica del puerto
El interfaz puerto paralelo se basa en un conector hembra de 25 pines. La
tabla 1 muestra las lneas del puerto paralelo y su significado lgico en una
conexin PC-impresora:
Pin del Nombre Significado
ordenador Lnea
1 STROBE Indica Transmisin
2 D0 Lnea de datos Bit 0
3 D1 Lnea de datos Bit 1
4 D2 Lnea de datos Bit 2
5 D3 Lnea de datos Bit 3
6 D4 Lnea de datos Bit 4
7 D5 Lnea de datos Bit 5
8 D6 Lnea de datos Bit 6
9 D7 Lnea de datos Bit 7
10 ACK Ultimo carcter aceptado
11 BUSY Impresora ocupada
12 PE Impresora sin papel
13 SLCT Impresora en linea.
14 AUTO FEED CR Automtico despus de LF
15 ERROR Error en la transmisin de datos
16 INIT Realizar reset de la impresora
17 SLCT IN Activar ON LINE en la imp.
18-25 GND Masa o tierra.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 65 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Como se puede observar en la tabla existen una serie de lneas de datos las
cuales son unidireccionales, es decir, solo son de salida del ordenador hacia la
impresora, y una serie de lneas de control que nos permiten un intercambio de
informacin entre el ordenador y el perifrico, pero las lneas de control
impresora-ordenador son slo cinco.
Programacin del puerto
El puerto paralelo se puede programar mediante un acceso a la BIOS del PC o
mediante la programacin directa del puerto. Cualquiera de las dos opciones es
totalmente correcta pero nosotros nos hemos decantado por la de ms fcil
implementacin, la programacin directa.
En la programacin del puerto, lo nico que realizamos es un acceso a las
direcciones de dicho puerto. Estas direcciones son las siguientes:
Direccin Puerto
3BCh - 3BFh Puerto paralelo en la tarjeta MDA *
378h - 37Fh Primer puerto paralelo
278h - 27Fh Segundo puerto paralelo
La tarjeta MDA era una tarjeta de vdeo monocroma en la cual la lgica de
vdeo posea tambin un puerto paralelo. Este tipo de tarjetas ya no se utiliza.
El acceso a las direcciones del puerto se puede realizar, por ejemplo, mediante
la instruccin outportb y outport del lenguaje C. Una vez realizado el acceso a un
registro del puerto podremos leerlo y/o escribirlo dependiendo lo que nos permita
realizar cada puerto como se puede observar en el siguiente apartado.
Los registros del puerto
El puerto paralelo presenta 3 registros accesibles por el programador :
Primer registro del puerto paralelo
Este primer registro es el registro de datos, solo de escritura, en el cual
introducimos el byte que queremos que aparezca en las lneas de datos D0-D7
(pins 2-9).

Segundo registro del puerto paralelo


Este registro corresponde al que nosotros podemos llamar registro de control
de entrada, debido a que en este registro se activan los bits de ERROR, SCLT, PE,
ACK y BUSY, si alguno de los pines a los cuales estn ligados esta en nivel alto (o
nivel bajo dependiendo si es o no negado), esto se puede observar en la figura 2.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 66 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Este registro es solo de lectura, es decir, no se puede variar este registro por
software.

Tercer registro del puerto paralelo


Este registro al igual que el anterior corresponde a un registro de control, pero
este registro es de salida, es decir, al variar uno de estos bits, tambin se vara el
nivel del pin del conector, un ejemplo estara en la seal de STROBE, si en el
registro ponemos este bit a 0, en el pin 1 del conector el nivel ser de 1 (5 V) pasa
lo mismo en el caso del registro de datos). Este registro se puede leer y variar por
Software.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 67 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

5.2 Comunicacin en serie.

En la transmisin paralela se requiere de una gran cantidad de cable paralelo


y adems cada puerto paralelo tiene un hardware especifico, con el resultado de
que un puerto paralelo sobre una PC puede no ser compatible, en el mtodo de
transmisin serie se transmiten de forma secuencial en el tiempo todos los bits
de una palabra, una detrs de otra a travs de una sola lnea de datos.
La ventaja inmediata de este mtodo es que solamente se necesitan dos
conductores, uno para la seal y otro para la tierra, y si se requiere transmitir en
forma dplex, esto es, transmisin y/o recepcin simultnea se necesitan 3 4
conductores, la obvia dificultad de la transmisin serie es su significativa
reduccin en las velocidades de transmisin, sin embargo, los sistemas de
comunicaciones han alcanzado un alto grado de estandarizacin, existen normas
universalmente aceptadas que fijan completamente todos los detalles de la
comunicacin serial, incluyendo aspectos mecnicos, tipos de conexiones y
distribucin correcta de las seales de las terminales del puerto serial, as como
los aspectos elctricos, los niveles de tensin y de corriente, tomando en cuenta,
adems, los aspectos lgicos, los sistemas de codificacin y los de sincronizacin.
Cuando se transmite informacin a travs de una lnea serie es necesario
utilizar un sistema de codificacin que permita resolver los siguientes problemas:
Sincronizacin de bits: El receptor necesita saber donde comienza y donde
termina cada bit en la seal recibida para efectuar el muestreo de la misma en el
centro del intervalo de cada smbolo (bit para seales binarias).
Sincronizacin del carcter: La informacin serie se transmite por definicin bit
a bit, pero la misma tiene sentido en palabras o bytes.
Sincronizacin del mensaje: Es necesario conocer el inicio y fin de una cadena
de caracteres por parte del receptor para, por ejemplo, detectar algn error en la
comunicacin de un mensaje.
Se pueden establecer canales para la comunicacin de acuerdo a tres
tcnicas, siempre tomando al microprocesador o microcontrolador como
referencia (transmisor) y al perifrico como destino (receptor):
Simplex: En ella la comunicacin serie usa una direccin y una lnea de
comunicacin. Siempre existir un transmisor y un receptor, no ambos.
La ventaja de este sistema consiste en que es necesario slo un enlace a dos
hilos.
La desventaja radica en que el extremo receptor no tiene ninguna forma de
avisar al extremo transmisor sobre su estado y sobre la calidad de la informacin
que se recibe. Esta es la razn por la cual, generalmente, no se utiliza.
Semi dplex: La comunicacin serie se establece a travs de una sola lnea,
pero en ambos sentidos. En un momento el transmisor enviar informacin y en
otro recibir, por lo que no se puede transferir informacin en ambos sentidos de
forma simultnea.
Este modo permite la transmisin desde el extremo receptor de la informacin,
sobre el estado de dicho receptor y sobre la calidad de la informacin recibida por
lo que permite as la realizacin de procedimientos de deteccin y correccin de
errores.
ING JUAN ALBERTO VAZQUEZ G.
Pgina 68 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Full dplex: Se utilizan dos lneas (una transmisora y otra receptora) y se


transfiere informacin en ambos sentidos. La ventaja de este mtodo es que se
puede transmitir y recibir informacin de manera simultnea.
La mayora de los dispositivos especializados para la comunicacin pueden
transferir informacin tanto en full dplex como en half dplex (el modo simplex
es un caso especial dentro de half dplex).
Estos estndares han contribuido a que la mayora de los fabricantes de
microprocesadores, microcontroladores y perifricos incorporen en sus equipos
interfaces seriales que cumplan con las normas especificadas, de forma tal que se
puede realizar con facilidad la conexin de cualquier terminal o perifrico con
cualquier sistema con microprocesadores.
Se utilizan interfaces serie para conectar perifricos, tales como teclados,
impresoras, caseteras, etctera, y tambin puede interconectar PC'S entre si.
Adems en los sistemas con microprocesadores las seales pueden ser
convertidas a tonos de audio para ser transmitidas a travs de la red telefnica,
formndose las ya conocidas redes de datos locales (LANS) entre computadoras,
para esto se utilizan los equipos denominados MODEMS, contraccin de las
palabras MODulador/DEModulador, los MODEMS realizan las funciones de
modulacin y demodulacin y proporcionan la compatibilidad entre los sistemas
de comunicacin existentes y los equipos digitales.
Existen dos modos bsicos para realizar la transmisin serial de datos y son:
Modo asncrono.
Modo sncrono.
Las transmisiones asncronas son aquellas en que los bits que constituyen el
cdigo de un caracter se emiten con la ayuda de impulsos suplementarios que
permiten mantener en sincronismo los dos extremos.
En las transmisiones sncronas los caracteres se transmiten
consecutivamente, no existiendo ni bit de inicio ni bit de parada entre los
caracteres, estando dividida la corriente de caracteres en bloques, envindose
una secuencia de sincronizacin al inicio de cada bloque.
Cuando se opera en modo asncrono no existe una lnea de reloj comn que
establezca la duracin de un bit y el caracter puede ser enviado en cualquier
momento. Esto conlleva que cada dispositivo tiene su propio reloj y que
previamente se ha acordado que ambos dispositivos transmitirn datos a la
misma velocidad.
No obstante, en un sistema digital, un reloj es normalmente utilizado para
sincronizar la transferencia de datos entre las diferentes partes del sistema. El
reloj definir el inicio y fin de cada unidad de informacin as como la velocidad
de transmisin. Si no existe reloj comn, algn modo debe ser utilizado para
sincronizar el mensaje.
En realidad, la frecuencia con que el reloj muestrea la lnea de comunicacin
es mucho mayor que la cadencia con que llegan los datos. Por ejemplo, si los
datos estn llegando a una cadencia de 2400 bps, el reloj examinar la lnea
unas 19200 veces por segundo, es decir, ocho veces la cadencia binaria. La gran
rapidez con que el reloj muestrea la lnea, permite al dispositivo receptor detectar

ING JUAN ALBERTO VAZQUEZ G.


Pgina 69 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

una transmisin de 1 a 0 o de 0 a 1 muy rpidamente, y mantener as la mejor


sincronizacin entre los dispositivos emisor y receptor.
El tiempo por bit en una lnea en que se transfiere la informacin a 2400 bps
es de unos 416 microsegundos (1 seg/2400). Una frecuencia de muestreo de
2400 veces por segundo nos permitir muestrear el principio o el final del bit. En
ambos casos detectaremos el bit, sin embargo, no es extrao que la seal cambie
ligeramente, y permanezca la lnea con una duracin un poco ms larga o ms
corta de lo normal. Por todo ello, una frecuencia de muestreo lenta no sera capaz
de detectar el cambio de estado de la seal a su debido tiempo, y esto dara lugar
a que la estacin terminal no recibiera los bits correctamente.
En la transmisin asncrona un caracter a transmitir es encuadrado con un
indicador de inicio y fin de carcter, de la misma forma que se separa una
palabra con una letra mayscula y un espacio en una oracin. La forma estndar
de encuadrar un carcter es a travs de un bit de inicio y un bit de parada.
Durante el intervalo de tiempo en que no son transferidos caracteres, el
canal debe poseer un "1" lgico. Al bit de parada se le asigna tambin un "1". Al
bit de inicio del carcter a transmitir se le asigna un "0". Por todo lo anterior, un
cambio de nivel de "1" a "0" lgico le indicar al receptor que un nuevo carcter
ser transmitido.

La transmisin asncrona que vamos a ver es la definida por la norma RS232,


y se basa en las siguientes reglas:
a) Cuando no se envan datos por la lnea, sta se mantiene en estado alto
(1).
b) Cuando se desea transmitir un carcter, se enva primero un bit de
inicio que pone la lnea a estado bajo (0) durante el tiempo de un bit.
c) Durante la transmisin, si la lnea est a nivel bajo, se enva un 0 y si
est a nivel alto se enva un 1.
d) A continuacin se envan todos los bits del mensaje a transmitir con los
intervalos que marca el reloj de transmisin. Por convenio se transmiten
entre 5 y 8 bits.
e) Se enva primero el bit menos significativo, siendo el ms significativo el
ltimo en enviarse.
f) A continuacin del ltimo bit del mensaje se enva el bit (o los bits) del
final que hace que la lnea se ponga a 1 por lo menos durante el tiempo
mnimo de un bit. Estos bits pueden ser un bit de paridad para detectar

ING JUAN ALBERTO VAZQUEZ G.


Pgina 70 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

errores y el bit o bits de stop, que indican el fin de la transmisin de un


carcter.

Cuando se transmite de manera sncrona lo primero que se enva es un octeto


de sincronismo ("sync"). El octeto de sincronismo realiza la misma funcin que el
bit de inicio en la transmisin asncrona, indicando al receptor que va ha ser
enviado un mensaje. Este carater, adems, utiliza la seal local de reloj para
determinar cundo y con qu frecuencia ser muestreada la seal, es decir,
permite sincronizar los relojes de los dispositivos transmisor y receptor. La
mayora de los dispositivos de comunicacin llevan a cabo una resincronizacin
contra posibles desviaciones del reloj, cada uno o dos segundos, insertando para
ello caracteres del tipo "sync" peridicamente dentro del mensaje.

Cuando se escriben o se envan datos, pueden producirse errores, entre otras


cosas, por ruidos inducidos en las lneas de transmisin de datos. Es por tanto
necesario comprobar la integridad de los datos transmitidos mediante algn
mtodo que permita determina si se ha producido un error.
En un caso tpico, si al transmitirse un mensaje se determina que se ha
producido un error, el receptor solicita de nuevo el mensaje al emisor.
Como un error en una transmisin serie solamente suele afectar a un bit, uno
de los mtodos ms comunes para detectar errores es el control de la paridad.
El control de paridad consiste en aadir un bit, denominado de paridad, a los
datos que se envan o escriben.
El bit de paridad ser cero, cuando el nmero de bit "unos" que contienen los
datos a transmitir sea un nmero par, y el bit de paridad ser uno cuando los
datos que se mandan contienen un nmero impar de unos.
Dato Paridad

0000 0001 1

0101 0001 1

0101 0101 0

0000 0000 0

ING JUAN ALBERTO VAZQUEZ G.


Pgina 71 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

La suma de los bits que son unos, contando datos y bit de paridad dar
siempre como resultado un nmero par de unos.
En el sistema de paridad impar, el nmero de unos (datos + paridad) siempre
debe ser impar.
Dato Paridad

0000 0001 0

0101 0001 0

0101 0101 1

0000 0000 1

En el sistema de paridad impar, el nmero de unos (datos + paridad) siempre


debe ser impar.

ACTIVIDAD:
Realice una investigacin sobre comunicacin paralela y serie, y posteriormente
realice programas en C++ para transmitir datos a travs del puerto paralelo y puerto serial,
puede utilizar LEDS (recordar poner resistencias)

EVALUACION:
 De que registros consta el puerto paralelo y para que sirven?
 Qu diferencia existe entre comunicacin asncrona y sncrona?
 Qu diferencia hay entre comunicacin paralela y serial?
 Cul es la diferencia entre comunicacin dplex y semiduplex?
 Entre la comunicacin paralela y serial Cul presenta ms ventajas y
porque?

ING JUAN ALBERTO VAZQUEZ G.


Pgina 72 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Capitulo VI
PROCESADORES
INTEL
8086 Y 8088

6.1 Las terminales y sus


sus funciones.
6.2 Generador de reloj (8284).
6.3 Demultiplexin y acoplamiento del canal.
6.4 Temporizacin del canal.
6.5 Lista del estado de espera.
6.6 Modo mnimo contra modo mximo.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 73 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INTRODUCCION:

Los microprocesadores Intel 8086 y 8088 se desarrollan a partir de un


procesador anterior, el 8080, que en sus diversas encarnaciones -incluyendo
el Zilog Z80 ha sido la CPU de 8 bits de mayor xito.
Poseen una arquitectura interna de 16 bits y pueden trabajar con
operandos de 8 y 16 bits; una capacidad de direccionamiento de 20 bits
(hasta 1 Mb) y comparten el mismo juego de instrucciones.
La filosofa de diseo de la familia del 8086 se basa en la compatibilidad y
la creacin de sistemas informticos integrados, por lo que disponen de
diversos coprocesadores como el 8089 de E/S y el 8087, coprocesador
matemtico de coma flotante. De acuerdo a esta filosofa y para permitir la
compatibilidad con los anteriores sistemas de 8 bits, el 8088 se dise con
un bus de datos de 8 bits, lo cual lo hace ms lento que su hermano el 8086,
pues ste es capaz de cargar una palabra ubicada en una direccin par en
un solo ciclo de memoria mientras el 8088 debe realizar dos ciclos leyendo
cada vez un byte.
Estas y otras muchas caractersticas son las que veremos a continuacin.

OBJETIVO:

Conoceremos las caractersticas internas de los procesadores Intel 8086


y 8088.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 74 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

PROCESADORES INTEL 8086 Y 8088


Los Intel 8086 e Intel 8088 (i8086, llamado oficialmente iAPX 86, e i8088) son
dos microprocesadores de 16 bits diseados por Intel en 1978, iniciadores de la
arquitectura x86. La diferencia entre el i8086 y el i8088 es que este ltimo utiliza
un bus externo de 8 bits, para poder emplear circuitos de soporte al
microprocesador ms econmicos, en contraposicin al bus de 16 bits del i8086.
Los i8086 e i8088 se basaron en el diseo del Intel 8080 y el Intel
8085(Capitulo 3), y de hecho son compatibles a nivel de ensamblador con el
i8080. El conjunto de registros tambin es similar al del i8080, pero ampliados a
16 bits. Tanto el i8086 como el i8088 tienen cuatro registros generales de 16 bits,
que tambin pueden ser accedidos como ocho registros de 8 bits, y tienen cuatro
registros ndices de 16 bits (incluyendo el puntero de pila). Los registros de datos
se usan a veces de forma implcita por las instrucciones, haciendo ms difcil la
organizacin de los registros para emplearlos con valores temporales.

6.1 Las terminales y sus funciones.


El 8086/8088 puede conectarse al circuito de dos formas distintas: el modo
mximo y el modo mnimo. El modo queda determinado al poner un determinado
terminal (llamado MN/MX, corresponde al pin 33) a tierra o a la tensin de
alimentacin. El 8086/8088 debe estar en modo mximo si se desea trabajar en
colaboracin con el Procesador de Datos Numrico 8087 y/o el Procesador de
Entrada/Salida 8089 (de aqu se desprende que en la IBM PC el 8088 est en
modo mximo). En este modo el 8086/8088 depende de otros chips adicionales
como el Controlador de Bus 8288 para generar el conjunto completo de seales
del bus de control. El modo mnimo permite al 8086/8088 trabajar de una forma
ms autnoma (para circuitos ms sencillos) en una manera casi idntica al
microprocesador 8085.
Los 40 pines del 8088 en modo mnimo tienen las siguientes funciones:
1) GND (Masa)
2) A14 (Bus de direcciones)
3) A13 (Bus de direcciones)
4) A12 (Bus de direcciones)
5) A11 (Bus de direcciones)
6) A10 (Bus de direcciones)
7) A9 (Bus de direcciones)
8) A8 (Bus de direcciones)
9) AD7 (Bus de direcciones y datos)
10) AD6 (Bus de direcciones y datos)
11) AD5 (Bus de direcciones y datos)
12) AD4 (Bus de direcciones y datos)
13) AD3 (Bus de direcciones y datos)
14) AD2 (Bus de direcciones y datos)
15) AD1 (Bus de direcciones y datos)
16) AD0 (Bus de direcciones y datos)
17) NMI (Entrada de interrupcin no enmascarable)

ING JUAN ALBERTO VAZQUEZ G.


Pgina 75 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

18) INTR (Entrada de interrupcin enmascarable)


19) CLK (Entrada de reloj generada por el 8284)
20) GND (Masa)
21) RESET (Para inicializar el 8088)
22) READY (Para sincronizar perifricos y memorias lentas)
23) /TEST
24) /INTA (El 8088 indica que reconoci la interrupcin)
25) ALE (Cuando est uno indica que salen direcciones por AD, en caso
contrario, es el bus de datos)
26) /DEN (Data enable: cuando vale cero debe habilitar los transceptores
8286 y 8287 (se conecta al pin de "output enable"), esto sirve para que no
se mezclen los datos y las direcciones).
27) DT/R (Data transmit/receive: se conecta al pin de direccin de los chips
recin indicados).
28) IO/M (Si vale 1: operaciones con ports, si vale 0: operaciones con la
memoria)
29) /WR (Cuando vale cero hay una escritura)
30) HLDA (Hold Acknowledge: el 8088 reconoce el HOLD)
31) HOLD (Indica que otro integrado quiere aduearse del control de los buses,
generalmente se usa para DMA o acceso directo a memoria).
32) /RD (Cuando vale cero hay una lectura)
33) MN/MX (Cuando esta entrada est en estado alto, el 8088 est en modo
mnimo, en caso contrario est en modo mximo)
34) /SSO (Junto con IO/M y DT/R esta salida sirve para determinar estados
del 8088)
35) A19/S6 (Bus de direcciones/bit de estado)
36) A18/S5 (Bus de direcciones/bit de estado)
37) A17/S4 (Bus de direcciones/bit de estado)
38) A16/S3 (Bus de direcciones/bit de estado)
39) A15 (Bus de direcciones)
40) Vcc (+5V)
En modo mximo (cuando se aplica +5V al pin 33) hay algunos pines que
cambian de significado:
24.- QS1: Estado de la cola de instrucciones (bit 1).
25.- QS0: Estado de la cola de instrucciones (bit 0).
26.- S0: Bit de estado 0.
27.- S1: Bit de estado 1.
28.- S2: Bit de estado 2.
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.
30.- RQ/GT1: Es bidireccional y tiene la misma funcin que HOLD/HLDA en
modo mnimo.
31.- RQ/GT0: Como RQ/GT1 pero tiene mayor prioridad.
34.- Esta salida siempre est a uno.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 76 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

6.2 Generador de reloj (8284).


(8284).
Es el encargado de generar las seales de reloj necesarias para sincronizar las
operaciones del CPU junto con los dems dispositivos.
Este circuito integrado, posee en su configuracin un cristal de 14.3MHz que
permite la operacin del CPU a 4.77MHz aproximadamente. Esto nos da un
periodo de 210ns. Adicionalmente, posee en su configuracin el control de los
pines de Reset y Ready, que controlan el hacer un Reset al microprocesador y la
disponibilidad del mismo, respectivamente. Adicionalmente posee una salida OSC
que es un reloj de la misma frecuencia que la del cristal y se dirige a los slots de
expansin para controlar algn proceso externo.
A continuacin se muestra la distribucin de los pines y la forma de conexin
de este til integrado:

X1 y X2 son las entradas del cristal, el cual no tiene polaridad. La frecuencia


se divide entre 3, con la caracterstica que es de 33% en alto y 66% en bajo, la
cual se obtiene en la salida CLK.
La seal CLK es dividida entre 2 y se enva por la salida PCLK (reloj perifrico)
EFI (external frecuency in) es la entrada de reloj si se usa oscilador u otra
seal de frecuencia externa.
La terminal F/C determina cul es la seal de origen, si est en 1, el origen
es la seal EFI, si no, ser la obtenida en X1 y X2 (cristal).
OSC es una seal de salida donde se obtiene la frecuencia del cristal en una
sola terminal.
RES es una lnea de entrada para el disparo de la seal de RESET. Aqu se
conecta un arreglo de capacitor-resistencia con un botn de disparo
normalmente abierto (push button).
RESET es la seal de inicializacin que se enva al microprocesador.
READY se conecta directamente a la seal READY del 8088.
AEN1 y AEN2 se utilizan para sistemas de varios procesadores, cuando se
utiliza slo uno, estas entradas se colocan en tierra (GND).
ASYNC sirve para sincronizar la salida READY y compensa los tiempos de
respuesta de los dispositivos conectados al bus. En el modo mnimo esta seal se
deja al aire.
ING JUAN ALBERTO VAZQUEZ G.
Pgina 77 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

CSYNC se utiliza cuando existen mltiples 8284 conectados a un sistema y


para esto se utiliza un reloj maestro. En el modo mnimo se conecta a GND.

6.3 Demultiplexin y acoplamiento del canal.


En el procesador 8085 el canal de datos y de direcciones esta multiplexado
por medio del integrado 74LS373 moviendo los 8 datos y las 16 direcciones a
travs de los pines AD7-AD0 y A19/S a la A16/S3.
El circuito que se muestra a continuacin detalla grficamente lo explicado en
el prrafo anterior.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 78 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Si en lugar de este procesador se estar hablando del 8086 la situacin es


similar, solo que se agregara un integrado 74LS373 con el fin de multiplexar los
datos de 16 bits (D15-D0).

ING JUAN ALBERTO VAZQUEZ G.


Pgina 79 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

6.4 Temporizacin del canal.


Los microprocesadores utilizan la memoria y el espacio de E/S durante
periodos de dos ciclos del bus. Cada ciclo es igual a cuatro periodos de reloj del
sistema (estados T). Si el reloj funciona a 5 MHz (frecuencia bsica de los
microprocesadores 8086/8088), entonces un ciclo del bus ser de 800 nseg. Lo
cual significa que el microprocesador lee o escribe datos de la memoria o del
espacio de E/S a una velocidad mxima 1.25 millones de veces por segundo.
(Debido a que poseen una cola interna, el 8086/8088 pueden ejecutar 2.5
millones de instrucciones por segundo [MIPS] en rfagas). Es obvio que con los
microprocesadores actuales en que las frecuencias de reloj estn en el rango de
Gigahertz las velocidades de transferencia debern ser mucho mayores.

LOS PERIODOS ESTAN INDICADOS EN EL APENDICE B (DIAGRAMA DE TEMPORIZACION


8088/8086). ES NECESARIO HAGA USO DE ESTE GRAFICO PARA EL DESARROLLO DE ESTE
CAPITULO.

T1: Durante el primer periodo de reloj en un ciclo del bus, que se llama T1,
ocurren diversas actividades. La direccin de memoria o del puerto de E/S se
enva por el bus de direcciones y de las conexiones bus de direccin datos. (El
bus de direcciones y datos estn multiplexados, de tal manera que durante un
tiempo, contienen informacin de direccionamiento de la memoria y durante
otros, datos.) Durante T1 tambin se proporcionan las seales de control ALE,
DT/R y IO/M (8088) o M/IO (8086). La seal IO/M o M/IO indica si el bus de
direcciones contiene una direccin de la memoria o el nmero de un puerto para
un dispositivo de E/S.
T2: Durante T2, los microprocesadores 8086/8088 proporcionan seales
DEN, RD para lectura o WR para escritura y en el caso de escritura, los datos
que se van a escribir aparecen en el bus de datos. Estos sucesos hacen que en la
memoria o en E/S se inicie una sesin de escritura o lectura. La seal DEN
habilita el transceptor del canal de datos, si los hay en el sistema, a fin de que la
memoria o la E/S puedan recibir los datos que se van a escribir o que el
microprocesador pueda leerlos datos de la memoria o de la E/S. Si ello ocurre
durante un ciclo de escritura, entonces los datos se envan a la memoria o a la
E/S por medio del bus de datos.
T3. Este perodo de reloj se produce a fin de dar tiempo a la memoria para
accesar los datos. Si el ciclo del bus es de lectura, entonces el bus de datos se
muestra al final de T3.
T4: En T4 se desactivan todas las seales del bus en preparacin para el
siguiente ciclo del bus. Este es tambin el momento en que los
microprocesadores 8086/8088 muestrean las terminales del bus de datos que se
leen de la memoria o de E/S. Adems, en este momento, el flanco de subida de
WR transfiere datos a la memoria o a E/S, los cuales se activan y escriben
cuando la seal WR retorna al nivel de 1 lgico.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 80 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Las diferencias principales entre la temporizacin para la lectura y para


escritura son mnimas. La seal RD se sustituye por WR, el bus de datos
contiene la informacin para la memoria en vez de la informacin de la memoria
y DT/R es un 1 en vez de un 0 lgico durante todo el ciclo del bus. Cuando se
conectan algunos dispositivos de memoria, la temporizacin puede ser delicada
entre el momento en el cual WR se hace en 1 lgico y el momento en que los
datos se retiran del bus de datos.

6.5 Lista del estado de espera.


La entrada READY genera estados de espera para la memoria y los
componentes de E/S ms lentos.
Un estado de espera (Tw) es un periodo de reloj adicional, insertado entre T2 y
T3, para alargar el ciclo de bus.
Al insertar un estado de espera, el tiempo de acceso de la memoria,
normalmente de 460 ns con un reloj de 5 MHz, es alargado en un periodo (200
ns) hasta 660 ns.
La entrada READY es muestreada al final de T2. Si READY= 0 lgico al final
de T2, T3 es retrasado y Tw es insertado entre T2 y T3.

Aqu, un registro
de desplazamiento
serial de ocho bits
(74LS164) transfiere
un 0 lgico por uno
o ms periodos de
reloj desde una de
sus salidas Q a la
entrada RDY1 del
8284A. Con el
puente adecuado,
este circuito puede
proporcionar varios
estados de espera
como se puede
apreciar en la figura.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 81 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

6.6 Modo mnimo contra modo mximo.


Como vimos en la seccin 6.1 existen dos modos de operacin para los
microprocesadores 8086/8088:
Modo mnimo. La terminal MN/(/MX) a +5.0 V, es parecido al 8085A
que es un microprocesador de 8 bits Intel
Modo mximo. La terminal MN/(/MX) a tierra. Utilizado cuando existe
un coprocesador en el sistema, El modo mximo fue desechado a partir
del 80286.
Modo mnimo de operacin es la forma ms econmica de operar de los
microprocesadores 8086/8088. Este modo es menos costoso porque todas las
seales de control para la memoria y las E/S son generadas por el
microprocesador.
Estas seales de control son idnticas a las del Intel 8085(visto en el capitulo
anterior), microprocesador anterior de 8 bits.
El modo mnimo permite que perifricos de ocho bits del 8085 sean utilizados
con los 8086/8088 sin consideraciones especiales.
En el modo mximo algunas de las seales de control deben ser generadas
externamente. Esto requiere la adicin de un controlador de bus externo: el
controlador de bus 8288. No existen suficientes terminales en los 8086/8088
para el control de buses en el modo mximo porque nuevas terminales y nuevas
caractersticas han sustituido a algunas de ellas.
El modo mximo es utilizado solamente cuando el sistema contiene
coprocesadores externos como el coprocesador aritmtico 8087.

ACTIVIDAD:
Simule utilizando un programa la configuracin de pines para el procesador 8088 y
8086 en modo mximo y mnimo.

EVALUACION:
 Qu diferencia existe entre los procesadores 8088 y 8086?
 Para que nos sirve la terminal READY en el puerto 8088?
 Cul es la diferencia de los procesadores 8085 y 8086?
 Cundo el procesador opera en modo mximo y cuando en modo mnimo?
 Para que se utilizan los integrados 373 en este tipo de procesadores?

ING JUAN ALBERTO VAZQUEZ G.


Pgina 82 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Capitulo VII
PROCESADORES
PROCESADORES
INTEL
80386 Y 80486

7.1 Introduccin al microprocesador 80386.


7.2 La estructura de registros.
7.3 El conjunto de instrucciones.
7.4 Administracin de memoria.
7.5 Modo protegido.
7.6 Modo virtual.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 83 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INTRODUCCION:

Desde el 8086, se desarrollado en 1978 los procesadores se fueron


modificando de muchas maneras sin perder la compatibilidad con los
anteriores. En el caso del 8088 esto signific un paso hacia atrs, ya que si
bien el 8088 dispona del mismo grupo de instrucciones y la misma
estructura interna que el 8086, se comunicaba con la memoria mediante un
bus de datos de 8 bits, en lugar de 16 bits.
El resto de miembros de esta familia, son desarrollos posteriores del
8086. De manera que por ejemplo el 80186 dispone de nuevas funciones
adicionales, mientras que al 80286 se le crearon ms registros en
comparacin al 8086, as como tambin se le ampli el rea de direcciones.
Al 80286 le sigui el 80386, que marc un notable salto en la capacidad
de rendimiento. Continu desarrollando el modo protegido y fue el primero
de disponer de un procesador Intel de registros de 32 bits, que sin embargo
no pudo utilizarse correctamente en la programacin del DOS. Este
procesador existe tambin en una versin SX y DX, que se diferencian
nicamente en la frecuencia y en el tamao del bus de dato; el SX trabaja
con un bus de datos de 16 bits, mientras que el DX puede transmitir de una
sola vez una palabra de 32 bits mediante su bus.

OBJETIVO:

Conoceremos las caractersticas internas de los procesadores Intel 80386


y 80486.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 84 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

PROCESADORES INTEL 80386 Y 80486

7.1 Introduccin al microprocesador 80386.


El microprocesador 386 (tambin conocido como 386 DX) supone un paso
muy importante frente al 286. Hasta entonces, tanto los micros 8088 y 8086
como el 286 eran microprocesadores de 16 bits; trabajaban con 16 bits a la vez
en cada ciclo de reloj. Por el contrario, el 386 es un microprocesador de 32 bits,
que procesa 32 bits simultneamente en cada ciclo de reloj. Los ordenadores 386
tienen una velocidad desde 16 a 50 MHz
El bus de direcciones del 386 tiene 32 bits. Con 32 bits se pueden
redireccionar 232 celdas de memoria lo que equivale a 4096 MB. Tambin en este
caso los primeros 1024 k se reparten como los micros 80886 y 286: 640k de
memoria convencional y los 364k restantes de memoria superior.
El microprocesador 80386 esta diseado para soportar aquellos sistemas
operativos optimizados para multitarea. El micro 80386 es capaz de direccionar
hasta 4 gigabytes de memoria fsica y 64 terabytes de memoria virtual. La gestin
de memoria integrada y arquitectura de proteccin incluye registros de
traduccin de direcciones y mecanismo de proteccin para soportar sistemas
operativos y hardware avanzado de multitarea.
El cambio entre instrucciones de segmentacion, una elevada anchura del bus
y una traduccin de direcciones en la pastilla acortan significativamente el
tiempo medio de ejecucin de la instruccin, manteniendo un alto rendimiento
del sistema. Estas caractersticas de diseo de arquitectura habilitan al 80386 a
ejecutar instrucciones a una frecuencia de 3 a 4 millones por segundo.
Caractersticas adicionales es que incluye auto test, acceso directo a la
memoria interna (cache) donde se realiza la traduccin de pgina y cuatro nuevos
registros de "corte". El 80386 tiene el cdigo objeto compatible con el 8086, 8088
y 80286.
Los i486 son muy similares a sus predecesores, los Intel 80386. La diferencias
principales son que los i486 tienen un conjunto de instrucciones optimizado, una
unidad de coma flotante y un cach unificado integrados en el propio circuito
integrado del microprocesador y una unidad de interfaz de bus mejorada. Estas
mejoras hacen que los i486 sean el doble de rpidos que un i386 a la misma
velocidad de reloj. De todos modos, algunos i486 de gama baja son ms lentos
que los i386 ms rpidos.
Las velocidades de reloj tpicas para los i486 eran 16 MHz (no muy frecuente),
20 MHz (tampoco frecuente), 25 MHz, 33 MHz, 40 MHz, 50 MHz (tpicamente con
duplicacin del reloj), 66 MHz (con duplicacin del reloj), 75 MHz (con triplicacin
del reloj), 100 MHz (tambin con triplicacin del reloj) y 120 MHz (con
cuatriplicacin de reloj en una variante de AMD, el Am486-DX5).

ING JUAN ALBERTO VAZQUEZ G.


Pgina 85 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

7.2 La estructura de registros.


El 80386 tiene registros de 32 bits en las siguientes categoras:
 Registros de propsito general.
 Registros de segmento.
 Puntero de instrucciones
 Indicadores.
 Registros de control (nuevos en el 80386).
 Registros de direcciones de sistema.
 Registros de depuracin (debug) (nuevos en el 80386).
 Registros de test (nuevos en el 80386).
Todos los registros de los microprocesadores 8086, 80186 y 80286 son un
subconjunto de los del 80386.
La siguiente tabla muestra los registros de la arquitectura base del 80386, que
incluye los registros de uso general, el puntero de instrucciones y el registro de
indicadores. Los contenidos de estos registros y de los selectores del prrafo
siguiente son especficos para cada tarea, as que se cargan automticamente al
ocurrir una operacin de cambio de tarea. La arquitectura base tambin incluye
seis segmentos direccionables directamente, cada uno de 4 gigabytes de tamao
mximo. Los segmentos se indican mediante valores de selectores puestos en los
registros de segmento del 80386. Si se desea se pueden cargar diferentes
selectores a medida que corre el programa.
Registros de la arquitectura base
Tipo Registros Bits 31-16 Bits 15-0 Descripcin
EAX EAX31-16 EAX15-0 = AX Acumulador
EBX EBX31-16 EBX15-0 = BX Base
ECX ECX31-16 ECX15-0 = CX Contador
EDX EDX31-16 EDX15-0 = DX Datos
Uso general
ESI ESI31-16 ESI15-0 = SI Indice Fuente
EDI EDI31-16 EDI15-0 = DI Indice Destino
EBP EBP31-16 EBP15-0 = BP Puntero Base
ESP ESP31-16 ESP15-0 = SP Puntero de Pila
CS CS Segmento de cdigo
SS SS Segmento de pila
DS DS Segmento de datos
De segmento No aplicable: estos registros son de 16 bits
ES DS
FS DS Segmentos de datos extra
GS DS
EIP EIP31-16 EIP15-0 = IP Puntero de instrucciones
Otros
EFlags EFlags31-16 EFlags15-0 = Flags Indicadores

ING JUAN ALBERTO VAZQUEZ G.


Pgina 86 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Registros de propsito general


Los ocho registros de propsito general de 32 bits mantienen datos y
direcciones. Estos registros soportan operandos de 1, 8, 16, 32 y 64 bits y
campos de bits de 1 a 32 bits. Soportan operandos de direcciones de 16 y de 32
bits. Los nombres simblicos son: EAX, EBX, ECX, EDX, ESI, EDI, EBP y ESP.
Los 16 bits menos significativos se pueden acceder separadamente. Esto se hace
usando los nombres AX, BX, CX, DX, SI, DI, BP y SP, que se utilizan de la misma
manera que en los procesadores previos. Al igual que en el 80286 y anteriores,
AX se divide en AH y AL, BX se divide en BH y BL, CX se divide en CH y CL y DX
se divide en DH y DL.
Los ocho registros de uso general de 32 bits se pueden usar para
direccionamiento indirecto. Cualquiera de los ocho registros puede ser la base y
cualquiera menos ESP puede ser el ndice. El ndice se puede multiplicar por 1,
2, 4 u 8.
Puntero de instrucciones
El puntero de instrucciones es un registro de 32 bits llamado EIP, el cual
mantiene el offset de la prxima instruccin a ejecutar. El offset siempre es
relativo a la base del segmento de cdigo (CS). Los 16 bits menos significativos de
EIP conforman el puntero de instrucciones de 16 bits llamado IP, que se utiliza
para direccionamiento de 16 bits.
Registro de indicadores
Es un registro de 32 bits llamado EFlags. Los bits definidos y campos de bits
controlan ciertas operaciones e indican el estado del 80386.
Registros de segmento del 80386
Son seis registros de 16 bits que mantienen valores de selectores de
segmentos identificando los segmentos que se pueden direccionar. En modo
protegido, cada segmento puede tener entre un byte y el espacio total de
direccionamiento (4 gigabytes). En modo real, el tamao del segmento siempre es
64 KB.
Registros de control
El 80386 tiene tres registros de control de 32 bits, llamados CR0, CR2 y CR3,
para mantener el estado de la mquina de naturaleza global. Estos registros,
junto con los registros de direcciones del sistema, mantienen el estado de la
mquina que afecta a todas las tareas en el sistema. Para acceder los registros de
control, se utiliza la instruccin MOV.
Registros de direcciones del sistema
Cuatro registros especiales se definen en el modelo de proteccin del
80286/80386 para referenciar tablas o segmentos. Estos ltimos son:
Registros de depuracin
Al igual que en los procesadores anteriores, el 80386 tiene algunas
caractersticas que simplifica el proceso de depuracin de programas. Las dos
caractersticas compartidas con los microprocesadores anteriores son:
1) El cdigo de operacin de punto de parada INT 3 (0CCh).
2) La capacidad de ejecucin paso a paso que provee el indicador TF.
Lo nuevo en el 80386 son los registros de depuracin. Los seis registros de
depuracin de 32 bits accesibles al programador, proveen soporte para
ING JUAN ALBERTO VAZQUEZ G.
Pgina 87 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

depuracin (debugging) por hardware. Los registros DR0-DR3 especifican los


cuatro puntos de parada (breakpoints). Como los puntos de parada se indican
mediante registros en el interior del chip, un punto de parada de ejecucin de
instrucciones se puede ubicar en memoria ROM o en cdigo compartido por
varias tareas, lo que no es posible utilizando el cdigo de operacin INT 3. El
registro de control DR7 se utiliza para poner y habilitar los puntos de parada y el
registro de estado DR6 indica el estado actual de los puntos de parada. Despus
del reset, los puntos de parada estn deshabilitados. Los puntos de parada que
ocurren debido a los registros de depuracin generan una excepcin 1.
Registros de test
Se utilizan dos registros para verificar el funcionamiento del RAM/CAM
(Content Addressable Memory) en el buffer de conversin por bsqueda (TLB) de
la unidad de paginado del 80386. TR6 es el registro de comando del test,
mientras que TR7 es el registro de datos que contiene el dato proveniente del
TLB. El TLB guarda las entradas de tabla de pgina de uso ms reciente en un
cach que se incluye en el chip, para reducir los accesos a las tablas de pginas
basadas en RAM.

7.3 El conjunto de instrucciones.


La mayora de las aplicaciones diseadas para ordenadores personales con un
procesador x86 posterior al i386 funcionarn en un i386, debido a que los
cambios del conjunto de instrucciones desde el i386 han sido mnimos. Adems
el uso de las nuevas instrucciones puede ser evitado fcilmente. Adaptar un
programa para el i286 es mucho ms difcil.
Debido al alto grado de compatibilidad, la arquitectura del conjunto de
procesadores compatibles con el i386 suele ser llamada arquitectura i386. El
conjunto de instrucciones para dicha arquitectura se conoce actualmente como
IA-32 y pueden ser consultadas con sus especificaciones en la web que se
muestra a continuacin (http://www.it.uc3m.es/ttao/html/isasubset.html).
En el procesador 486 hay nuevas instrucciones que a continuacin se
detallan:
BSWAP reg32 (Byte Swap): Cambia el orden de los bytes. Si antes de BSWAP
el orden era B0, B1, B2, B3, despus de BSWAP el orden ser B3, B2, B1, B0.
CMPXCHG dest, src (Compare and Exchange): Compara el acumulador (AL o
EAX) con dest. Si es igual, dest se carga con el valor de src, en caso contrario, el
acumulador se carga con el valor de dest.
INVD (Invalidate Cache): Vaca el cach interno. Realiza un ciclo de bus
especial que indica que deben vaciarse los cachs externos. Los datos en el cach
que deben escribirse en la memoria se pierden.
INVLPG (Invalidate Translation Look-Aside Buffer Entry): Invalida una entrada
de pgina en el buffer de conversin por bsqueda (TLB). Esta instruccin puede
ser implementada de forma diferente en microprocesadores futuros.
WBINVD (Write Before Invalidate Data Cache): Realiza los cambios indicados
en el cach en la memoria externa y luego lo invalida.
XADD dest, src (Exchange and Add): Suma los operandos fuente y destino
poniendo el resultado en el destino. El valor original del destino se mueve a la
ING JUAN ALBERTO VAZQUEZ G.
Pgina 88 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

fuente. La instruccin cambia los indicadores de acuerdo al resultado de la


suma.
Adems de las instrucciones mencionadas, todos los modelos del 486 excepto
el SX incluyen todas las instrucciones del coprocesador matemtico 80387. Los
ltimos modelos (486DX4, SL) incluyen la instruccin CPUID, que se introdujo
con el procesador Pentium. Adems en el SL se incluye la instruccin RSM (sirve
para volver del modo de manejo de energa).

7.4 Administracin de memoria.


El 80486 contiene el mismo sistema de administracin de memoria que el
80386. Esto incluye una unidad de paginacin para permitir que cualquier
bloque de 4 KB de memoria fsica sea asignado a un bloque cualquiera de 4 KB
de memoria lineal. Los tipos de descriptores son exactamente los mismos que
para el 80386. En realidad, la nica diferencia entre el sistema administrador de
memoria del 80386 y el del 80486 es la paginacin. El sistema de paginacin del
80486 puede deshabilitar el uso de memoria cach para selecciones de pginas
de memoria transformadas, mientras que el 80386 no.
Estos procesadores tienen un cach interno que almacena 8 KB de
instrucciones y datos excepto el DX4 y el Write-back Enhanced DX4 que tienen
16 KB de cach interno. ste es un cach de primer nivel (tambin llamado L1).
El procesador 80486 puede usar un cach de segundo nivel (tambin llamado
L2) fuera del chip para aumentar an ms el rendimiento general del sistema. Si
bien la operacin de estos caches internos y externos son transparentes a la
ejecucin de los programas, el conocimiento de su funcionamiento puede servir
para optimizar el software. El cach est disponible en todos los modos de
funcionamiento del procesador: modo real, modo protegido y modo de manejo del
sistema.
El cach es una memoria especial, llamada memoria asociativa. Dicha
memoria tiene, asociado a cada unidad de memoria una etiqueta que almacena la
direccin de memoria que contiene los datos que estn en la unidad de memoria.
Cuando se desea leer una posicin de memoria mediante esta memoria
asociativa, se comparan todos las etiquetas con esta direccin. Si alguna etiqueta
tiene esta direccin, se dice que hubo un acierto con lo que se puede leer la
informacin asociada a la etiqueta. En caso contrario hay un fallo, con lo que hay
que perder un ciclo de bus para leer el dato que est en memoria externa.
En el caso del 80486, cada unidad de memoria son 16 Bytes. Esta cantidad es
una lnea del cach. Las lneas pueden ser vlidas (cuando contienen datos de la
memoria principal) o invlidas (en este caso la lnea no contiene informacin til).
Como el cach se llena por lneas completas (comenzando por direcciones
mltiplos de 16), hay que tratar de no leer posiciones aleatorias de la memoria,
ya que en este caso, si se leen bytes en posiciones alejadas unas de otras, el
procesador usar cuatro ciclos de bus para leer 16 Bytes (para llenar una lnea)
por cada byte que deseamos leer.
Hay dos clases de cach: write-through y write-back (implementado solamente
en los modelos write-back enhanced DX2 y write-back enhanced DX4). La
diferencia entre las dos radica en el momento de escritura.
ING JUAN ALBERTO VAZQUEZ G.
Pgina 89 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Las primeras siempre escriben en la memoria principal, mientras que las otras
slo escriben cuando se llena el cach y hay que desocupar una lnea. Esto
ltimo aumenta el rendimiento del sistema.
Hay dos nuevos bits del registro de control CR0 que controlan el
funcionamiento del cach: CD (Cache Disable, bit 30) y NW (Not write-through,
bit 29). Cuando CD = 1, el 80486 no leer memoria externa si hay una copia en el
cach, si NW = 1, el 80486 no escribir en la memoria externa si hay datos en el
cach (slo se escribir en el cach). La operatoria normal (cach habilitado) es
CD = NW = 0. Ntese que si CD = NW = 1 se puede utilizar el cach como una
RAM rpida (no hay ciclos externos de bus ni para lectura ni para escritura si
hay acierto en el cach). Para deshabilitar completamente el cach deber poner
CD = NW = 1 y luego ejecutar una de las instrucciones para vaciar el cach.
Existen dos instrucciones para vaciar el cach: INVD y WBINVD.

7.5 Modo protegido.


La especificacin EMS(640 Kb de memoria) de Lotus/Intel/Microsoft, permita
manejar grandes cantidades de datos (ahora no nos parecen tan grandes), pero
no resolva el problema de grandes cantidades de cdigo, ya que el segmento de
cdigo no poda manejarse de esta forma. Esto presentaba problemas no solo
para programas grandes, sino para cualquier intento de multiprogramacin,
cuando varios programas deben coexistir en memoria.
Como siempre, la solucin vino de la mano de otro avance tecnolgico; en este
caso, la aparicin del procesador Intel 80286, que en 1982 inici la era del PC
AT. Este micro permite un acceso a memoria que recuerda vagamente la
especificacin EMS(especificacin de memoria expandida), pero de forma nativa,
ya que los mecanismos estn incluidos en el procesador. Como la poltica de
Intel ha sido mantener compatibilidad con los micros anteriores, el 80286 poda
trabajar en modo real, imitando el funcionamiento del 8088, mientras que la
nueva forma se denomin modo protegido.
El modo protegido utiliza los registros de segmento como punteros a unos
nuevos registros de direccin de 24 bits denominados tablas de descripcin
("descriptor tables"), que permiten acceder a un mximo de 224 (16 MBytes) de
memoria fsica, de forma que los registros de segmento son selectores que
marcan el inicio de una direccin de 24 bits. La memoria que se haca accesible
mediante este sistema se denomin memoria extendida, para distinguirla de la
antigua EMS. La posterior introduccin del 80386, con registros de 32 bits,
permiti direccionar hasta 232 (4 GBytes) de memoria externa.
Los nuevos micros incluyeron otras mejoras que permitan al Sistema
Operativo un funcionamiento ms cmodo y seguro de las aplicaciones cuando
operaba en modo protegido. Los mecanismos pertinentes estaban incluidos en el
hardware o al menos este proporcionaba recursos al SO para realizarlos
cmodamente, aunque desde luego, para sacar provecho de estas mejoras el
Sistema deba estar preparado previamente. El DOS no poda utilizarlas, s en
cambio los sistemas ms avanzados del momento, como OS/2, Unix o Windows.
Bsicamente estas mejoras se referan a dos cuestiones:
 Manejo de memoria virtual
ING JUAN ALBERTO VAZQUEZ G.
Pgina 90 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

 Soporte nativo para multiprogramacin

7.6 Modo virtual.


Esta tcnica consiste en hacer creer al programa que dispone de ms memoria
que la fsicamente disponible en RAM. Este artificio tiene sentido porque en ese
momento (y actualmente), la memoria extendida era mayor que la fsicamente
disponible en muchos sistemas, adems el disco duro era estndar en todos los
equipos.
Esta RAM ficticia se conoce como memoria virtual; una simulacin conocida
de antiguo en el mundo de los mainframes, que fue introducida en la informtica
personal a partir del 80286. Este procesador ya dispona de un controlador
hardware para este menester, de forma que su manejo no significaba una gran
sobrecarga para el Sistema. Su funcionamiento se basa en que cuando una
aplicacin necesita ms espacio y la memoria fsica est agotada, el controlador
de memoria virtual proporciona espacio auxiliar utilizando un fichero de
intercambio ("Swap file") situado en memoria externa (disco duro generalmente
H2), donde se almacena la informacin que no cabe en la RAM.
Hay ocasiones en que la RAM est demasiado fragmentada y el Sistema no
puede asignar suficiente espacio contiguo a una aplicacin. Por ejemplo, el caso
en que Windows muestra el conocido mensajito: " No hay suficiente memoria...
debe cerrar alguna aplicacin en curso... "suele deberse a que no hay suficiente
"memoria grfica" contigua. Es decir: memoria RAM asignada a la tarjeta de
video.
Adems de facilitar la apariencia de ms RAM que la fsicamente disponible,
este mecanismo permite que diversas aplicaciones compartan la misma memoria
fsica. Aunque para ello se requieran constantes maniobras de carga y descarga
("swapping") de trozos del fichero de intercambio a memoria, por lo que el
rendimiento global del sistema se resiente si la desproporcin entre el fichero de
intercambio y la RAM es muy notable.
En el caso de los sistemas operativos de Microsoft, la memoria virtual fue
introducida de forma ms o menos perfeccionada desde la aparicin del primer
Windows 3.1 en 1987. En Windows 95, el Sistema comienza a funcionar
directamente en modo protegido de 32 bits, proporcionando a cualquier
aplicacin un espacio de memoria de hasta 4 GB. (Siempre que est disponible el
adecuado espacio en disco). En este Sistema, el fichero de intercambio puede
crecer a medida de las necesidades hasta ocupar todo el espacio disponible en
disco.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 91 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

ACTIVIDAD:
Realice un cuadro comparativo de las diferencia entre los procesadores que han sido
vistos a lo largo de esta materia.

EVALUACION:
 Qu ventajas presenta el procesador 80386 sobre el 8086?
 Mencione por lo menos tres registros que se hayan agregado en los
procesadores 386 o 486 y que no estn incluidos en el 8086
 Mencione por lo menos tres instrucciones que se hayan agregado en los
procesadores 386 o 486 y que no estn incluidos en el 8086
 A que se le llama modo protegido y cual es la diferencia con el modo
virtual?
 Qu diferencia a la cache de la memoria tradicional (RAM)?

ING JUAN ALBERTO VAZQUEZ G.


Pgina 92 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Capitulo VIII

NUEVAS TECNOLOGIAS

ING JUAN ALBERTO VAZQUEZ G.


Pgina 93 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

INTRODUCCION:

Han pasado ms de 30 aos desde que Intel diseara el primer


microprocesador, siendo la compaa pionera en el campo de la fabricacin
de estos productos, y que actualmente cuenta con ms del 90 por ciento del
mercado. Un tiempo en el que todo ha cambiado enormemente, y en el que
desde aquel 4004 hasta los actuales Core Duo hemos visto pasar varias
generaciones de mquinas que nos han entretenido y nos han ayudado en el
trabajo diario.
Dicen que es natural en el ser humano querer mirar constantemente hacia
el futuro, buscando informacin de hacia dnde vamos, en lugar de en dnde
hemos estado. Por ello, no podemos menos que asombrarnos de las
previsiones que los cientficos barajan para dentro de unos cinco aos.
Segn el Dr. Albert Yu, vicepresidente de Intel y responsable del desarrollo
de los procesadores desde el ao 1984, para el ao 2011 utilizaremos
procesadores cuyo reloj ir a una velocidad de 10 GHz (10.000 MHz),
contendrn mil millones de transistores y ser capaz de procesar cerca de
100 mil millones de instrucciones por segundo. Un futuro prometedor, que
permitir realizar tareas nunca antes pensadas.

OBJETIVO:

Daremos a conocer al educando las nuevas tecnologas que se avecinan


y las caractersticas que presentan.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 94 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

NUEVAS TECNOLOGIAS

En este capitulo haremos un recuento de los procesadores que Intel ha sacado


al mercado y que han convivido con nosotros desde hace tantos aos han ido
evolucionando a pasos agigantados. No se puede negar que la empresa Intel ,ha
ayudado a definir lo que es la tecnologa actual y sin duda definir la que
conozcamos dentro de unos aos.
Te pido que me acompaes en este viaje hacia el futuro
Procesador Pentium
El 19 de octubre de 1992, Intel anunci que la quinta generacin de su lnea
de procesadores compatibles (cuyo cdigo interno era el P5) llevara el nombre
Pentium en vez de 586 u 80586, como todo el mundo estaba esperando. Esta fue
una estrategia de Intel para poder registrar la marca y as poder diferir el nombre
de sus procesadores del de sus competidores (AMD y Cyrix principalmente).
 La ms importante es su segundo encausador de segmento (pipeline) de
ejecucin para conseguir desempeo SUPERESCALAR (2 encausadores de
segmento en lugar de 1 solo, juntos pueden ejecutar 2 instrucciones al
mismo tiempo por reloj).
 Pentium tiene una Unidad Encausadora de Segmento (Pipelined) de Punto
Flotante. Puede ejecutar instrucciones que no son de Punto Flotante e
instrucciones que s lo son al mismo tiempo. Debido a que las
instrucciones de Punto Flotante son ejecuciones en la Unidad de Punto
Flotante, las instrucciones aritmticas-lgicas de la ALU pueden usar todo
el encausador de segmento.
 Cache integrada de 16K. La cache de nivel 1 (L1) en el chip, fue duplicada,
con 8KB dedicados a cdigo y otros 8KB para datos.
 Prediccin de saltos con una tabla de saltos en el chip, ha sido adherida
para aumentar el desempeo en construcciones con ciclos.
 Extensiones han sido adheridas para hacer al modo 8086 virtual ms
eficiente, y para permitir pginas de 4 Mbytes, as como tambin pginas
de 4Kbytes
 Los registros principales son todava de 32 bits, pero los caminos de datos
internos, y el bus de datos externo se agrand a 64 bits.
 El Controlador de Interrupciones Programable Avanzado, APIC (Advanced
Programmable Interrupt Controller) fue adherido para soportar sistemas
con mltiples procesadores Pentium, nuevos pines y un modo especial
(procesamiento dual) fue designado para soportar 2 sistemas de
procesadores separados.
 La versin Pentium P55C es la primera CPU Intel en incluir instrucciones
MMX. MMX (primero por Extensin MultiMedia, luego Intel dijo que sera
Extensin de Matriz Matemtica)

ING JUAN ALBERTO VAZQUEZ G.


Pgina 95 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Procesador Pentium Pro


Es la sexta generacin de arquitectura x86 de los microprocesadores de Intel,
cuya meta era remplazar al Intel Pentium en toda la gama de aplicaciones. Pero
luego se centr, como chip, en el mundo de los servidores y equipos de
sobremesa de gama alta. Las caractersticas destacables de este procesador son
las siguientes:
 Disponible a 150 MHz, 166 MHz, 180 MHz, y 200 MHz de velocidad de
ncleo.
 Compatibilidad binaria con aplicaciones corriendo en miembros previos de
la familia de microprocesadores Intel.
 Optimizado para aplicaciones de 32 bits corriendo en sistemas Operativos
avanzados de 32 bits.
 El paquete simple incluye: CPU Pentium Pro, cache y sistema de interface
de bus.
 Escalable hasta a 4 procesadores y 4GB de memoria.
 Separados un sistema de bus externo dedicado y un bus interno dedicado a
la cache de alta velocidad.
 Caractersticas de integridad de datos y confiabilidad, recuperacin de
anlisis fallido y chequeo redundante funcional.
 El procesador Intel Pentium Pro tiene una arquitectura superescalar de
tres caminos, que significa que puede ejecutar 3 instrucciones por reloj
(incorporando an ms paralelismo que el procesador Pentium).
 El Pentium Pro provee Ejecucin Dinmica (anlisis de flujo de micro-
datos, ejecucin fuera de orden, prediccin de saltos y ejecucin
especulativa) en una implementacin superescalar. Tres unidades
decodificadoras de instrucciones trabajan en paralelo para decodificar el
cdigo objeto en operaciones ms pequeas llamadas microoperaciones.
Estas van al Conjunto de Instrucciones (Instruction Pool), y, cuando las
interdependencias lo permitan, pueden ser ejecutadas fuera de orden por
las 5 unidades de ejecucin paralela (2 enteras, 2 de punto flotante y una
unidad de interface con memoria). La Unidad de Retiro retira
microoperaciones completadas en su orden original del programa,
tomando cuenta de cualquier salto.
 El procesador Pentium Pro tiene las mismas 2 caches de 8 Kbytes L1 en el
chip que el procesador Pentium, y adems tiene una cache L2 de 256
Kbyte que est en el mismo paquete, y est fuertemente conectada a la
CPU, usando un bus dedicado de 64 bit a velocidad de reloj mxima.
 La cache L1 es de dos puertos, la cache L2 soporta hasta 4 accesos
concurrentes, y el bus de datos externos de 64 bits es orientado a
transaccin, lo que significa que cada acceso es manejado como un pedido
y respuesta por separado, con numerosos pedidos permitidos mientras se
espera una respuesta. Estas caractersticas paralelas para el acceso de
datos trabajan con las capacidades de ejecucin paralelo para proveer una
arquitectura no-bloqueable en la cual el procesador es aprovechado
completamente y el desempeo es mejorado.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 96 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

 La Pentium Pro tambin tiene un bus de direcciones expandido de 36 bit,


dando un espacio de direccin fsica de 64 Gbytes.
Procesador Pentium II
El Pentium II es un microprocesador con arquitectura x86, introducido en el
mercado el 7 de mayo de 1997. Est basado en una versin modificada del
ncleo P6, usado por primera vez en el Intel Pentium Pro.
Los cambios fundamentales respecto a ste ltimo fueron mejorar el
rendimiento en la ejecucin de cdigo de 16 bits, aadir el conjunto de
instrucciones MMX y eliminar la memoria cach de segundo nivel del ncleo del
procesador, colocndola en una tarjeta de circuito impreso junto a ste.
 El Pentium II corre a velocidades de 450, 400, 350, 333, 300, 266, y 233
MHz.
 Conocida inicialmente como el chip Klamath , usa esencialmente la misma
arquitectura de ncleo que el procesador Pentium Pro. A este ncleo Intel
le sum tecnologa MMX y esquemas que aceleran el desempeo bajo
Sistemas Operativos de 16 bits. La capacidad de Pentium Pro para correr
cdigo de 32-bit queda intacta. El Procesador Pentium II combina tres
tecnologas: tecnologa MMX, Ejecucin Dinmica y Arquitectura de Bus
Independiente Dual.
 Dos buses independientes conforman la Arquitectura de Bus Dual
Independiente (D.I.B): un bus del procesador a la cache L2 y el bus del
procesador al sistema de memoria principal. Cada uno tiene 8 bytes de
amplitud con lo que se duplica el nmero de canales disponibles para la
transmisin de datos. El bus dedicado para cach L2 elimina el trfico del
bus del sistema congestionado. El bus del sistema canalizado hace posible
el procesamiento de transacciones en paralelo, lo que acelera el flujo de
informacin dentro del sistema e incrementa el rendimiento general.
Ambos buses se pueden utilizar de manera simultnea, incrementando de
forma considerable la cantidad de datos que se pueden transferir dentro y
fuera del procesador.
Procesador Pentium II Xeon
Basado en la arquitectura del procesador Pentium II, el procesador Pentium II
Xeon agrega un mayor rendimiento, facilidad de uso y confiabilidad en fases
crtica, ya que estaban destinados a servidores y estaciones de trabajo.
Procesador Pentium III
El Pentium III es un microprocesador de arquitectura i686, el cual es una
modificacin del Pentium Pro. Fue lanzado el 26 de febrero de 1999.
Las primeras versiones eran muy similares al Pentium II, siendo la diferencia
ms importante la introduccin de las instrucciones para decodificacin de
videos MPEG2. Al igual que con el Pentium II, exista una versin Celeron de bajo
presupuesto y una versin Xeon para quienes necesitaban de gran poder de
cmputo.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 97 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Procesador Pentium 4
El Pentium 4 (errneamente escrito Pentium IV) es un microprocesador de
sptima generacin basado en la arquitectura x86. Es el primer microprocesador
con un diseo completamente nuevo desde el Pentium Pro de 1995. El Pentium 4
original, denominado Willamette, trabajaba a 1,4 y 1,5 GHz; y fue lanzado en
noviembre de 2000.
El procesador Pentium 4 no mejor el viejo diseo P6 segn las dos
tradicionales formas para medir el rendimiento: velocidad en el proceso de
enteros u operaciones de coma flotante. La estrategia de Intel fue sacrificar el
rendimiento de cada ciclo para obtener a cambio mayor cantidad de ciclos por
segundo y una mejora en las instrucciones de decodificacin de video. Al igual
que la Pentium II y la Pentium III, el Pentium 4 se comercializa en una versin
para equipos de bajo presupuesto (Celeron), y una orientada a servidores de
gama alta (Xeon).
Las distintas versiones son: Willamette, Northwood, Extreme Edition, Prescott
y Cedar Mill.
Procesador Pentium M
Introducido en marzo de 2003, el Intel Pentium M es un microprocesador con
arquitectura x86 (i686) diseado y fabricado por Intel. El procesador fue
originalmente diseado para su uso en computadoras porttiles debido a que
funciona con un consumo medio muy bajo de energa y desprende mucho menos
calor que los procesadores de ordenadores de sobremesa, funciona a una
frecuencia de reloj ms baja que los procesadores Pentium 4 normales, pero con
un rendimiento similar. Su nombre en clave antes de su introduccin era
Banias. Todos los nombres clave del Pentium M son lugares de Israel, la
ubicacin del equipo de diseo del Pentium M.
Los procesadores Intel Pentium M forman parte integral de la plataforma Intel
Centrino
Procesador Pentium D
Pentium D fueron introducidos por Intel en 2005. Los chips Pentium D
consisten bsicamente en dos procesadores Pentium 4 (de ncleo Prescott)
ubicados en una nica pieza de silicio con un proceso de fabricacin de 90 nm.
El nombre en clave del Pentium D antes de su lanzamiento era Smithfield.
Incluye una tecnologa DRM (Digital rights management) para hacer posible
un sistema de proteccin anticopia de la mano de Microsoft.
Todos los Pentium D incluyen la tecnologa EM64T, que les permite trabajar
con datos de 64 bits nativamente e incluyen soporte para la tecnologa Bit NX.
Existen variantes del Pentium D:
 Pentium D 805, a 2,6 GHz (el nico Pentium D con FSB de 533 MHz)
 Pentium D 820, a 2,8 GHz con FSB de 800 MHz
 Pentium D 830, a 3,0 GHz con FSB de 800 MHz
 Pentium D 840, a 3,2 GHz con FSB de 800 MHz
 Pentium D Extreme Edition, a 3,2 GHz, con Hyper Threading y FSB de
800 MHz.
 Pentium D 915, a 2,8 GHz con FSB de 800 MHz
 Pentium D 920, a 2,8 GHz con FSB de 800 MHz
ING JUAN ALBERTO VAZQUEZ G.
Pgina 98 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

 Pentium D 925, a 3,0 GHz con FSB de 800 MHz


 Pentium D 930, a 3,0 GHz con FSB de 800 MHz
 Pentium D 935, a 3,2 GHz con FSB de 800 MHz
 Pentium D 940, a 3,2 GHz con FSB de 800 MHz
 Pentium D 945, a 3,4 GHz con FSB de 800 MHz
 Pentium D 950, a 3,4 Ghz con FSB de 800 MHz
 Pentium D 960, a 3,6 Ghz con FSB de 800 MHz
 Pentium D 955 Extreme Edition, a 3,466 con Hyperthreading, un FSB
de 1066 MHz y una cach de 2 MB L2 en cada nucleo.
 Pentium D Extreme Edition 965, a 3,73GHz con Hyperthreading, un
FSB de 1066 MHz FSB y cache de 2 MB L2 en cada ncleo.
Procesador Core 2 Duo y Core 2 Quad
ltimamente se libero la gama Core 2 Duo y Core 2 Quad, los cuales engloban
dos procesadores fsicos dentro de uno solo, obteniendo resultados
impresionantes.
En un futuro veremos procesadores con 12, 32 y 80 ncleos, algo que nunca
antes habamos credo.

ACTIVIDAD:
Realice una investigacin profunda de los procesadores Dual core y Quad core y
presntela a el grupo en una exposicin..

EVALUACION:
 A que velocidad trabaja el procesador Pentium IV?
 Qu diferencia existe entre la velocidad de trabajo del Pentium IV y el
CuadCore?
 Qu diferencia existe entre el procesador Pentium 4 y el Pentium D?
 A que se refieren las instrucciones MMX?
 Cul es la velocidad ms alta en los procesadores que existen
actualmente?

ING JUAN ALBERTO VAZQUEZ G.


Pgina 99 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

APNDICE
SET DE INSTRUCCIONES
A
En la siguiente lista de instrucciones, para la descripcin y su sintaxis se recurre a
las siguientes abreviaturas:

acum uno de los acumuladores: AX o AL.


reg cualquiera de los registros
segreg uno de los registros de regmento
r/m uno de los operandos generales: registro, memoria, basado,
indexado o basado-indexado
inmed constante o smbolo de 8 o 16 bits
mem un operando de memoria: smbolo, etiqueta, variable.
etiqueta etiqueta de instrucciones.
src fuente en operaciones de cadena
dest destino en operaciones de cadena.

8086/8088
AAA Ajuste ASCII para adicin.
AAD Ajuste ASCII para divisin.
AAM Ajuste ASCII para multiplicacin.
AAS Ajuste ASCII para divisin.
ADC acum, inmed Suma con acarreo.
r/m,inmed
r/m, reg
reg, r/m
ADD acum,inmed Suma.
r/m,inmed
r/m, reg
reg, r/m
AND acum,inmed Operacin AND a nivel bit.
r/m,inmed
r/m, reg
reg, r/m
CALL etiqueta Llamado.
r/m
CBW Convierte byte a palabra.
CLC Limpia bandera de acarreo.
CLD Limpia bandera de direccin.
CLI Limpia bandera de interrupcin.
CMC Complementa bandera de acarreo.
CMP acum,inmed Comparacin
r/m,inmed
r/m, reg
ING JUAN ALBERTO VAZQUEZ G.
Pgina 100 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.
reg, r/m
CMPS src,dest Comparacin de cadenas.
CMPSB Compara cadenas byte por byte.
CMPSW Compara cadenas palabra por palabra.
CWD Convierte palabra a palabra doble.
DAA Ajuste decimal para adicin.
DAS Ajuste decimal para substraccin.
DEC r/m Decremento.
reg
DIV r/m Divisin.
ESC inmed, r/m Escape con 6 bits.
HLT Alto.
IDIV r/m Divisin entera.
IMUL r/m Mutiplicacin entera.
IN accum,inmed Entrada desde puerto.
acum, DX
INC r/m Incremento.
reg
INT 3 Interrupcion 3 codificada como un byte.
INT inmed Interrupcin 0-255.
INTO Interrupcin en overflow.
IRET Retorno de interrupcin.
JMP etiqueta Brinco incondicional.
r/m
J(condicin) etiqueta Brinca de acuerdo a las condiciones: A (arriba), AE (arriba o igual),
B (siguiente), BE (siguiente o igual), C (acarreo), CXZ (CX en cero),
E (igual), G (mayor), GE (mayor o igual), L (menor), LE (menor o
igual), NA (no anterior), NAE (no anterior o igual), NB (no
siguiente), NBE (no siguiente o igual), NC (no acarreo), NE (no
igual), NG (no mayor), NGE (no mayor o igual), NL (no menor),
NLE (no menor o igual), NO (no sobreflujo), NP (no paridad), NS
(no signo), NZ (no cero), O (sobreflujo), P (paridad), PE (paridad
par), PO (paridad impar), S (signo), Z (cero).
LAHF Carga AH con las banderas.
LDS r/m Carga DS.
LEA r/m Carga la direccin.
LES r/m Carga ES.
LOCK Cierra bus.
LODS src Carga cadena.
LODSB Carga byte de cadena en AL.
LODSW Carga palabra de la cadena en AX.
LOOP etiqueta Ciclo.
LOOPE etiqueta Ciclo mientras igual.
LOOPNE etiqueta Ciclo mientras no igual.
LOOPNZ etiqueta Ciclo mientras no cero.
LOOPZ etiqueta Ciclo mientras cero.
MOV acum,mem Mueve un valor del segundo al primer operando
ING JUAN ALBERTO VAZQUEZ G.
Pgina 101 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.
r/m,inmed
mem, acum
r/m, reg
r/m,segreg
reg, inmed
reg,r/m
segreg,r/m
MOVS dest, src Mueve cadena.
MOVSB Mueve cadena byte por byte.
MOVSW Mueve cadena palabra por palabra.
MUL r/m Multiplicacin.
NEG r/m Niega (complemento a 2).
NOP Operacin ociosa.
NOT r/m Invierte valores de bits (complemento a 1).
OR acum, inmed Operacin OR a nivel de bit.
r/m,inmed
r/m, reg
reg,r/m
OUT DX, accum Salida por el puerto dado por el primer operando.
inmed, acum (inmediato de 8 bits)
POP r/m Recupera valor de la pila.
reg
segreg
POPF Recupera banderas.
PUSH r/m Guarda valor en la pila.
reg
segreg
PUSHF Guarda banderas.
RCL r/m,1 Rotacin a la izquierda con acarreo.
r/m,CL
RCR r/m, 1 Rotacin a la derecha con acarreo.
r/m, CL
REP Repite.
REPE Repite si igual.
REPNE Repite si no igual.
REPNZ Repite si no cero.
REPZ Repite si cero.
RET [inmed] Regresa despus de recuperar bytes de la pila.
ROL r/m,1 Rotacin a la izquierda.
r/m, CL
ROR r/m,1 Rotacin a la derecha.
r/m, CL
SAHF Carga banderas con el valor de AH.
SAL r/m, 1 Desplazamiento aritmtico a la izquierda.
r/m, CL
SAR r/m, 1 Desplazamiento aritmtico a la derecha.
r/m, CL
ING JUAN ALBERTO VAZQUEZ G.
Pgina 102 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.
SBB acum, inmed Subtraccin con acarreo.
r/m,inmed
r/m, reg
reg,r/m
SCAS dest Explora cadena.
SCASB Explora cadena para el byte en AL.
SCASW Explora cadena por la palabra en AX.
SHL r/m, 1 Dezplazamiento a la izquierda.
r/m, CL
SHR r/m, 1 Dezplazamiento a la derecha.
r/m, CL
STC Fija bandera de acarreo.
STD Fija bandera de direccin.
STI Fija bandera de interrupcin.
STOS dest Guarda cadena.
STOSB Guarda byte en AL en la cadena.
STOSW Guarda palabra en AX en la cadena.
SUB accum, inmed Substraccin.
r/m,inmed
r/m, reg
reg,r/m
TEST acum, inmed Comparacin.
r/m,inmed
r/m, reg
reg,r/m
WAIT Aguarda.
XCHG acum, reg Intercambio.
r/m,inmed
r/m, reg
reg,r/m
XLAT Traduce.
XOR acum, reg Operacin XOR a nivel bit.
r/m,inmed
r/m, reg
reg,r/m

8087
F2XM1 Calcula 2x-1.
FABS Toma valor absoluto del tope de la pila.
FADD mem Suma real.
FADD ST, ST(i) Suma real desde la pila.
FADD ST(i), ST Suma real a la pila.
FADDP ST(i), ST Suma real y saca de pila.
FBLD mem Carga un decimal empacado de 10 bytes en la pila.
FBSTP mem Almacena un decimal empacado de 10 bytes y saca de pila.
FCHS Cambia signo del valor en el tope de la pila.
ING JUAN ALBERTO VAZQUEZ G.
Pgina 103 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.
FCLEX Borra las excepciones despus de un WAIT.
FCOM Compara real.
FCOM ST Compara real con el tope de la pila.
FCOM ST(i) Compara real con la pila.
FCOMP Compara real y saca de pila.
FCOMP ST Compara real con el tope de la pila y saca de pila.
FCOMP ST(i) Compara real con el tope de la pila y saca.
FCOMPP Compara real y saca dos valores de la pila.
FDECSTP Decrementa el apuntador de la pila.
FDISI Deshabilita las interrupciones depus de un WAIT.
FDIV mem Divisin real.
FDIV ST, ST(i) Divisin real desde la pila.
FDIV ST(i), ST Divisin real en la pila.
FDIVP ST(i), ST Divisin real sacando valor de la pila.
FDIVR Divisin real invertida.
FDIVR mem Divisin real invertida desde memoria.
FDIVR ST, ST(i) Divisin real invertida desde la pila.
FDIVR ST(i), ST Divisin real invertida desde la pila.
FDIVRP ST(i), ST Divisin con un real invertido y sacando valor de la pila.
FENI Habilita interrupciones despus de un WAIT.
FFREE Libera elemento de la pila.
FIADD mem Suma entera de un nmero de 2 4 bytes.
FICOM mem Compara enteros de 2 4 bytes y saca de la pila.
FICOMP mem Compara entero de 2 4 bytes y saca de pila.
FIDIV mem Divisin entera.
FDIVR mem Diviisn entera invertida.
FILD mem Carga un entero de 2, 4 u 8 bytes en la pila.
FIMUL mem Multiplicacin entera de 2 4 bytes.
FINCSTP Incrementa el apuntador de la pila.
FINIT Inicializa el procesador despus de WAIT.
FIST mem Almacena entero de 2 4 bytes.
FISTP mem Almacena entero de 2, 4 u 8 bytes y saca de la pila.
FISUB mem Resta entero de 2 4 bytes.
FISUBR mem Resta entera de 2 4 bytes invertida.
FLD mem Carga real de 4, 8 10 bytes en la pila.
FLD1 Pone +1.0 en el tope de la pila.
FLDCW mem Carga la palabra de control.
FLDENV mem Carga entorno 8087 (14 bytes).
FLDL2E Carga log2 e en el tope de la pila.
FLDL2T Carga log2 10 en el tope de la pila.
FLDLG2 Carga log10 2 en el tope de la pila.
FLDLN2 Carga loge 2 en el tope de la pila.
FLDPI Carga en el tope de la pila.
FLDZ Carga +0.0 en el tope de la pila.
FMUL Multiplicacin real.
MUL mem Multiplicacin real desde memoria.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 104 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.
FMUL ST, ST(i) Multiplica real desde pila.
FMUL ST(i), ST Multiplica real a la pila.
FMULP ST, ST(i) Multiplica real y saca de la pila.
FNCLEX Borra excepciones sin WAIT.
FNDISI Inhabilita interrupciones sin WAIT.
FNENI Habilita interrupciones sin WAIT.
FNINIT Inicializa procesador sin WAIT.
FNOP Operacin nula.
FNSAVE mem Salva estado 8087 (94 bytes) sin WAIT.
FNSTCW mem Almacena la palabra de control sin WAIT.
FNSTENV mem Guarda el entorno 8087 sin WAIT.
FNSTSW mem Almacena el estado 8087 sin WAIT.
FPATAN Funcin arcotangente parcial.
FPREM Residuo parcial.
FPTAN Funcin tangente parcial.
FRNDINT Redondea a entero
FRSTOR mem Restablece estado 8087 (94 bytes)
FSAVE mem Conserva el estado 8087 (94 bytes).
FSCALE Escala
FSQRT Raz cuadrada
FST Almacena real.
FST ST Almacena real desde el tope de la pila.
FST ST(i) Almacena real desde la pila.
FSTCW mem Almacena palabra de control con WAIT.
FSTENV mem Guarda el entorno 8087 despus de WAIT.
FSTP mem Guarda real de 4, 8 10 bytes y saca de la pila.
FSTSW mem Almacena la palabra de estado depus de WAIT.
FSUB Substrae real.
FSUB mem Substrae real desde memora.
FSUB ST, ST(i) Substrae real desde la pila.
FSUB ST(i), ST Substrae real a la pila.
FSUBP ST, ST(i) Substrae real y saca de pila.
FSUBR Substraccin real invertida.
FSUBR mem Substraccin real invertida desde memoria.
FSUBR ST, ST(i) Substraccin real invertida desde la pila.
FSUBR ST(i), ST Substraccin real invertida a la pila.
FSUBRP ST(i), ST Substraccin real invertida a la pila y saca.
FTST Prueba el tope de la pila.
FWAIT Aguarda que la ltima operacin 8087 termine.
FXAM Examina el elemento del tope de la pila.
FXCH Intercambia contenido de los elementos de la pila.
FFREE ST Intercambia el elemento del tope de la pila.
FFREE ST(i) Intercambia el elemento del tope de la pila y el i-simo elemento.
FXTRACT Extrae el exponente y significando.
FYL2X Calcula Y log2 X.
FYL2PI Calcula Y log2 (x+1)

ING JUAN ALBERTO VAZQUEZ G.


Pgina 105 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

80186/80188/80286 (modo no protegido)


BOUND reg, mem Detecta valor fuera de rango.
ENTER inmed16, inmed8 Hace elemento en la pila para llamada a
procedimiento.
IMUL reg, inmed Multiplicacin entera.
reg, r/m, inmed
INS mem, DX Entrada de cadena desde el puerto DX.
INSB mem,DX Entrada de cadena de bytes desde el puerto DX.
INSW mem DX Entrada de cadena de palabras desde el puerto DX.
LEAVE Deja procedimeinto.
OUTS DX, mem Salida de cadena de bytes o palabras al puerto DX.
OUTSB DX, mem Salida de cadena de bytes al puerto DX.
OUTSW DX, mem Salida de cadena de palabras al puerto DX.
POPA Saca todos los registros de la pila.
PUSH inmed Introduce a la pila
PUSHA Introduce todos los registros.
RCL r/m, inmed Rotacin a la izquierda con acarreo
RCR r/m, inmed Rotacin a la derecha con acarreo.
ROL r/m, inmed Rotacin a la izquierda.
ROR r/m, inmed Rotacin a la derecha.
SAL r/m, inmed Desplazamiento aritmtico a la izquierda.
SAR r/m, inmed Desplazamiento aritmtico a la derecha.
SHL r/m, inmed Desplazamiento a la izquierda.
SHR r/m, inmed Desplazamiento a la derecha.

80286 (modo protegido)


ARPL mem, reg Ajusta peticin de nivel de privilegio.
CLTS Limpia bandera de conmutacin de tareas.
LAR reg, mem Carga derechos de acceso.
LGDT mem Carga la tabla de descriptores globales (8 bytes).
LIDT mem Carga tabla de descriptores de interrupciones (8 bytes).
LLDT mem Carga la tabla de descriptores locales.
LMSW mem Carga la palabra de estado.
LSL reg, mem Carga el lmite del segmento.
LTR mem Carga registro de tareas.
SGDT mem Guarda la tabla de descriptores locales (8 bytes).
SIDT mem Guarda tabla de descriptores de interrupciones (8 bytes).
SMSW mem Guarda la palabra de estado.
STR mem Guarda registro de tareas.
VERR mem Verifica acceso de lectura.
VERW mem Verifica acceso de escritura.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 106 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

80287
FSETPM Fija modo protegido.
FSTSW AX Almacena palabra de estado en AX (aguarda).
FNSTSW AX Almacena palabra de estado en AX (no aguarda).

ING JUAN ALBERTO VAZQUEZ G.


Pgina 107 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

APNDICE
DIAGRAMAS Y CIRCUITOS
b
DIAGRAMA DE TEMPORIZACION 8088/8086

ING JUAN ALBERTO VAZQUEZ G.


Pgina 108 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

Glosario de trminos:

ABS: Siglas de Anti Blockier System, o Anti-Lock Brake System, sistema de frenos
antibloqueo. El sistema evita los bloqueos de las ruedas durante la frenada.
Consta de sensores inductivos colocados en cada rueda que miden las
revoluciones de las mismas.
Acarreo: Dgito que ha sido transferido de una columna de dgitos a otra columna
de dgitos de mayor potencia.
Atril: Mueble en forma de plano inclinado que puede llevar o no pie, que sirve
para sostener libros o papeles abiertos, para poder leer con mas comodidad.
Bucle: Sentencia que se realiza repetidas veces a un trozo aislado de cdigo,
hasta que la condicin se cumpla.
Buffer: Ubicacin de la memoria en una computadora o en un instrumento.
Cdigo binario: Sistema de codificacin de nmeros o letras que emplea
secuencias de dgitos binarios (0 y 1). La mayora de estos sistemas utilizaba una
secuencia de 8 dgitos binarios o bits para representar una letra o dgito decimal
Coprocesador: Microprocesador de un ordenador utilizado como suplemento de
las funciones del procesador principal.
Directiva: (Pseudoinstruccion) Instruccin del motor de bsqueda que utiliza un
formato determinado para solicitar una funcin.
Dplex: Sistema de telecomunicaciones que es capaz de enviar y recibir
mensajes de forma simultnea.
Flanco: En una seal digital, se denomina flanco a la transicin del nivel bajo al
alto (flanco de subida) o del nivel alto al bajo (flanco de bajada)
Flujo secuencial: Conjunto de instrucciones secuenciales que son ejecutadas por
un nico procesador.
Multiplexor: Elemento o dispositivo que permite la transmisin de varias seales
dentro de un mismo enlace o lnea.
Offset: Entero que indica la distancia (desplazamiento) desde el inicio del objeto
hasta un punto o elemento dado, presumiblemente dentro del mismo objeto.
Ortogonalidad: Propiedad de las CPU. Se dice que un conjunto de instrucciones
es ortogonal cuando se puede utilizar cualquier modo de direccionamiento en
cualquier instruccin.
Paginar: Leer datos de un archivo en la memoria fsica, de pgina en pgina.
Paralelismo: Capacidad que permite a varios programas ejecutarse a la vez
sobre una misma mquina.
PDA: Personal Digital Assistant (Asistente Digital Personal), es un computador de
mano originalmente diseado como agenda.
Puerto: Forma genrica de denominar a una interfaz por la cual diferentes tipos
de datos pueden ser enviados y recibidos.
Rutina: Procedimiento (en este caso un conjunto de cdigo) que es usado cada
vez que se le llame. Una rutina al ser llamada dentro de un programa hace que el
cdigo principal se detenga y se dirija a ejecutar el cdigo de la rutina, en
cambio cuando se llama a una macro, el ensamblador llama al cdigo de la

ING JUAN ALBERTO VAZQUEZ G.


Pgina 109 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

macro y lo implanta donde fue llamado, aumentando as el cdigo fuente y por


consiguiente el objeto.
Segmentacin: La segmentacin (en ingls pipelining, literalmente oleoducto) es
un mtodo por el cual se consigue aumentar el rendimiento de algunos sistemas
electrnicos digitales. Es aplicado, sobre todo, en microprocesadores
Spool: Dispositivo para almacenar temporalmente los datos enviados a un
dispositivo de salida hasta que ste quede libre.
Transceptor: Dispositivo que realiza, dentro de una misma caja o chasis, funciones
tanto de trasmisin como de recepcin, utilizando componentes de circuito
comunes para ambas funciones.
Termostato: Componente de un sistema de control que abre o cierra un circuito
elctrico en funcin de la temperatura.

ING JUAN ALBERTO VAZQUEZ G.


Pgina 110 de 111
CESVER Material Bibliogrfico de Apoyo Didctico
Ing. Sistemas Computacionales Microprocesadores 8 CUAT.

BIBLIOGRAFIA:
Los Microprocesadores Intel. Barry B. Brey. Prentice Hall, 1994.
Programa micro 2.0: Aprendizaje de microprocesadores con PC
Autor Antonio Garca del lamo
Publicado por Marcombo, 1996

REFERENCIAS:
http://www.elrinconcito.com/articulos/microprocesador/micros.htm
http://www.ucontrol.com.ar/wiki/index.php/El_microcontrolador
http://www.monografias.com/trabajos12/microco/microco.shtml
https://www.unoweb-s.uji.es/IG09/lista0/theList/Cap2Buses.pdf
http://www.monografias.com/trabajos32/microprocesador-
8085/microprocesador-8085.shtml
http://lab2micro.blogspot.com/
http://ael.110mb.com/informatica/Software%20de%20Sistemas(compilador
es,%20ensambladores..).doc
http://weblidi.info.unlp.edu.ar/catedras/arquitectura1/apuntes/Apunte%20Assembler
.doc
http://ael.110mb.com/informatica/8086%20ASSMBLR.DOC
http://www.twilightstudios.net/tutoriales/ensamblador/ENS_INSTR286.html
http://www.speccy.org/wiki/doku.php?id=cursos:ensamblador:lenguaje_1
http://www.wikiciencia.org/informatica/hardware/puertos/index.php
http://perso.wanadoo.es/pictob/comserie.htm
http://electricidad.utpuebla.edu.mx/Manuales/5tocuatrimestreEEI/Control%
20Logico%20Programable.pdf
http://diegolevis.com.ar/ttp/libroinformatica.pdf
http://www.alpertron.com.ar/8088.HTM
http://members.tripod.com/wingsze_liu/trabajos_A8.htm
http://www.angelfire.com/darkside/thc/espanol/8088-86.html
http://www.it.uc3m.es/ttao/html/isasubset.html
http://www.led.uc.edu.py/micro2/tp1/pentium/

www.cesver.edu.mx
Tel. 01-228-8182038 01-228-8182039
Serafn Olarte 43 Col. Mrtires de Chicago. Xalapa ver

ING JUAN ALBERTO VAZQUEZ G.


Pgina 111 de 111

Potrebbero piacerti anche