You are on page 1of 14

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

PORTADA

UNIVERSIDAD TCNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial
Proyecto Acadmico de Fin de Semestre
Titulo:

Codificacin en lenguaje ensamblador


del Up 8085 las diferentes operaciones
de un circuito ALU, funcionamiento y
visualizacin de cada una de sus
partes.

Carrera:

Ingeniera Electrnica y
Comunicaciones

rea Acadmica:

Fsica y Electrnica

Lnea de Investigacin:

Sistemas Electrnicos

Ciclo Acadmico y Paralelo: Sexto Electrnica A; Septiembre 2014


- Febrero 2015
Alumnos participantes:

Balarezo Juan
Chiliquinga Christian.
Iza Mesas.
Novoa Sebastin
Prcel David

Mdulo y Docente:

Microprocesadores
Ing. Crdova Patricio

Fecha de envio:
Fecha de entrega:

12/02/2015

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

II

INFORME DEL PROYECTO


1
2

PP
YY

1 Ttulo
Codificacin en lenguaje ensamblador del Up 8085
las diferentes
operaciones de un circuito ALU, funcionamiento y visualizacin de cada una
de sus partes.
2 Objetivos
1

Especifico
Disear y codificar en lenguaje ensamblador de 8085 cada una de
las operaciones de un ALU entre dos nmeros de dos enteros y
dos decimales, para visualizar sus resultados en displays de 7 y
15 segmentos con mensajes de informacin.

Generales

Realizar el diseo y cdigo de programacin de cada una


de las operaciones tomando en cuenta los parmetros de
los nmeros que van a ser operados.
Visualizar los resultados de cada una de las operaciones
en displays de 7 y 15 segmentos mostrando mensajes de
ayuda e informacin al usuario.

3 Resumen
Realizar la programacin de comandos e instrucciones en lenguaje
ensamblador de 8085 para ejecutar las operaciones entre dos nmeros de
dos decimales y dos enteros cada uno del ALU, como suma, resta,
multiplicacin y divisin como operaciones bsicas, as tambin tomar el
resultado de las operaciones con dos decimales y realizar una conversin
de cdigo a Grey, E3 y Aiken 2421. Se debe realizar una comparacin entre
los dos nmeros ingresados, todo esto con un selector de operacin en un
puerto de entrada.
Para la visualizacin de resultados, ingreso de datos y seleccin de
operaciones se debe mostrar mensajes indicadores para el usuario, como
el resultado es, el N1 es mayor que N2 o mensajes de error como una
divisin para cero o resta negativa.
4 Palabras clave:
Codificacin, conversin, ensamblador, caracteres, displays, comparacin,
programacin, Comandos, instrucciones.

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

5 Introduccin
Acorde a la necesidad de realizar operaciones aritmticas bsicas de una
forma rpida y exacta se desarrolla ciertos diseos y codificaciones en
lenguaje ensamblador para operaciones como suma resta multiplicacin
divisin comparacin y conversin de cdigo entre dos nmeros para
obtener as un mtodo de aplicacin til ante dicha necesidad. As pues por
ejemplo para realizar una operacin de multiplicacin su proceso
equivalente es un producto de sumas sucesivas, as tambin el equivalente
en la resta es una sucesin de restas. En conjunto con la comparacin y
conversin de nmeros las operaciones se las hace en un lenguaje binario
desarrollados en la presente investigacin.
6 Materiales y Metodologa
1

Materiales
Instalador del ensamblador 8085
PC

Marco terico

Simulador 8085
Conociendo ya las caractersticas tcnicas que debe tener una mquina,
vamos a comenzar la instalacin de Simulador 8085 en nuestro sistema. Para
ello bastar con ingresar a el instalador lo que causar la autoejecucin del
programa de instalacin.
Cuando inicia el simulador, aparece una pantalla con varios componentes que
se pueden modificar. En donde se puede conocer las diferentes partes de la
pantalla (vase Figura 1). Usar estos elementos que estn descritos en la
Tabla 1. para trabajar con diferentes programas.

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

Figura 1. Especificaciones del panel principal del simulador 8085

Registros de la CPU
Le recordamos que el microprocesador 8085 cuenta con varios registros
internos, los registros B, C, D, E, H y L, de 8 bits cada uno, el registro A (que
acta de acumulador) y el registro F (donde se encuentran los bits de estado),
tambin de 8 bits, y los registros SP (puntero de pila) y PC (contador de
programa), de 16 bits.

La figura 2 muestra la parte del simulador que incluye los registros antes
mencionados. Como se puede ver, facilita el valor de cada registro tanto en
codificacin binaria como en hexadecimal.

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

