practica1 arquitectura de computadores 1 usac - metodos numericos -asm-

8
Universidad De San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas Arquitectura de computadores y ensambladores 1 Practica 1, (arquitectura de computadores y ensambladores 1) Leonel Enrique Rojas Chinchilla Carne: 200819162 Fecha Entrega: 15-03-2011

Upload: leonel-rojas

Post on 13-Apr-2017

1.543 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Practica1 arquitectura de computadores 1 usac - metodos numericos -asm-

Universidad De San Carlos de Guatemala

Facultad de Ingeniería

Escuela de Ciencias y Sistemas

Arquitectura de computadores y ensambladores 1

Practica 1, (arquitectura de computadores y ensambladores 1)

Leonel Enrique Rojas Chinchilla

Carne: 200819162

Fecha Entrega: 15-03-2011

Page 2: Practica1 arquitectura de computadores 1 usac - metodos numericos -asm-

Introduccio n

Assembler un lenguaje de bajo nivel que permite interaccionar directamente con la memoria y

procesador del equipo de cómputo, este lenguaje tiene funciones muy básicas que solo permiten

la manipulación de hasta 3 direcciones de memoria, siendo así muy extenso un programa que en

un lenguaje de alto nivel sería muy corto.

Uno de los objetivos de esta práctica es graficar un polinomio para dar una mejor percepción de

los sistemas numéricos que se están resolviendo. El modo de video 13h es el que nos permite

dibujar por medio de posiciones en pantalla y cargándolas a memoria, especificando para cada

punto su color.

Page 3: Practica1 arquitectura de computadores 1 usac - metodos numericos -asm-

Objetivo

Aprender a hacer operaciones básicas en lenguaje assembler.

Lograr ingresar datos por teclado y poder operarlos.

Lograr dibujar con el modo 13h.

Hacer la primera derivada de una función especificada por el usuario.

Hacer iteraciones de un método para llegar a un resultado satisfactorio.

Page 4: Practica1 arquitectura de computadores 1 usac - metodos numericos -asm-

Contenido

Definición de macros:

Un macro es un pedazo de código que se escribe una sola vez y puede ser utilizado tantas veces

sea necesario por medio de una llamada a macro, dando la ventaja de no reescribir código. Un

macro da la posibilidad de recibir parámetros a la hora de hacer una llamada y así poder usar los

valores que se pasan como parámetros y ejecutar la tarea específica del macro.

Una diferencia importante, un macro puede ser llamado desde diferentes programas mientras

que un procedimiento no. Y la forma de llamar a un macro es como si fuera una instrucción nativa

de assembler, por ejemplo para llamar a un macro llamado “mm” solo es necesario poner “mm”

en asembler sin alguna instrucción extra.

Para la definición de un macro tenemos la siguiente sintaxis:

NombreDeMacro MACRO [param1,param2,param3]

Cuerpo…

Cuerpo…

Cuerpo…

ENDM

Sintaxis para llamada a macro:

NombreDeMacro param1,param2,param3

Otra ventaja importante de la utilización de macros es que se pueden crear librerías y luego

usarlas en diferentes aplicaciones incluyendo el archivo con el comando “include nombreArch”.

Para crear una librería con macros es necesario hacer todos los macros en un archivo y guardarlo

como un archivo de texto, para luego poder importarlo asi como se mencionó antes.

Page 5: Practica1 arquitectura de computadores 1 usac - metodos numericos -asm-

Funciones Assembler utilizadas:

Instrucción Descripción Ejemplo

push empuja un nuevo valor en la pila push op

pop saca el valor del tope de la pila pop op

mov copia el valor de op y la ingresa a dest mov dest,op

add hace una suma aritmética normal de los dos parámetros y guarda el valor en dest add dest,op

sub hace una resta aritmética normal de los dos parámetros y guarda el valor en dest sub dest,op

idiv hace una división tomando en cuenta el signo, ax/op y lo guarda en al idiv op

imul hace una multiplicación tomando en cuenta el signo, ax*op y lo guarda en al imul op

inc incrementa en una unidad el valor del parámetro especificado inc op

dec decremento en una unidad el valor del parámetro especificado dec op

lea carga la dirección de memoria de un registro especificado como parámetro y lo guarda en dest lea dest, op

int interrumpe la ejecución de una llamada y regresa al punto donde fue llamado int

call llama a una etiqueta o procedimiento call identificador

jmp salta hasta la etiqueta especificada jmp identificador

je salta hasta la etiqueta especificada si los valores de comparación son iguales je identificador

jne salta hasta la etiqueta especificada si los valores de comparación no son iguales jne identificador

jae salta hasta la etiqueta especificada si dest es mayor o igual que op jae identificador

jbe salta hasta la etiqueta especificada si dest es menor o igual que op jbe identificador

jge salta hasta la etiqueta especificada si dest es mayor o igual que op, tomando en cuenta el signo jge identificador

jle salta hasta la etiqueta especificada si dest es menor o igual que op, tomando en cuenta el signo jle identificador

Page 6: Practica1 arquitectura de computadores 1 usac - metodos numericos -asm-

Diagrama de Flujo

Esteffensen?

Inicia

Pedir metodo a utilizar

Newton? Muller?

Pedir datos para newton

Pedir datos paraSteffensen

Pedir datos para Muller

si

no no

Si si

Graficar las valuaciones de

newton

Graficar las valuaciones de

steffensen

Graficar las valuaciones de

muller

Poner modo 13h y empezar a plotear puntos valuando la funcion ingresada

en un intervalo establecido

Ejecutar método de newton

Ejecutar método de Steffensen

Ejecutar método de Muller

Page 7: Practica1 arquitectura de computadores 1 usac - metodos numericos -asm-

Conclusiones

Para implementar métodos numéricos es necesario implementar operaciones complejas como la

raíz cuadrada por medio de operaciones muy simples como la suma y multiplicación.

Para poder dibujar es necesario usar instrucciones del método 13h y hacer uso de arreglos para

dibujar figuras predefinidas.

El uso de procedimientos y macros es fundamental para poder manejar correctamente los saltos y

comparaciones.

Para hacer comparaciones es necesario utilizas sentencias como je, jne, jg, jl, jbe,ja,jae,jb,etc…

Page 8: Practica1 arquitectura de computadores 1 usac - metodos numericos -asm-

Recomendaciones

Para el aprendizaje se recomienda utilizar la página abrelosojosensamblador.com en la

cual se encuentra teoría y ejemplos de manejo de assembler en fasm, tasm, asm, etc. Por

lo que se facilita hacer pruebas.

El uso de fasm y otros ides solo es posible en sistemas operativos que tengan una

arquitectura de 32 bits por lo que se recomienda instalar una máquina virtual y manejar

assembler allí.

También es recomendable usar dosbox para la programación para evitar posibles

problemas en el código que el programador ingresa y causar algún daño al equipo.

Sino se cuenta con un ide fácil de usar se recomienda usar emu8086 en el cual se posee

una consola de debug para poder llevar control de los valores de los registros y ejecutar

paso a paso.