Está en la página 1de 6

INFORME DEL PROYECTO

CALCULADORA DE BOLSILLO .asm


ORGANIZACIN DE COMPUTADORAS

Integrantes de la Comisin: Kohan, Andrs Damin 760841; Volpe, Mauro Sebastin 80102.

DECISIONES DE DISEO
Este informe desea transmitir de manera muy clara, el modelado estructurado y el uso de las rutinas que implementa el proyecto realizado en assembler para representar una calculadora de bolsillo. En principio es relevante informar que para este proyecto se usaron dos implementaciones provistas por el simulador Emu8086, ambas son Printer, y Led Display Test. Para empezar con la explicacin, debemos aclarar que el modelado estructural del cdigo implementado es muy simple, como se hizo en cursos anteriores, se procedi a trabajar apelando a la programacin estructurada, dividiendo la solucin en distintos mdulos, que en este mbito de trabajo se denominan rutinas del cdigo. Si bien partes fueron moduladas como procedimientos, quizs reusables, la mayor parte del flujo de la ejecucin del programa se controla mediante saltos, ya sea condicionales o no. El por qu de este modelado, es que as lo cremos conveniente. Este mtodo, quizs mas rustico, de la solucin se acerca mas al manejo real de las instrucciones en memoria. A continuacin nombraremos las distintas rutinas implementadas en el proyecto acompaadas de una breve explicacin de su funcionamiento. Diremos rutina ya sea, el label de un salto relevante (salto al cual se procede para realizar una operacin, no solo para modificar el flujo del programa) como tambin a un procedimiento.

*ingreso: Este label es referenciado en el momento que necesitamos pedirle al usuario que decida que operacin realizar con la calculadora, el cursor en el la pantalla, es seal de que se esta a la espera de realizar la operacin seleccionada. * mostrar_Pila: Simplemente se salta a esta posicin para indicar que se ejecute el procedimiento que muestra el contenido de la pila en la impresora. * apilar: Acceso al cdigo que muestra por pantalla el mensaje correspondiente a Apilar elemento en la pila de la aplicacin. Realiza acciones necesarias para poder ingresar el elemento a apilar, y luego realizar la accin correspondiente, tambin adapta el entorno segn la accin realizada, como por ejemplo incrementa el contador de elementos. * Desapilar: Acceso al cdigo que muestra por pantalla el mensaje correspondiente a Desapilar elemento en la pila de la aplicacin. Realiza acciones necesarias para poder ingresar el elemento a desapilar, y luego realizar la accin correspondiente, tambin adapta el entorno segn la accin realizada, como por ejemplo decrementa el contador de elementos. *ApilarElemento: (Procedimiento) Se encarga de almacenar en memoria el elemento deseado, trabajando con el registro CX para contener el operando a apilar y el registro DI, quien puede acceder a memoria para ubicar el elemento y apuntar al tope de la pila. *DespilarElemento: (Procedimiento) Se encarga de retornar el elemento en memoria, trabajando con el registro CX para contener

el tope y el registro DI, quien puede acceder a memoria para retornar el elemento y apuntar al nuevo tope de la pila. *sumar: Acceso al cdigo que muestra por pantalla el mensaje correspondiente a Sumar los 2 primeros elementos de la pila de la aplicacin, el tope mas el que le sigue abajo. El resultado es almacenado nuevamente en el tope de la pila, y se reajusta el contador de elementos adems de mostrar el tope por el led_Display. * restar: Acceso al cdigo que muestra por pantalla el mensaje correspondiente a Restar los 2 primeros elementos de la pila de la aplicacin, el tope menos el que le sigue abajo. El resultado es almacenado nuevamente en el tope de la pila, y se reajusta el contador de elementos adems de mostrar el tope por el led_Display. * multi: Acceso al cdigo que muestra por pantalla el mensaje correspondiente a Multiplicar los 2 primeros elementos de la pila de la aplicacin, el tope por el que le sigue abajo. El resultado es almacenado nuevamente en el tope de la pila, y se reajusta el contador de elementos adems de mostrar el tope por el led_Display. *divi: Acceso al cdigo que muestra por pantalla el mensaje correspondiente a Dividir los 2 primeros elementos de la pila de la aplicacin, el tope dividido el que le sigue abajo. El resultado es almacenado nuevamente en el tope de la pila, y se reajusta el contador de elementos adems de mostrar el tope por el led_Display.

*salir: Simplemente mediante la instruccin hlt del sistema, realiza una salida brusca del mismo. * imprimir: (Procedimiento) Al acceder a este bloque de cdigo de realizan las operaciones necesarias para mostrar por la pantalla de la Impresora el contenido de la pila en un momento determinado. La resolucin se lleva a cabo apuntando con el contenido de un nuevo registro (BX) a cada elemento de la pila de la aplicacin, al obtener cada uno de estos elementos, se desarma el numero digito por digito (mod 10) y se lo almacena en una nueva pila, la cual es recorrida antes de mover el puntero en la pila principal, para mostrar a travs del puerto 130 el contenido de la pila en la impresora. * imprimiraux: (Procedimiento) Este procedimiento es invocado por el anterior, su fin es recorrer la pila auxiliar, mostrando digito por digito, el valor completo en la impresora de la aplicacin. * dividir: (Procedimiento) Este procedimiento realiza la accin practica de dividir, realiza la divisin entera, es decir descarta decimales. Es invocado desde el bloque gobernado por la etiqueta divi: para determinar el resultado de la divisin, que luego ser apilado a la pila de la aplicacin. * SCAN_NUM: (Procedimiento) Este mtodo es el encargado de verificar y controlar, adems de permitir el ingreso, todo dato ingrasado por el usuario, cuando la aplicacin demanda un contenido para operar, no recibe decisiones sino datos concretos.

* PRINT_NUM: (Procedimiento) Muestra por pantalla el contenido del registro AX, no solo lo muestra sino determina como hacerlo, ya que si el valor es negativo, este procedimiento muestra el signo -, para luego trabajar con el dual del valor almacenado.

Consejos profesionales
Nuestro equipo recomienda, que los desarrolladores de software que tomen como gua este documento para realizar tareas de mantenimiento del sistema, tengan adjunto tambin el manual que se tomo como referencia para su desarrollo, encontrado en la ayuda del simulador emu8086. Quizas vulnerabilidad del sistema... El equipo que desarrollo este sistema no tuvo en cuenta casos de OVERFLOW, momentos en el que el tamao de los operandos exceden el rango de la memoria o registros de propsito general en este caso (16 bits). Por ello nos hacemos cargo de cualquier error de calculo trabajando sobre grandes valores numricos. Sin embargo aconsejamos utilizar este sistema para pequeos clculos, ya sea en la administracin de un pequeo almacen, como en una venta de garage, daremos lugar a otras aplicaciones para bancos o empresas de renombre.

También podría gustarte