Estamos teniendo problemas al hacer el include de subrutinas para las pruebas. Sabemos que funciona bien porque si incluimos todas las subrutinas manualmente en el programa de prueba todo funciona según lo pensado. Sin embargo, cuando lo hacemos con include, los números cambian. Estamos seguros también de que las funciones están iguales. Probamos ponerlo al principio, al final (antes del end) y no encontramos solución.
Sin ver el código de ustedes, van un par de precauciones para evitar errores habituales.
1) Cuando ustedes cargan el programa con el debugger y lo mandan ejecutar (ahora con el simulador, o después cuando lo carguen en el sistema hardware cargado en el FPGA) el programa de ustedes empieza por lo que esté al comienzo. El ensamblador arma todo para que la sección .text se ubique a partir de la dirección 0xB000, y cuando mandamos a correr el programa se comienza a ejecutar lo que esté cargado en esa dirección. Por lo tanto si ponen al comienzo las subrutinas nunca va a llegar a ejecutar el programa de prueba.
2) Cuidado con la directiva .end. Esa directiva le indica al ensamblador ignorar todo lo que venga después. Verifiquen que al final del archivo que están incluyendo no les quedó una directiva .end porque el ensamblador va a ignorar todo lo que venga después del .include
Si no estaban cayendo en ninguno de estos dos errores, entonces sigamos buscando:
- Fíjense en la ventana con los mensajes del compilador a ver si no da algún mensaje de error o warning.
- Fíjense en esa misma ventana si les aparece el listado de lo que genera el ensamblador para tratar de entender lo que está pasando.
Cualquier duda consulten de nuevo aportando más información, con cuidado de no poner soluciones en este foro.
Saludos,
julio
Gracias Julio por la respuesta. Estábamos teniendo en cuenta ambas cosas que mencionas. Lo logramos arreglar colocando etiquetas para que el programa se dirija hacia dónde precisabamos. Saludos!