macro y procedimiento

9
Instituto Tecnológico Superior De San Martín Texmelucan MATERIA: Lenguajes de Interfaz DOCENTE: Ing. Susana Garrido Cortez ALUMNO(A): Pablo Corona Solano SEMESTRE: 5 SEMESTRE ÁREA: ING. SISTEMAS COMPUTACIONALES NOMBRE DEL TRABAJO: INVESTIGACIÓN MACRO Y PROCEDIMIENTO

Upload: pablo-crn

Post on 02-Feb-2016

215 views

Category:

Documents


0 download

DESCRIPTION

USO DE MACROS Y PROCEDIMIENTOS EN ENSAMBLADOR

TRANSCRIPT

Page 1: Macro y Procedimiento

Instituto Tecnológico Superior De

San Martín Texmelucan

MATERIA:

Lenguajes de Interfaz

DOCENTE:

Ing. Susana Garrido Cortez

ALUMNO(A):

Pablo Corona Solano

SEMESTRE:

5 SEMESTRE

ÁREA:

ING. SISTEMAS COMPUTACIONALES

NOMBRE DEL TRABAJO:

INVESTIGACIÓN MACRO Y

PROCEDIMIENTO

Page 2: Macro y Procedimiento

Instituto Tecnológico Superior De

San Martín Texmelucan

INTRODUCCIÓN

Una macro es un nombre que define un conjunto de instrucciones que

serán sustituidas por la macro cuando el nombre de ésta aparezca en un

programa (proceso denominado expansión de macros) en el momento

de ensamblar el programa identificar.

Una macroinstrucción es una instrucción compleja, formada por otras

instrucciones más sencillas. Esto permite la automatización de tareas

repetitivas. Además tiene que estar almacenada, el término no se aplica

a una serie de instrucciones escritas en la línea de comandos enlazadas

unas con otras por redirección de sus resultados o para su ejecución

consecutiva.

Las macros suelen almacenarse en el ámbito del propio programa que

las utiliza y se ejecutan pulsando una combinación especial de teclas o

un botón especialmente creado y asignado para tal efecto. La diferencia

entre una macroinstrucción y un programa es que en las

macroinstrucciones la ejecución es secuencial y no existe otro concepto

del flujo de programa que por tanto, no puede bifurcarse.

Un ejemplo de macro, para colocar el cursor en alguna posición

determinada de la pantalla es:

Posición MACRO Fila, Columna

PUSH AX

PUSH BX

PUSH DX

MOV AH, 02H

MOV DH, Fila

MOV DL, Columna

Page 3: Macro y Procedimiento

Instituto Tecnológico Superior De

San Martín Texmelucan

MOV BH, 0

INT 10H

POP DX

POP BX

POP AX

ENDM

MACROS

Ventajas y desventajas del uso de macros.

Si bien es cierto que las macros proporcionan mayor flexibilidad a la

hora de programar, también es cierto que tienen algunas desventajas.

La siguiente es una lista de las principales ventajas y desventajas del

uso de las macros.

Ventajas:

• Menor posibilidad de cometer errores por repetición.

• Mayor flexibilidad en la programación al permitir el uso de

parámetros.

• Código fuente más compacto.

• Al ser más pequeño el código fuente, también es más fácil de leer

por otros.

Desventajas:

• El código ejecutable se vuelve más grande con cada llamada a la

macro.

• Las macros deben ser bien planeadas para evitar la redundancia

de código.

Page 4: Macro y Procedimiento

Instituto Tecnológico Superior De

San Martín Texmelucan

INICIO MACRO ; Define macro

MOV AX, DATA ; cuerpo de

MOV DS, AX ; la definición

MOV ES, AX ; de la macro

ENDM

La creación de estas bibliotecas es muy sencilla, únicamente tenemos

que escribir un archivo con todas las macros que se necesitarán y

guardarlo como archivo de texto.

Para llamar a estas macros solo es necesario utilizar la instrucción

Include NombreDelArchivo, en la parte de nuestro programa donde

escribiríamos normalmente las macros, esto es, al principio de nuestro

programa (antes de la declaración del modelo de memoria).

Suponiendo que se guardó el archivo de las macros con el nombre de

MACROS.TXT la instrucción Include se utilizaría de la siguiente forma:

;Inicio del programa

Include MACROS.TXT

.MODEL SMALL

.DATA

;Aqui van los datos

.CODE

Inicio:

;Aqui se inserta el código del programa

.STACK

;Se define la pila

