Hola,
En algun momento estas usando mas pila cuando crees que no...
Citar:
Supuestamente para llegar a los niveles altos hay que poner un call dentro de otro call, también se les conoce como call anidados.
A eso me referia en el anterior post: Tienes muchas llamadas recursivas (una dentro de otra)...
Tambien te comentaba que puede ser que algun dato lo puedas empilar. En ASM del PIC no creo que tengas muchas posibilidades, pero en C o en otros ASM (otro conjunto de memotecnicos de otros micros) es bastante frecuente el empilar datos temporales (locales).
Citar:
Intenté empezar de nuevo con el PIC18F4550 ya que tiene 31 niveles de pila o stack, pero requiere mucho tiempo para poner nombres de los registros compatibles. (Si puedo lo intento solucionar con el 16F887, en caso que no logre nada, pues al 18F4550).
Por eso la gente usa C. Eso permite hacer codigo portable de un micro a otro.
Yo, con los tiempos que corren, me permitira aconsejarte dar el salto y pasarte a micros mas potentes y estables. Todo ello ya con un conjunto de herramientas de programacion en C (el compilador IAR por ejemplo).
Un buen micro para poder compilar y sobre todo depurar sin problemas es el
Atmel AT128. Tienes memoria, y todo lo que la familia PIC te pueda aportar...
Por lo demas el tema, me temo, no tiene mas misterio que ir poco a poco detectando donde te has pasado y cambiando el codigo en consecuencia.