Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
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.
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.
Utilizar el simulador
Editor
Pasar a memoria
Ejecutar programa
Registros de Operacin
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.
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
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.
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.