4.3 Parámetros
Existen dos tipos básicos de parámetros de subrutinas: los parámetros de registro y los parámetros de pila.
Las bibliotecas Irvine32 e Irvine16 utilizan parámetros de registro. En esta sección le mostraremos cómo declarar y utilizar parámetros de pila.
Los valores que un programa pasa a una subrutina que llama se conocen como argumentos. Cuando la subrutina a la que se llamó recibe los valores, se les llama parámetros.
La subrutina que se llamó accede a los argumentos que se meten en la pila al momento de su llamada. Los parámetros de registro están optimizados para la velocidad de ejecución del programa. Por desgracia, tienden a crear amontonamiento de código en los programas que hacen llamadas. A menudo hay que guardar el contenido existente de los registros antes de que se puedan cargar con los valores de los argumentos. Tal es el caso de cuando se hace una llamada a DumpMem, por ejemplo:
pushad mov esi,OFFSET arreglo ; desplazamiento (OFFSET) inicial mov ecx,LENGTHOF arreglo ; tamaño, en unidades mov ebx,TYPE arreglo ; formato de doble palabra call DumpMem ; muestra la memoria popad
Los parámetros de pila ofrecen un método más flexible. Justo antes de la llamada a la subrutina, los argumentos se meten en la pila. Por ejemplo, si DumpMem utilizara parámetros de pila, lo llamaríamos usando el siguiente código:
push TYPE arreglo push LENGTHOF arreglo push OFFSET arreglo call DumpMem
|