Ingeniería en Sistemas Computacionales Nombre del alumno
Pamela Gil Matrícula
26292 Nombre de la Tarea
Macros y Procedimientos Unidad #
nidad 6! Macros y Procedimientos Nombre del Tutor
"o# $mir %odrígue& 'li(ares Fecha
29!))!2*)6
Unidad #: 6!
Macros y Procedimientos
Lenguaje Ensamblador
INTRODUCCION
En lenguaje ensamblador se denomina macro al conjunto de instrucciones que se agrupan bajo un nombre descriptivo, después de que la macro ha sido declarada, sólo es necesario indicar su nombre en el cuerpo del programa y el ensamblador se encargara de reemplazarla por las instrucciones de dicha. Las instrucciones de macros se pueden guardar en el mismo programa o en un archivo separado que el programa pueda identificar y se ejecutan pulsando una combinación especial de teclas o un botón creado para esa acción. Una de las ventajas que brinda el uso de las macros es la creación de bibliotecas, las cuales son grupos de macros que pueden ser incluidas en un programa desde un archivo diferente. ara la creación de estas bibliotecas, solo tenemos que escribir un archivo con todas las macros que se necesitar!n y guardarlo como archivo de te"to y posteriormente se pueden integrar para su ejecución. Un procedimiento es un conjunto de instrucciones en el cual podemos dirigir el flujo de nuestro programa, al finalizar la ejecución de dichas instrucciones se restablece el control a la siguiente linea a procesar del código que mando llamar al procedimiento. Los procedimientos nos ayudan a crear programas legibles y f!ciles de modificar. #l momento de invocar a un procedimiento se guarda en la pila la dirección de la siguiente instrucción del programa para que, una vez transferido el flujo del programa y terminado el procedimiento, se pueda regresar a la linea siguiente del programa original.
2
Unidad #: 6!
Macros y Procedimientos
Lenguaje Ensamblador
Ejercicios de programación:
Escriba los siguientes programas en ensamblador de $% bits con comentarios y estructura est!ndar. ara ello puede utilizar todos los programas que se han realizado con anterioridad. uede reutilizar código de las clases y libros, pero no copiarlos en su totalidad. &odos los procedimientos y macros deben localizarse en una librer'a aparte con e"tensión (.lib 1) Escriba SOLO UNA de as sig!ien"es macros #E res!"ado se deja en D$): % &acro para ee'ar a a po"encia n(sima !n n*mero en"ero+
% &acro para cac!ar e ,ac"oria de 'aor n+
&)&LE *!lculo de un factorial +act.asm)*LU/E )rvine01.inc .code main 23* push $1 4 calcula el factorial de $1 call actorial 4 calcula factorial +E#52etorno6ain7 call 8rite/ec 4 lo muestra call *rlf e"it main E/ 499999999999999999999999999999999999999999999999999999999 actorial 23* 4 *alcula un factorial. 4 2ecibe7 :ebp; n, el n?mero a calcular 4 /evuelve7 ea" > el factorial de n 4999999999999999999999999999999999999999999999999999999999 push ebp mov ebp,esp mov ea",:ebp; @ rototipo de *7 int quadratic+ double a, double b, double c, double ( root$, double (root1 arFametros7 a, b, c 9 *oeficientes de la ecuaciFon cuadrFatica +ver arriba root$ 9 #puntador al double que almacena la primera raFGz root1 9 #puntador al double que almacena la segunda raFGz Halor de retorno7 devuelve $ si las raFGces son reales si no @ Idefine a qJord :ebp;
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.