End Inicio

;Termina nuestro programa

Page 5: Macro y Procedimiento

Instituto Tecnológico Superior De

San Martín Texmelucan

Bibliotecas de macros.

Una de las facilidades que ofrece 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. La creación de estas

bibliotecas es muy sencilla, únicamente tenemos que escribir un archivo

con todas las macros que se necesitarán y guardarlo como archivo de

texto.

Para llamar a estas macros solo es necesario utilizar la instrucción

Include NombreDelArchivo, en la parte de nuestro programa donde

escribiríamos normalmente las macros, esto es, al principio de nuestro

programa

Suponiendo que se guardó el archivo de las macros con el nombre de

MACROS.TXT la instrucción Include se utilizaría de la siguiente forma:

;Inicio del programa

Include MACROS.TXT

.MODEL SMALL

.DATA

; Aqui van los datos

.CODE

Inicio:

;Aqui se inserta el código del programa

.STACK

;Se define la pila

End Inicio;Termina nuestro programa

EJEMPLO:

Page 6: Macro y Procedimiento

Instituto Tecnológico Superior De

San Martín Texmelucan

Page 7: Macro y Procedimiento

Instituto Tecnológico Superior De

San Martín Texmelucan

PROCEDIMIENTOS EXTERNOS E INTERNOS

Una llamada a un procedimiento involucra el pase de información tanto

hacia el procedimiento como de retorno y el pase del control de flujo de

ejecución de una parte del código hacia otra. El pase de información

desde y hacia el procedimiento se realiza a través de la pila. La porción

de la pila asignada a una llamada a un procedimiento se conoce como

marco de pila. Para utilizar la pila se usan dos registros que sirven de

apuntadores: %ebp es el apuntador de marco de pila y %esp es el

apuntador de pila, éste es el registro cuyo contenido cambia mientras se

ejecuta el procedimiento.

Los procedimientos internos son aquellos que se declaran y semismo

programa, también son llamados procedimientos locales. Un ejemplo

de procedimiento interno es el siguiente:

; Procedimiento: GotoXY

; Descripción: Coloca el cursor una posición especifica de la pantalla

; Parámetros: Dl=X,Dh=Y

PROC GotoXY

xor bh,bh

mov ah,02h

int 10h

ret

endp GotoXY

Los procedimientos externos, a diferencia de los internos, se declaran en

módulos o programas separados al programa donde el procedimiento es

llamado, en otras palabras, la llamada al procedimiento se encuentra en

un programa y el procedimiento en otro.

Page 8: Macro y Procedimiento

Instituto Tecnológico Superior De

San Martín Texmelucan

Para poder utilizar procedimientos externos, es necesario que sean

declarados como públicos en el programa donde se encuentran y que

sean llamados como externos en el programa donde serán usados. Se

debe contar con tres directivas de ensamble: .PUBLIC para declarar los

procedimientos como públicos, .EXTERN para indicar que el

procedimiento que se va a usar está fuera del programa y .INCLUDE

para enlazar el programa que contiene los procedimientos con el

programa que los llama.

PUBLIC PROC1 ; Se define como público

PROC1 PROC FAR ; comienzo del procedimiento (lejano)

(Instrucciones) ; Instrucciones del procedimiento

RET ; Instrucción para retornar

PROC1 ENDP ; Final del procedimiento

Para llamar a un procedimiento se utiliza la instrucción CALL:

CALL nombre_procedimiento

Por ejemplo Este programa muestra la forma de utilizar procedimientos

y datos externos en los programas por medio de las directivas de

inclusión include y public.

.MODEL TINY

.INCLUDE proc2.ASM ;Incluir el archivo proc2.asm

;el cual contiene la variable de cadena

;Cad1 y los procedimientos externos

;usados en este programa.

.DATA

Cad2 db 'Esta es una cadena de prueba 2...',13,10,'$'

.CODE

Page 9: Macro y Procedimiento

Instituto Tecnológico Superior De

San Martín Texmelucan

INICIO: ;Punto de entrada al programa

Mov Dl,20 ;X=20

Mov Dh,10 ;Y=10

Call GotoXY ;GotoXY 20,10

Lea DX,Cad2 ;DX->Cad2 en Proc3.asm

Call Imprime_Cad ;Imprime Cad2

Lea DX,Cad1 ;DX->Cad1 en Proc2.asm

Call Imprime_Cad ;Imprime Cad1

Mov AX,04C00h ;Fin del programa

Int 21h ;

END INICIO

END