Hola.
Las librerias pueden estar construidas con dos formas de aplicación distinta, la primera, y más habitual, para incluir subrutinas, la segunda para incluir "trozos" de codigo, la diferencia de tratamiento es diferente en ambos casos.
El #include <p16fxx.inc> es un ejemplo claro de inserción de "trozos" y exige que el include se situe en el punto exacto del programa en que queremos que actue
El include <teclado.asm> (no pasaría nada si llevase extesión .inc), por ejemplo suena más a subrutina, en cuyo caso su ubicación optima es como la propuesta por Astaroth_25 junto con las demás subrutinas y despues del programa principal.
Las precauciones a tener en cuenta en todos los casos son:
- Es necesario efectuar la asignación de ficheros que se usen en las librerias, los que no estén ya definidos o incluidos en, por ejemplo, la <p16fxx.inc>.
- Las librerias que se usen como subrutina terminan con una instrución de retorno (return por ejemplo).
- Ninguna libreria incluye la directiva END (a veces cuando un programita que nos interesa lo convertimos en libreria es posible que se nos olvide eliminar el END).
- Recordar que la directiva #include no admite etiqueta en su misma línea (a tener en cuenta especialmente para subrutinas).
- Recordar que hay ensambladores que exigen que las librerias estén en la misma carpeta que el programa principal o en su defecto que se defina la ruta para su localización.
Personalmente uso la extensión .inc para todas las librerias y en ellas incluyo en su encabezamiento unas tres líneas de comentarios, la primera con el nombre, indicacion si está como subrutina o como trozo insertable, la segunda una brevisima descripción de características, limitaciones y/o funcionamiento (a modo de recordatorio), y la tercera un listado de todos los registros que se utilizan en dicha subrutina (exeptuando tanto a la ya clásica <p16fxx.inc> como a sus ficheros)
Ya nos contaras tus experiencias
Saludos