Los registros AF, BC, DE y HL, se presentan por parejas, ya que como el
lector sabe, muchas de las instrucciones del 8085 usan estas agrupaciones de
registros.

Figura 2. Registros del simulador 8085

Bits de estado
Una parte de la ventana principal del simulador est reservada para los
indicadores o bits de estado. Como ilustra la figura 3, existen cinco bits, signo,
cero, acarreo auxiliar, paridad y acarreo.

Aparecen en forma de pequeos leds. Si un led est encendido indica


que el bit est activo y si est apagado, el bit estar inactivo. As, en la figura
4.6, los bits de signo, acarreo auxiliar y acarreo estn activados.
Situando el puntero del ratn sobre los leds es posible cambiar su
estado, de encendido a apagado, y viceversa.

Figura 3. Bits de estado del 8085


Memoria de instrucciones

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

El microprocesador 8085 dispone de una memoria de 65536 bytes. En esta


memoria se cargan las instrucciones de los programas que usted escribe,
algunas de estas instrucciones ocupan un byte, otras dos bytes, y otras tres
bytes. La figura 4.10 muestra el aspecto del componente que alberga las
instrucciones en la pantalla de nuestro simulador.

Figura 4. Memoria de instrucciones del 8085


Control de ejecucin

La figura 5 presenta el aspecto de esta parte de la pantalla. Contiene 4 botones


desde los que es posible controlar la ejecucin de sus programas.

Figura 5.

Botones para el control de una ejecucin del 8085.

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

Cada botn realiza una tarea distinta:


Botn Step: Ejecuta la siguiente instruccin. La instruccin donde se
encuentra el contador de programa se ejecuta, desplazndose ste a
la siguiente instruccin.
Botn Over: Tiene la misma funcin que el botn anterior salvo que,
cuando se llega a una instruccin de llamada a subrutina, el
simulador ejecuta las instrucciones pertenecientes a la subrutina en
modo continuo, y despus deja el contador de programa en la
siguiente instruccin a la instruccin de llamada. Utilice este botn
para agilizar sus comprobaciones y evitar entrar en cada una de las
subrutinas.
Botn Run: Ejecuta en modo continuo. Se ejecutan las instrucciones
a partir de la posicin donde se encuentra el contador de programa.
Botn Stop: Para la ejecucin en modo continuo. La ejecucin se
detiene, quedando el contador de programa en la posicin de
memoria siguiente a la ltima instruccin ejecutada.

Definicin ALU
Genricamente a la unidad ALU (por sus siglas en ingls Arithmetic Logic Unit)
como una de las unidades que forman parte de la Unidad Central de
Procesos(es decir, del Procesador, Microprocesador o CPU - Central Processor
Unit, por sus siglas en ingls) mediante la cual es posible realizar una gran
cantidad de operaciones aritmticas bsicas (Suma, Resta, Divisin y
Multiplicacin) adems de realizar algunas operaciones Lgicas (Yes, Or, Not,
And - Es decir, si; y, o, no) entre dos nmeros o dos conjuntos de nmeros.
Lgica digital integrada, Santiago Acha, AlfaOmega
Se define ALU como una de las unidades que forman parte de la Unidad
Central de Procesos es decir, del Procesador, Microprocesador o CPU,
mediante la cual es posible realizar una gran cantidad de operaciones
aritmticas bsicas como son: Suma, Resta, Divisin y Multiplicacin, adems
de realizar algunas operaciones Lgicas, entre dos nmeros o dos conjuntos
de nmeros.
Electrnica digital. Sanz y Torres. Interamericana De Espaa, S.A. 2007
En informtica, la Unidad Aritmtica Lgica forma parte del circuito digital del
procesador indefectiblemente, teniendo adems presencia en otros Circuitos

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

Electrnicos que necesiten realizar estas operaciones, teniendo por ejemplo la


utilizacin de un Reloj Digital, donde estos clculos lgicos se basan en dos
funcionalidades bsicas:

Sumar de a 1 al tiempo actual (para los Segundos, Minutos y las Horas)


Comprobacin de la activacin o no activacin del sonido de la alarma
Cambio de Hora y Minutos de acuerdo al sistema hexadecimal

Pero esta unidad es generalmente utilizada en circuitos de alta complejidad,


cubriendo no solo operaciones matemticas simples, sino una gran cantidad de
clculos por segundos, siendo en el caso de los ltimos aquellos que son
conocidos como Microprocesadores, y que como hemos dicho, son el cerebro
de un ordenador y da toda la informacin que se procesa a travs de l.
De este modo, se puede definir el funcionamiento de la siguiente manera:
Unidad de Control: Emite las acciones a efectuar
Unidad Aritmtico Lgica: Procesa los datos recibidos y enva los
registros
Unidad de Control: Analiza los resultados obtenidos y los enva a otros
dispositivos

