Procedimientos Y Macros En Lenguaje Ensamblador
Procedimiento. Conjunto de instrucciones que realizan una tarea -y preferentemente solo una- que se ha de utilizar en más de una ocasión pero se declara una sola vez en el código fuente.
Un procedimiento puede llamar a otro, y este a su vez a otro y así sucesivamente
El procedimiento se guarda en memoria cuando se ensambla y ejecuta y entonces puede ser llamado tantas veces como sea necesario, ahorrando espacio y facilitando el desarrollo de software gracias a que permite organizarlo.
Los procedimientos deben ser cortos, de no más de una o dos páginas.
Sus ventajas son: 1. Reducen la cantidad de código 2. Permiten organizar mejor el programa 3. Facilitan la depuración del programa 4. …ver más…
PROC
Es una directiva que indica donde inicia el procedimiento, su formato es: nombre PROC tipo
Tipos.
1. Los locales (PROC NEAR), serán usados por una tarea específica
2. Los globales (PROC FAR), pueden ser usados por todo el software.
Notas:
-Si no se especifica tipo, se usa el default NEAR
-DOS inicia un programa llamando al programa principal, por ello, éste siempre es FAR
-PROC puede además utilizar la aseveración USES, que le permite definir qué registros serán almacenados en la pila antes de correr el procedimiento. Esos registros serán recuperados al terminar el procedimiento. Ejemplo:
Nombre PROC NEAR USES AX BX SI DI
ENDP
Es una directiva que indica donde termina el procedimiento
Nombre ENDP
Nótese que nombre de PROC y de ENDP deben ser el mismo.
Se recomienda que cada procedimiento salve y recupere registros, por lo que debe usar PUSHA al principio y POPA al final.
RET
Permite que el programa principal vuelva al procedimiento que lo llamó (DOS) o bien
Permite que los procedimientos secundarios vuelvan al procedimiento que los llamó (programa principal)
Es una instrucción que recupera la dirección de retorno de la pila para que el programa pueda seguir ejecutándose a partir de la instrucción que sigue a CALL. Se inserta antes de ENDP, su formato es:
RET
Un retorno cercano (local) recupera 16 bits de la pila y los coloca en el IP.
Un