Uno puede ver el codigo en ASM con el Diassembly Listing despues de haber hecho el programa en C, pero: Es posible compilar en ASM el codigo generado por el Diassembly Listing???
Si, es perfectamente posible.
porque CCS genera un asm pero con una nomenclatura un poco peculiar... por ejemplo, los registros de bancos 1 en adelante los enumera otra vez desde 0...
No es peculiar, es así como es el assembly en el micro. Algunos usan por ejemplo 0x80 para direccionar el primer registro del banco1 pero eso carece de efecto al ensamblarlo ya que el registro que contendrá ese valor tiene solo 7 bits, con lo cual poner 0x80 es igual a poner 0x00. Por ello están los bits RP0 y RP1.
No hay forma luego de ensamblar de que al volver para atras, tengas de nuevo el 0x80, no en forma directa, salvo que uses algún código que analice que encendiste los bits RP0 y RP1 antes de esa línea, pero esto puede ser engañoso si es una subrutina que es llamada desde varios lugares
PERO!!!! (siempre hay un pero en esto) el problema radica en que si adiciono archivos en el LKR, me genera el error en el Linker!!!! Es decir, si no coloco el archivo .lkr del respectivo micro en el proyecto, compila bien, pero si lo adiciono, genera error en el Linker.
No se si tenga que ver con que CCS no es ansiC y tiene sus propios archivos .h para configurar las caracteristicas del PIC.
No se como será el CCS en esta parte pero tal vez no necesites el .lkr para ese compilador. El MPLAB IDE es una herramienta genérica y sus proyectos también , entonces el hecho de que te deje incluir un archivo .lkr no significa que el compilador y linker que uses, lo vayan a usar.
El C18 sí hace uso del linker file y debes incluirlo.
MLO__ realmente me parece un trabajo aterrador el que mencionas
imagina mirar todas las SFR en sus direcciones, los saltos , las etiquetas, todos son numeros que enredarian. Sin mencionar que tendrias que reacomodar todo el listado para que al final te compile el código
Jaja, coincido totalmente.
En lo personal a veces suelo analizar el assembly generado pero para ver cómo optimizar mi código en C. Es común que por ejemplo un if ordenado de una forma y de otra no produzcan el mismo código.
MLO__ creo que debes aclarar bien para qué quieres hacer todo esto, ya que tal vez te estes haciendo demasiado problema sin necesidad. Otra forma, es que estando en el MPLAB IDE, si vas a View/Program Memory luego puedes Exportar eso a un archivo de texto. Allí tienes el código también en assembly.
Saludos
Pasar de ASM a C no es imposible, siempre hubo herramientas que hacian cosas por el estilo para PC y es factible que las haya o las pueda haber para microcontroladores PIC . Les dejo un ejempo
MicroApl