Está en la página 1de 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

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.

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 el programa 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:

INICIO CALCULADORA BASICA

INGRESE LA OPERACION

LEA OP

OP = SUMA ?

SI

INGRESAR OPERANDOS

LEA a y b

SUMA = a+b

MOSTRAR SUMA

NO

OP = REST A?

SI

INGRESAR OPERANDOS

LEA a y b

RESTA = a-b

MOSTRAR RESTA

NO

OP = MULTI P?

SI

INGRESAR OPERANDOS

LEA ayb

MULTIPLIC.= a*b

MOSTRAR MULTIPLIC

NO

OP = DIV?

SI

INGRESAR OPERANDOS

LEA ayb

DIVISION = a/b

MOSTRAR DIVISION

NO SALIR O CONTINUAR

LEA SALIR

NO

SALIR = SI ?

SI

FIN

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

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

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.

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 programa puesto 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

Pasar a memoria

Ejecutar programa

Registros de Operacin

SISTEMA DE ECUACIONES 2X2

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 operaciones tendientes 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 RESOVER ECUACIONES 2X2


A = -X1*Y2 B = -X1*I2

CONTINUAR O SALIR LEA X1,Y1,I1 E =X2*Y1 LEA A+C X2, F Y2, B+D I2 ECUACION1 INGRESAR CONSTANTES ECUACION2 MOSTRAR X -X1 0 = X = (I1 G) /X1 X1 Y= = F/E G Y*Y1 C = D = X2*I1 MOSTRAR Y

FIN

LEA SALIR

NO
SALIR = SI?

SI

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

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

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

CONCLUSIONES

Trabajando con este simulador me he dado cuenta que no acepta nmeros negativos y con punto decimal a la entrada, tampoco da resultados 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.

También podría gustarte