informe laboratorio 1.doc
TRANSCRIPT
-
7/30/2019 Informe laboratorio 1.doc
1/18
PRACTICA N1 MICROPROCESADORES Y MICROCONTROLADORES
MARISOL CONTRERAS PLAZAS
COD. 1049606701
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA ECBTI
TUNJA
2012
-
7/30/2019 Informe laboratorio 1.doc
2/18
INTRODUCCION
El ingeniero electrnico realiza simulaciones de procesos llevados a cabo por
los microprocesadores. Se puede hacer uso de simuladores para hacer un
acercamiento a un proceso de control que pueda llevar a cabo una maquina
industrial. O simular maquinas procesadoras de datos simplemente. En la
presente obra el autor realiza una presentacin del simulador SIMUPROC y se
lleva a cabo la simulacin de una maquina calculadora bsica. Se presentan
las instrucciones utilizadas por el programa y las instrucciones que sern
utilizadas para la ejecucin del programa. Adems se har uso del software
Visio para la realizacin de diagramas de flujo.
-
7/30/2019 Informe laboratorio 1.doc
3/18
DESARROLLO DE LA PRCTICA
CALCULADORA BASICA
Empecemos con la descripcin del programa:
Este empieza mostrando el nombre del programa y preguntando por la
operacin a realizar.
Luego se lee la variable OP y dependiendo del dato ingresado elprograma se va por uno de los cuatro ramales o subrutinas de cada una
de las cuatro operaciones.
Cada una de estas cuatro operaciones consta bsicamente del ingreso
de los dos operandos a y b y su lectura, luego la operacin respectiva
y por ltimo la salida a pantalla del resultado obtenido.
Luego de salir de la operacin, o si no se digita una operacin correcta,
el programa pregunta si quiere continuar o salir.
Despus se lee la variable SALIR y luego a travs de un condicional se
finaliza o se contina con el programa.
Ahora veamos el diagrama de flujo:
-
7/30/2019 Informe laboratorio 1.doc
4/18
SI
NO
SI
NO
SI
NO
SI
NO
NO
INGRESE LA OPERACION
OP =SUMA
?
OP =RESTA?
OP =MULTI
P?
OP =DIV?
SALIR O CONTINUAR
SALIR= SI ?
INGRESAR
OPERANDOS
SUMA=
a+b
MOSTRAR
SUMA
INGRESAR
OPERANDOS
RESTA =
a-b
MOSTRAR
RESTA
INGRESAR
OPERANDOS
MULTIPLIC.=a*b
MOSTRAR
MULTIPLIC
INGRESAR
OPERANDOS
DIVISION
=
a/b
MOSTRAR
DIVISION
INICIOCALCULADORA BASICA
LEA OP
LEA a y b
LEA a y b
LEA
a y b
LEA
a y b
LEA SALIR
-
7/30/2019 Informe laboratorio 1.doc
5/18
SI
Despus de tener el diagrama de flujo de lo que queremos hacer, entonces
empezamos a trabajar en assembler el cdigo fuente el cual se trabaj en
Simuproc en su editor 2. El cdigo fuente es:
#SimuProc 1.4.3.0
MSG Calculadora Bsica
INC 041
INC 042
INC 042
MOV 043,042
INC 043
MOV 044,043
INC 044
LDT Ingrese 1 para sumar, 2 para restar, 3 para multiplicar y 4 para
dividir.
CMP 041
JEQ 012
CMP 042
JEQ 018
CMP 043
JEQ 01E
CMP 044
JEQ 024
FIN
-
7/30/2019 Informe laboratorio 1.doc
6/18
JNE 02B
LDT Ingrese el primer sumando.
MOV 045,AX
LDT Ingrese el segundo sumando.
ADD 045
EAP El resultado de la suma es:
JMP 02B
LDT Ingrese el sustraendo.
MOV 045,AX
LDT Ingrese el minuendo.
SUB 045
EAP El resultado de la resta es:
JMP 02B
LDT Ingrese el primer factor.
MOV 045,AX
LDT Ingrese el segundo factor.
MUL 045
EAP El resultado del la multiplicacin es:
JMP 02B
LDT Ingrese el divisor.
MOV 045,AX
LDT Ingrese el dividendo.
DIV 045
EAP El cociente de la divisin es:
MOV AX,BX
-
7/30/2019 Informe laboratorio 1.doc
7/18
EAP El residuo de la divisin es:
LDT Ingrese 1 para continuar o 0 para salir.
CMP 040
JNE 008
MOV 041,040
MOV 042,040
MOV 043,040
MOV 044,040
MOV 045,040
HLT
La descripcin de este cdigo es la siguiente:
Primero se muestra el nombre del programa.
Luego se establecen unas constantes, para el men de las operaciones,
que se almacenan en unas localidades de memoria.
Acto seguido se pide que ingrese un nmero para elegir la operacin, si
el dato no se encuentra dentro del men el programa salta donde se da
la opcin de continuar o salir.
Por medio de unas comparaciones y saltos el programa lo lleva a una de
las cuatro operaciones.
Luego ya, en la operacin, el programa le pide el primer operando el
cual se almacena en una localidad de memoria.
Despus pide el segundo operando para luego hacer la operacin
respectiva con el primero almacenado en memoria.
Luego se muestra el resultado y salta a la opcin de continuar o salir.
Dependiendo del dato ingresado el programa vuelve a preguntar por la
operacin a realizar o sale y muestra algunas estadsticas de operacin.
-
7/30/2019 Informe laboratorio 1.doc
8/18
Una vez generado este cdigo en el editor 2 de Simuproc, entonces se pasa al
editor 1 para luego cargarlo en memoria, en este paso se depura el programapuesto que el simulador tiene una herramienta para corregir errores. Una vez
el programa se encuentra en memoria, ste se ejecuta para ver los resultados,
si hay errores se corrigen en el editor 2 y se repite le proceso hasta que se
obtienen los resultados esperados. Ya superado todo esto se guarda en un
archivo *.smp o ejecutable.
EVIDENCIA FOTOGRAFICA DEL PROCESO DE PROGRAMACION
Utilizar el simulador
Editor
-
7/30/2019 Informe laboratorio 1.doc
9/18
Pasar a memoria
Ejecutar programa
-
7/30/2019 Informe laboratorio 1.doc
10/18
Registros de Operacin
-
7/30/2019 Informe laboratorio 1.doc
11/18
SISTEMA DE ECUACIONES 2X2
-
7/30/2019 Informe laboratorio 1.doc
12/18
Describamos el programa:
Se empieza mostrando el nombre del programa.
Luego se pide ingresar las constantes de la primera ecuacin.
Se almacenan como X1, Y1 e I1.
Se pide ingresar las constantes de la segunda ecuacin.
Se almacenan como X2, Y2 e I2.
Luego se establecen unas variables y se realizan algunas operacionestendientes a hallar el valor de la variable y.
Luego se muestra su valor.
Despus, con la ayuda de este ltimo valor, se calcula el valor de la
variable x.
Luego se muestra su valor.
Despus se da la opcin de continuar o salir.
Se lee la variable SALIR.
Dependiendo de su valor se contina de nuevo pidiendo el ingreso de
las constantes de la primera ecuacin o se sale del programa.
Veamos el diagrama de flujo del algoritmo del programa:
INICIO
RESOVERECUACIONES 2X2
INGRESAR CONSTANTES ECUACION1LEA X1,Y1,I1INGRESAR CONSTANTES ECUACION2LEA X2, Y2, I2-X1 = 0 X1
A = -X1*Y2 B = -X1*I2
C = X2*Y1 D = X2*I1E = A+C F = B+DY = F/EMOSTRAR YG = Y*Y1X = (I1 G) / X1MOSTRAR XCONTINUAR O SALIR
-
7/30/2019 Informe laboratorio 1.doc
13/18
NO SI
SALIR =SI?
FIN
LEA SALIR
-
7/30/2019 Informe laboratorio 1.doc
14/18
Ahora mostremos el cdigo en ensamblador del programa:
#SimuProc 1.4.3.0
MSG Programa para resolver un sistema de ecuaciones 2x2.
LDT Ingrese el coeficiente de x de la ecuacin 1.
MOV 040,AX
LDT Ingrese el coeficiente de y de la ecuacin 1.
MOV 041,AX
LDT Ingrese el trmino independiente de la ecuacin 1.
MOV 042,AX
LDT Ingrese el coeficiente de x de la ecuacin 2.
MOV 043,AX
LDT Ingrese el coeficiente de y de la ecuacin 2.
MOV 044,AX
LDT Ingrese el trmino independiente de la ecuacin 2.
MOV 045,AX
MOV AX,040
MUL 044
MOV 046,AX
MOV AX,040
MUL 045
MOV 047,AX
MOV AX,043
MUL 041
MOV 048,AX
MOV AX,043
MUL 042
MOV 049,AX
-
7/30/2019 Informe laboratorio 1.doc
15/18
MOV AX,048
SUB 046
MOV 04A,AX
MOV AX,049
SUB 047
DIV 04A
EAP la variable y es igual a:
MUL 041
MOV 04B,AX
MOV AX,042
SUB 04B
DIV 040
EAP La variable x es igual a:
LDT Ingrese 1 para continuar o 0 para salir.
CMP 050
JNE 001
MOV 040,050
MOV 041,050
MOV 042,050
MOV 043,050
MOV 044,050
MOV 045,050
MOV 046,050
MOV 047,050
MOV 048,050
MOV 049,050
MOV 04A,050
MOV 04B,050
-
7/30/2019 Informe laboratorio 1.doc
16/18
HLT
Este cdigo es muy parecido a la descripcin que se hizo al principio, del
diagrama de flujo, salvo que al final he decidido aadir unas instrucciones para
limpiar las posiciones de memoria que se utilizaron. Los pasos siguientes son
iguales a los de la calculadora bsica.
EVIDENCIA FOTOGRAFICA DEL PROCESO DE PROGRAMACION
Utilizar el simulador
Registros de Operacin
-
7/30/2019 Informe laboratorio 1.doc
17/18
CONCLUSIONES
-
7/30/2019 Informe laboratorio 1.doc
18/18
Trabajando con este simulador me he dado cuenta que no acepta
nmeros negativos y con punto decimal a la entrada, tampoco daresultados con punto decimal, pero si nos da resultados negativos si la
operacin los genera. Estos ejercicios me han ayudado a afianzar
conocimientos acerca de cmo funciona el sistema de cmputo de un
computador y adems me ha enseado a manejar y dominar un poco
ms el lenguaje ensamblador.