You are on page 1of 7

Universidad De San Carlos de Guatemala

Facultad de ingeniera
Arquitectura de Computadoras 1 Secciones A y B
Primer Semestre 2015
Aux. Luis Snchez
Aux. David Ochoa

PRACTICA #1
Objetivos Generales

Aplicar el conocimiento adquirido en el manejo de lenguaje ensamblador.

Utilizar soluciones simples para problemas complejos usando lenguajes de bajo nivel

Analizar problemas matemticos y llevarlos a una solucin informtica

Objetivos Especficos

Comprender el uso del coprocesador matemtico de una computadora

Manejar el modo de vdeo 13h y otras interrupciones de DOS

Aplicar el conocimiento de operaciones aritmtico lgicas a nivel de ensamblador

Utilizar mtodos numricos para la solucin de problemas complejos

Que el estudiante aprenda simplificar operaciones complejas a simples operadores de ASM

Comprender el uso de pilas en los programas informticos.

Descripcin

La prctica consiste en la creacin de una calculadora grfica, utilizando como herramienta un


ensamblador de x86, el coprocesador matemtico e interrupciones de DOS.
A su vez, esta
calculadora deber de resolver ecuaciones de grado n (donde n es un nmero entero no mayor a
5) mediante el uso de mtodos numricos de Newton y Steffensen (Matemtica Aplicada 3).
Men Inicial:
Al iniciarse la aplicacin deber de ejecutarse un men en cual tendremos las opciones de:

Ingresar ecuacin (funcin).

Imprimir la funcin almacenada.

Imprimir la derivada de dicha funcin.

Imprimir la integral de la funcin.

Graficar la funcin original, derivada o integral.

Encontrar los ceros de la funcin por medio del mtodo de Newton.

Encontrar los ceros de la funcin por medio del mtodo de Steffensen.

Salir de la aplicacin.

Entrada:
Se ingresara una funcin de grado mximo 5 la cual nicamente tendr coeficientes enteros. La
misma deber ser ingresada, ya sea coeficiente por coeficiente o mediante una cadena la cual se
analizara despus u otro mtodo similar que considere el estudiante. Los coeficientes sern
enteros positivos y negativos solamente. La entrada tambin debe de detectar que no se ingresen
valores no vlidos (solo debe aceptar nmeros enteros) y comprobar los caracteres que se estn
ingresando en la funcin.

Ejemplo

Imprimir Funcin, Imprimir derivada, imprimir integral:


Con estas opciones se imprime la funcin en memoria, su derivada o la integral de la misma.
Estos datos se deben de mostrar de manera obligatoria y se debe mostrar una advertencia en caso
de no existir una funcin almacenada anteriormente.
Graficar Funcin original, derivada o la integral:
Mediante esta opcin se debe de imprimir en pantalla, utilizando el modo de video 10h, con
cualquiera de sus variantes, la grfica correspondiente a la funcin almacenada dentro de la
memoria, se debe especificar que funcin se quiere graficar ya sea la funcin original, la derivada o
la integral. No se permite el uso de otra manera de graficar la funcin ni libreras. La grfica debe
ser comprensible. Se debe de trazar un eje X y uno Y en los cuales se visualice las grafica
correspondiente intentando visualizar la grfica de la mejor forma posible, el estudiante puede
definir un intervalo de valores por defecto, solicitar en la entrada el intervalo a graficar o bien
utilizar el intervalo utilizado por uno de los mtodos numricos descritos a continuacin.
Mtodo de Newton y Steffensen:
Se resolver la funcin mediante el mtodo de aproximacin de Newton y Steffensen, se
recomienda revisar apuntes y libros utilizados en Matemtica Aplicada 3. Ambos mtodos tendrn
los mismos parmetros de entrada:

Nmero de iteraciones mximo: El nmero de iteraciones que har el programa, debe


detenerse si encuentra una solucin dentro del margen de tolerancia.

Coeficiente de la tolerancia

Grado de tolerancia. Este nos indica que tan pequeo ser nuestro margen de error, si por
ejemplo se ingresa 5 como coeficiente y 3 como grado de tolerancia, se tendr un margen
de 5*10^-3, que es equivalente a 0.005. Tambin se puede ingresar el grado de
tolerancia de manera manual y luego analizar la cadena, u otro mtodo que el estudiante
considere adecuado.

Lmite superior del mtodo

Lmite inferior.

Ambos lmites deben de ser nmeros enteros (positivos o negativos). Se debe validar que la
entrada sea en el formato indicado, y que el lmite inferior sea menor al superior.
El despliegue de informacin de salida de los mtodos debe de ser de cualquiera de las siguientes
2 formas o ambas, segn la facilidad y comodidad del estudiante:

Cada iteracin debe de ser mostrada en pantalla, plenamente identificada y con los
valores significativos que tiene dicha iteracin Se debe de avanzar de iteracin en
iteracin de manera manual, ya se presionando ENTER u otra tecla que el estudiante
considere a su discrecin.
O bien como una tabla con todos los valores correspondientes.

La funcin para Newton es la siguiente:

Mientras que para Steffensen es:

Como salidas se deben de tener estos valores, por iteracin:

Nmero de iteracin

Xn, valor inicial

Xn+1

Error actual de la iteracin.

Herramientas

Utilizar NASM, FASM, TASM o MASM


DOSBox para correr el ejecutable .COM o .EXE (Obligatorio)
Sistema operativo libre, recomendacin y preferencia Windows.

Restricciones

La prctica es individual

Copias totales o parciales tienen como nota 0 y su reporte a la Escuela de Sistemas.

No se permite el uso directo de cdigo creado por terceros.

No se permite el uso de libreras de C/C++/ASM.


especificados tienen una nota de 0.

El cdigo debe de ir documentado mediante comentarios que expliquen sus acciones. Si


hacen caso omiso a esto, su nota se ver afectada.

La calificacin se har sobre cdigo fuente, revisar que su programa compile de manera
correcta.

La calificacin ser de tipo presencial, si tienen problemas con el horario de calificacin


favor comunicarse con el auxiliar.

Presentar manual de usuario obligatorio.

La fecha de entrega ser el 27 de febrero.

Cualquier uso de libreras u otros no

Enlaces de ayuda

http://www.abreojosensamblador.net/Productos/AOE/

http://www.website.masmforum.com/tutorials/fptute/appen1.htm

http://en.wikipedia.org/wiki/INT_10H

http://asm.inightmare.org/index.php?tutorial=1&location=11

http://www.nondot.org/sabre/graphpro/pixel1.html

Mtodo de Newton: http://en.wikipedia.org/wiki/Newton%27s_method

Mtodo de Steffensen: http://en.wikipedia.org/wiki/Steffensen's_method

You might also like