Funciones recursivas con más parámetros que resultados

Funciones recursivas con más parámetros que resultados

de Baltasar Seijas Bozzo -
Número de respuestas: 1

Tenía una duda general sobre cuando se trabaja con recursiones en 8086. Cuando nos dan una llamada de función por letra de este estilo:

"PUSH CX

PUSH BX

PUSH AX

CALL FUNCION

POP AX"

Cuando se retorna quedan 2 palabras "boyando" en el stack, que puede que no pase nada pero cuando se quieren hacer llamadas recursivas dentro de la función, esto dificulta el manejo de las posiciones del stack y va aumentando la "basura" dentro del stack a medida que se realizan más llamadas. La solución que implementé fue cuando se llama la función dentro de si misma, utilicé dos POP con los registros que se pushean para limpiar el stack, aunque no use esos registros para nada. Esto me choca porque no es la forma de llamar a la función que se da por letra, así que quería saber si esta es la forma correcta de proceder o hay opciones mejores. Muchas gracias

En respuesta a Baltasar Seijas Bozzo

Re: Funciones recursivas con más parámetros que resultados

de Federico Rivero -
Hola!

Con esa llamada que te damos en la letra estamos explicitando que los parámetros se deben retirar ANTES de que la función retorne. Porque justamente, si vos los retirás después de la llamada, estás contradiciendo lo que te indicamos nosotros.

En caso de que no te diéramos un ejemplo de invocación (o si no lo explicitamos en la letra), entonces sí podrías tú decidir si los parámetros adicionales los retira el llamador o si se retiran dentro de la función.

Saludos,
         Federico