- Definición de procedimiento
Un procedimiento es un conjunto de instrucciones a los que podemos dirigir el flujo de nuestro programa, y una vez terminada la ejecución de dichas instrucciones se devuelve 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.
Al 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 (el que llam— al procedimiento).
Sintaxis de un procedimiento
Existen dos tipos de procedimientos, los intrasegmentos, que se encuentran en el mismo segmento de instrucciones y los intersegmentos que pueden ser almacenados en diferentes segmentos de memoria.
Cuando se utilizan los procedimientos intrasegmentos se almacena en la pila el valor de IP y cuando se utilizan los intersegmentos se almacena el valor CS:IP
Para desviar el flujo a un procedimiento (llamarlo) se utiliza la directiva:
CALL NombreDelProcedimiento
Las partes que componen a un procedimiento son:
Declaración del procedimiento
código del procedimiento
Directiva de regreso
Terminación del procedimiento
Por ejemplo, si queremos una rutina que nos sume dos bytes, almacenados en AH y AL cada uno y guardar la suma en el registro BX:
Suma Proc Near ;Declaración del procedimiento
Mov Bx, 0 ;Contenido del procedimiento
Mov Bl, Ah
Mov Ah, 00
Add Bx, Ax
Ret ;Directiva de regreso
Suma Endp ;Declaración de final del procedimiento
En la declaración la primera palabra, Suma, corresponde al nombre de nuestro procedimiento, Proc lo declara como tal y la palabra Near le indica al MASM que el procedimiento es intrasegmento. La directiva Ret carga la dirección IP almacenada en la pila para regresar al programa original, por último, la directiva Suma Endp indica el final del procedimiento.
Para declarar un procedimiento intersegmento sustituimos la palabra Near por la palabra FAR.
El llamado de este procedimiento se realiza de la siguiente forma:
Call Suma
- Definición de una macro
Una macro es un grupo de instrucciones repetitivas en un programa que se codifican solo una vez y pueden utilizarse cuantas veces sea necesario.
Sintaxis de una macro
Las partes que componen a una macro son:
Declaración de la macro
código de la macro
Directiva de terminación de la macro
La declaración de la macro se lleva a cabo de la siguiente forma:
NombreMacro MACRO [parametro1, parametro2...]
Aunque se tiene la funcionalidad de los parametros es posible crear una macro que no los necesite.
La directiva de terminación de la macro es: ENDM
Un ejemplo de macro, para colocar el cursor en alguna posición determinada de la pantalla es:
Posicion MACRO Fila, Columna
PUSH AX
PUSH BX
PUSH DX
MOV AH, 02H
MOV DH, Fila
MOV DL, Columna
MOV BH, 0
INT 10H
POP DX
POP BX
POP AX
ENDM
Para utilizar una macro solo es necesario llamarla por su nombre, como si fuera una instrucción mas del ensamblador, ya no son necesarias las directivas como en el caso de los procedimientos. Ejemplo:
Posicion 8, 6
- Semejanzas y Diferencias entre Macro y Procedimiento:
La principal diferencia entre una macro y un procedimiento es que en la macro se hace posible el paso de parámetros y en el procedimiento no (esto es aplicable solo para el MASM, hay otros lenguajes de Programación que si lo permiten). Al momento de ejecutarse la macro cada parámetro es sustituido por el nombre o valor especificado al momento de llamarla.
Podemos decir entonces que un procedimiento es una extensión de un determinado programa, mientras que la macro es un módulo con funciones específicas que puede ser utilizado por diferentes programas.
Otra diferencia entre una macro y un procedimiento es la forma de llamar a cada uno, para llamar a un procedimiento se requiere el uso de una directiva, en cambio la llamada a las macros se realiza como si se tratara de una instrucción del ensamblador.
Las macros ofrecen una mayor flexibilidad en la Programación comparadas con los procedimientos, pero no por ello se dejarán de utilizar estos últimos.
No hay comentarios:
Publicar un comentario