Autor Tema: problema con muchas tablas en asm  (Leído 4018 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: problema con muchas tablas en asm
« Respuesta #15 en: 06 de Julio de 2014, 17:59:00 »
Lamentablemente la mejor manera de prevenirlos es programando a conciencia. El MPASM poco puede hacer por vos, ya que cuando uno programa en ASM es mucho más complejo de seguir (y analizar) el flujo de programa que puede ocurrir durante runtime. Los lenguajes de programación de más alto nivel suelen tener como ventaja que, a cambio de limitarte un poco los saltos de programa, tablas, etc, pueden advertirte en tiempo de compilación que puede que excedas la máxima cantidad de llamadas anidadas y desbordes la STACK (pila), además de que son ellos quienes suelen generar el código para cargar/descargar el STACK y corroborar que siempre tengan coherencias las cargas y descargas.

Vas a tener que revisar que donde hagas un CALL, RETURN, RETLW o RETFIE, la pila se cargue y descargue correctamente. Por cada CALL tiene que haber un RETURN/RETLW o RETFIE en algún momento, y en ningún momento podés anidar más de 8 llamadas, teniendo en cuenta que cuando se ejecuta la ISR, se consume un nivel del STACK también, y que cualquier CALL que hagas dentro de la ISR sigue incrementando la STACK sobre la que ya venía cargada antes de la ejecución de la interrupción.

Saludos
« Última modificación: 06 de Julio de 2014, 18:03:45 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


 

anything