Figura 1: Diagrama de bloques ALU

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

Las cuatro entradas de A se combinan con las de B generando una operacin


de salida de cuatro bits en F. La entrada de seleccin de modo S2 distingue
entre las operaciones aritmticas y lgicas. Las entradas de seleccin S0 y S1
determinan la operacin aritmtica o lgica. Con las entradas S0 y S1 se
pueden elegir cuatro operaciones aritmticas
(con S2 en un estado) y cuatro lgicas (con S2 en otro estado). Los acarreos
de entrada y salida tienen sentido nicamente en las operaciones aritmticas.
El diseo de una ALU implica el diseo de la seccin aritmtica, la seccin
lgica y la modificacin de la seccin aritmtica para realizar las operaciones
aritmticas y lgicas.

Figura 2: Diagrama lgico de un circuito lgico de una ALU


FUNCIONES DE LA UNIDAD ARITMTICA LGICA
Una funcin esencial de muchas computadoras y calculadoras es la realizacin
de operaciones aritmticas. Estas operaciones se efectan en la unidad
aritmtica-lgica de una computadora, donde se combinan compuertas lgicas
y flip-flops de manera que puedan sumar, restar, multiplicar y dividir nmeros
binarios.
Estos circuitos efectan operaciones aritmticas a velocidades que son
humanamente imposibles. Comnmente, una operacin de adicin se llevar
menos de 1 microsegundo.

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

ALU Todas las operaciones se llevan a cabo en la unidad aritmtica lgica de


una computadora. La figura nos muestra un diagrama de bloques que muestra
los elementos principales que se incluyen en una ALU comn. La finalidad
primordial de la ALU consiste en aceptar datos binarios que estn almacenados
en la memoria y ejecutar operaciones aritmticas con estos datos, de acuerdo
con instrucciones que provienen de la unidad de control.

Figura 3: Diagrama de la funcin de ALU


La unidad aritmtica lgica contiene cuando menos dos registros de flip-flops:
El registro B y el registro acumulador. Tambin contiene lgica combinatoria,
que efecta las operaciones aritmticas sobre los nmeros binarios que estn
almacenados en el registro B y el acumulador.
Una secuencia comn de operaciones puede ocurrir de la manera siguiente:
1 La unidad de control recibe una instruccin (de la unidad de memoria)
especificando que un nmero almacenado en cierta localidad de la
memoria (direccin) se sumar al nmero que est almacenado en ese
momento en el registro acumulador.
2 El nmero que se sumar se transfiere de la memoria al registro B.
3 El nmero contenido en el registro B y el nmero en el registro
acumulador se suman en los circuitos lgicos (por el comando emitido
desde la unidad de control). La suma resultante se enva entonces al
acumulador para ser almacenada.

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

4 El nuevo nmero en el acumulador puede permanecer para que se


pueda sumar otro nmero a l, o, si el proceso aritmtico particular llega
a su fin, puede ser transferido a la memoria para ser almacenad
DISEO DE UNA UNIDAD ARITMTICA LGICA
En el diseo de una ALU se deben seguir los siguientes pasos:
Disear la seccin aritmtica independientemente de la seccin lgica.
Determinar las operaciones lgicas del circuito aritmtico, asumiendo que los
acarreos de salida de todas las etapas son 0.
Modificar el circuito aritmtico para obtener las operaciones lgicas requeridas.
El diseo simple de una ALU se hace utilizando el sumador completo para
generar las operaciones lgicas de la unidad. Por lo tanto es necesario
introducir una variable de control adicional, con el fin de seleccionar entre las
operaciones lgicas y aritmticas.
William Stallings. Organizacin y arquitectura de computadoras.

