Cuando se implementa una función recursiva y se llega al paso base, los parámetros se retornan en general a través del stack.
Suponiendo el caso donde no interesa preservar los registros, y no se pusheo nada ademas del parámetro, se tiene en el tope del stack el parámetro deseado, y debajo el valor del ip. Por lo tanto, cuando se ejecute ret, el valor del parámetro pasara a estar en el registro ip y el programa se rompe.
Hay alguna solución mejor para este problema, que previo a pushear el parámetro, popear el valor del ip a un registro, pushear el parámetro, pushear el registro al que se popeo el ip y luego de esto hacer ret?