7
Arquitectura de computadores Sebastian Eusser Bermudez Eduar Cortes Tamayo Jaime David Mejia Quintero Explicación del algoritmo para la factorización LU en ensamblador. Universidad Nacional sede Medellin Profesor Hugo De Jesus Mesa Yepes año 2015

rendimiento arquitectura

Embed Size (px)

DESCRIPTION

Compracion de benchmarks en equipo de windows y linux

Citation preview

Arquitectura de computadores

Sebastian Eusser Bermudez

Eduar Cortes Tamayo

Jaime David Mejia Quintero

Explicacin del algoritmo para la factorizacin

LU en ensamblador.

Universidad Nacional sede Medellin

Profesor Hugo De Jesus Mesa Yepes

ao 2015

Objetivos

-Implementar un programa en lenguaje ensamblador que realice la solucin de un sistema de ecuaciones lineales a travs del mtodo LU, utilizando diferentes operadores, funciones, registros, y otras implementaciones de dicho lenguaje.

-Interpretar como trabajan los diferentes registros, operadores y funciones que se pueden utilizar en el lenguaje ensamblador, y ver cmo se desarrollan en un programa complejo.-Utilizar diferentes tcnicas de algoritmia para desarrollar un cdigo que permita la realizacin de la factorizacin LU

-Interpretar las diferentes formas de utilizacin de los vectores para el manejo, implementacin y desarrollo de las matrices.

-Comprender los diferentes usos de las operaciones de aritmtica entera y punto flotante y como el leguaje ensamblador lo maneja.

Explicacin del algoritmo en MASM

Antes de empezar a explicar el cdigo, se requiere aclarar que se realiz en el compilador de Visual Studio 2010. Se sabe que existen otros compiladores de windows estilo MASM e inclusive para linux (estilo NASM). En arquitectura de 32 bits. Estos fueron los pasos seguidos por el algoritmo

1) Se incluyen las libreras necesarias para el cdigo, Irvine32 y Macros para la lectura de archivos y el modelo FPU (punto flotante).

2) Se inicia la seccin .data con las variables necesarias para el funcionamiento (variables para matrices,for,etc)

3) Empieza la seccin .code del programa

4) Se tiene el men principal las cules sern las evocaciones de cada uno de los llamados a realizar (el trabajo se dividi por mtodos que son invocados desde el men principal segn los pasos que se requieran).

5) Muestra el primer mtodo: Animacin, el cual mostrara un mensaje de bienvenida para el usuario con una animacin realizada en ASCII. Seguido con los nombre de los integrantes y una breve introduccin acerca del trabajo.

6) Se incluye la etiqueta para devolver al inicio del mtodo en caso en que el usuario lo desee.

7) Se invoca el segundo mtodo, el cual pedir al usuario el nmero de variables, esto para que genere la matriz general que recibir todos los datos importantes para la realizacin de la factorizacin LU.

8) Se invoca el tercer mtodo, el cual pedir rellenar los valores segn la matriz ingresada. Despus de ingresar los coeficientes de las ecuaciones.

9) Luego de tener los valores ingresados se imprimen los resultados de manera consecutiva de la siguiente manera: Fila de ecuacin cuyo tercer valor es el trmino independiente Tantas veces por el nmero de variables ingresadas, este mtodo fue implementado por un loop que se repite tantas veces como el nmero de ecuaciones pida.

10) Aparecer un mensaje pidiendo al usuario si desea modificar los datos.

11) Si no desea modificar los datos realizara la factorizacin LU, sin embargo. Si desea modificar datos, seguir con los pasos siguientes.

11.1) Aparecer un nuevo mensaje pidiendo las siguientes opciones- Presione 1 si desea modificar las ecuaciones - presione enter para continuar.

11.2) Si se seleccion la opcin 1, Se pedir la ubicacin del nmero que desea cambiar (Fila, posicin). Y luego se pide ingresar el nmero al cual va a cambiar.

12) Se realizara la operacin consecuente para realizar la factorizacin LU. Esta se realiza a travs de un ciclo anidado de while y de for que a travs de la matriz ingresada realizara todo las operaciones utilizadas matrices auxiliares y variables auxiliares para realizar la factorizacin lu como se realiza en el algoritmo dado en lenguaje c++

13) Se imprimir en pantalla los resultados pertinentes.

14) Aparecer un mensaje diciendo que si desea realizar otra operacin o salir del programa. En caso de aceptar, el algoritmo empezara de nuevo sin necesidad de repetir el mensaje de bienvenida, en caso de salir del programa se imprimir el mensaje de despedida y el programa terminara.

Conclusiones

Como resultado del trabajo, se logr comprender el uso de los diferentes registros, comandos, funciones y ciclos del lenguaje ensamblador que permiti el desarrollo del sistema de factorizacin LU.

Por otro lado tambin se logr comprender el uso de vectores para la creacin y manejo de matrices que facilito el desarrollo del sistema de ecuacin lineal cuadrtica.

Con programa de factorizacin LU se puede ver cmo trabajan las operaciones de punto flotante y de aritmtica entera, y ayudo a que se comprendera en que momentos se usa aritmtica entera o punto flotante.

Con este programa se logr entender cmo se manejan los datos en memoria y como se aprovecha esto para que el programa tenga una ejecucin ms eficiente