Logo Studenta

Actividad_8_SernaSerna - Jose SernaS

¡Estudia con miles de materiales!

Vista previa del material en texto

Centro universitario de ciencias exactas e ingenierías 
Ingeniería en computación 
Traductores de lenguajes 1 
Sección D05 
José Luis Serna Serna 
Código: 218292327 
Actividad 8, 2020A, Macro y Función 
10/Mar/2020 
 
 
Objetivo. 
Implementar un programa donde muestre el uso de MACRO Y FUNCION 
Código fuente. 
include emu8086.inc ;se incluye la libreria de emu8086 
 org 100h 
 jmp start 
 
 msg: db "Mostrar uso de macro y funcion",0Dh, 0Ah, 24h 
 
 funcion1: mov ax,oAh 
push ax ;declaramos la funcion 
xor ax,ax 
 ;instrucciones 
 pop ax 
 ret 
 
 inicio macro var1,var2 ;declaramos la macro con 2 parametros 
 push ax 
 mov ax,var1 
 add ax,var2 
 ;intrucciones usando var1 y var2 
 pop ax 
 endm 
 
 start: 
 gotoxy 10,5 ;se usa gotoxy para las coordenadas donde se va imprimir el mensaje 
 print 'Probando la funcion' 
 call funcion1 ;mandamos llamar a la funcion 
 gotoxy 10,10 
 print 'Probando la macro' 
 
 inicio 03h,04h ;llamamos la macro y le mandamos 2 parametros 
 
 mov ah,0 
 int 16h ;interrupcion 16h 
 ret 
Capturas de pantalla de la ejecución. 
Probando la función. 
Llamamos a la función mediante call. 
 
 
 
 
 
 
 
 
 
Al llamar la funcion vemos como salta a donde se encuentra la función y muestra las operaciones 
que tiene. 
 
 
 
 
 
 
 
 
Realiza la operaciones que tiene la funcion y sale de la misma. 
 
 
 
 
 
Probando la macro. 
Al probar la macro vemos que no realiza ningún salto y ya las operaciones están allí disponibles 
para usarse. 
 
Realiza las operaciones que están dentro de la macro y se sale y continúa con lo siguiente. 
 
 
Conclusión. 
Una diferencia entre una macro y una función es la forma de llamar a cada uno, para llamar a una 
función se requiere el uso de una directiva y se realiza el salto hacia donde se encuentre la Función, 
en cambio la llamada a las Macros se realiza como si se tratara de una instrucción propia del 
ensamblador, es decir, cuando el ensamblador procesa tal sentencia, reemplaza la sentencia por las 
líneas del texto asociadas a esa macro. Entonces, las procesa como si hubieran existido en el 
archivo del código fuente original. Entonces se puede decir que las macros son más rápidas para 
ejecutarse, tal vez en pocas instrucciones o en programas pequeños no se vea tanto la diferencia 
pero cuando ya es un código grande ya empieza a costar tantos saltos que se realizan al llamar a las 
funciones. Entonces ya dependiendo de las instrucciones que se necesiten hacer se puede elegir 
cual conviene más usar.

Otros materiales