Professional Documents
Culture Documents
MATERIAL DE APOYO
BIBLIOGRAFICO
Licenciatura:
INGENIERIA EN SISTEMAS
COMPUTACIONALES
Asignatura:
MICROPROCESADORES
Cuatrimestre:
OCTAVO
INDICE
PRESENTACION
INTRODUCCION
MANEJO DE LA ANTOLOGIA
GLOSARIO
BIBLIOGRAFIA
REFERENCIAS
INTRODUCCION
MANEJO DE LA ANTOLOGA
Capitulo I
INTRODUCCION A LOS
MICROPROCESADORES
INTRODUCCION:
OBJETIVO:
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)
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
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.
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.
ACTIVIDAD:
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.
Capitulo II
ESTRUCTURA DE UN SISTEMA
CON MICROPROCESADORES
INTRODUCCION:
OBJETIVO:
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.
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.
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.
Capitulo III
BASES DE PROGRAMACION.
INTRODUCCION:
OBJETIVO:
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.
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.
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.
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.
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.
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.
Capitulo IV
ESCRITURA DE PROGRAMAS
INTRODUCCION:
OBJETIVO:
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.
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.
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
-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
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.
; 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.
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
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
Capitulo V
INTERFASE CON DISPOSITIVOS
EXTERNOS
INTRODUCCION:
OBJETIVO:
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).
Este registro es solo de lectura, es decir, no se puede variar este registro por
software.
0000 0001 1
0101 0001 1
0101 0101 0
0000 0000 0
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
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?
Capitulo VI
PROCESADORES
INTEL
8086 Y 8088
INTRODUCCION:
OBJETIVO:
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.
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.
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?
Capitulo VII
PROCESADORES
PROCESADORES
INTEL
80386 Y 80486
INTRODUCCION:
OBJETIVO:
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.
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)?
Capitulo VIII
NUEVAS TECNOLOGIAS
INTRODUCCION:
OBJETIVO:
NUEVAS TECNOLOGIAS
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.
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?
APNDICE
SET DE INSTRUCCIONES
A
En la siguiente lista de instrucciones, para la descripcin y su sintaxis se recurre a
las siguientes abreviaturas:
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.
80287
FSETPM Fija modo protegido.
FSTSW AX Almacena palabra de estado en AX (aguarda).
FNSTSW AX Almacena palabra de estado en AX (no aguarda).
APNDICE
DIAGRAMAS Y CIRCUITOS
b
DIAGRAMA DE TEMPORIZACION 8088/8086
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
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