Complemento a2
. Cuando se quiere representar nmeros positivos, el bit ms significativo
servir de signo: si es 0 es positivo y si es 1 es negativo. Esto deja nicamente
7 bits para el nmero o bien, hasta 64 nmeros se pueden formar. Lo
importante es que de cada numero positivo se puede encontrar su negativo por
medio del complemento a2. Esto se hace sacando el complemento de dicho
nmero y sumndole un uno.
Nmero positivo: 00000100 = 4
Complemento: 11111011
Se le suma uno: 11111011+1=11111100 = -4
Si alguna de las operaciones aritmticas nos arroja un resultado negativo,
dicho resultado estar en representacin complemento a2.
Para leer mejor el resultado solo tenemos que convertir dicho nmero negativo
a un nmero binario normal.
Esto se hace calculando el complemento a2 de dicho numero (que ya est en
complemento a2). Por ejemplo, si el resultado de una suma o una resta nos da
18 (11101110) tendramos que complementarlo primero (00010001) y despus
sumarle 1 (10001 + 1) lo cual nos dara 10010 = 18. Es claro que al convertirlo
a notacin binaria normal el numero nos da positivo, pero esto solo se hace con
fines de poder leer mejor el resultado debido a que no nos vamos a aprender
todos los nmeros en complemento a2. Sabemos que el resultado es negativo,
solo necesitbamos averiguar la magnitud que es 18.
Roger Tokheim. Fundamentos de los microprocesadores

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

Suma
Si sumamos nmeros decimales es comn la expresin "cinco mas siete es
igual a doce, entonces son dos y llevo uno". Este "llevo uno" se conoce como el
acarreo. De la misma manera se realiza una suma binaria de varios bits.
nicamente necesitamos recordar las sencillas reglas de la suma binaria de un
bit.
1+1 = 0 y llevo 1
1+0 = 1
0+1 = 1
0+0 = 0
1+1+1 = 1 y llevo 1
Con estas reglas tenemos por ejemplo.
Acarreo --> 1 11

Hayes. Arquitectura y organizacin de computadoras.

Resta
La resta se lleva de manera similar en nmeros decimales y binarios. Si en la
suma existe el acarreo, en la resta existe el "prstamo", igual que en
decimales.
=0
=1
=0
.0-1 = 1 prestando un uno al bit siguiente.
Con estas reglas tenemos por ejemplo.

Hayes. Arquitectura y organizacin de computadoras.

Multiplicacin
El multiplicando es multiplicado por cada dgito del multiplicador y estos
productos parciales son sumados luego para obtener el resultado total
considerando su posiciones relativas. Cada producto parcial es 0 igual al
multiplicando corrido a la izquierda dependiendo si el multiplicador es 0 1

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

Las reglas de la multiplicacin son:


1x1 = 1
1x0 = 0
0x1 = 0
0x0 = 0
De esta manera tenemos:

Morris Mano. Arquitectura de computadoras.

Divisin.
Es muy simple realizar una divisin de nmeros binarios pues es sumamente
similar a la divisin con nmeros decimales. Hay un cociente como resultado
con un posible residuo, hay un dividendo y un divisor y se trata de encontrar
mltiplos e irlos restando uno por uno. No creo necesario extenderse en la
explicacin paso a paso de la divisin de nmeros enteros positivos en binario.
Basta con un pequeo ejemplo y recordar las reglas para la divisin de
nmeros decimales ya que son iguales.
00001101
1101 10010011
1011
001110
1101
001111
1101
100
Morris Mano. Arquitectura de computadoras.

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: SEPTIEMBRE/2013 ENERO/2014

3
Desarrollo
..
7

Resultados y Discusin

La codificacin de cada una de las operaciones aritmticas por partes no fue


sencilla en realizar, pues existieron errores de cdigo de asignacin de variables y
de etiquetas para los salto. La organizacin y ordenamiento es muy importante en
la codificacin, pues es fcil perder el hilo del cdigo y su reconstruccin puede
llegar a ser muy complicada como sucedi en un par de veces.
La conversin de cdigo y la divisin son las operaciones de ms desarrollo e
inteligencia, se debe tomar en cuenta muchos parmetros y elementos del
programa ensamblador como cdigos especficos de asignacin.
Es necesario aplicar retardos NOP al cdigo con el objetivo de tener un programa
estable y sin saltos a destiempo con respecto a otro. Los resultados obtenidos
implicaron un gran trabajo de diseo y codificacin ordenada.

Conclusiones

Las operaciones aritmticas bsica fueron programadas en un lenguaje de


bajo nivel como el ensamblador.
El lenguaje ensamblador del 8085 es un lenguaje de maquina codificado en
binario como se puede ver en los registros de almacenamiento y
acumulador.
Las operaciones son generadas a partir de diferentes instrucciones y
comandos para ejecutarlas en funcin de los puertos de entrada
controlados por switch o teclado.

Referencias bibliogrficas

[6] MANDADO, E., L. J. ALVAREZ y M. D. VALDS, Dispositivos lgicos programables,


Thomson- Paraninfo, Madrid, 2002.
2.10. Fotografas y grficos
Es conveniente incluir algunas fotografas, esquema o planos en los que se pueda
observar la elaboracin del proyecto por parte de los integrantes del equipo.

You might also like