Si esta en C. El mismo compilador general el .asm y luego lo pasa a .hex
El .hex se puede traducir directamente al .asm ( son casi iguales ). Asi que lo que queda saber es:
- Queres generar un .hex para grabarlo en el micro?
Debes tener el compilador para ese programa en C, para PIC hay algunos como XC8, CCS, Mikro C y seguro que hay mas.
- Queres crear un .asm desde ese archivo .c?
Aca se poresentan varias opciones, una es que aprendas C y crees lo mismo en ASM, va a llevar un buen tiempo, todo depende de lo que posea el C
La otra es compilar el C, algunos compiladores permiten que se deje el .asm, sino podes tomar el .hex y de ahi te apareceria todo el programa en ASM.
Lo feo de la ultima opcion es que si se genera el .asm los nombres de las funciones por ahi son raras $$JFAF$$Function_saioewq13 , cosas asi.
Si tomas del .hex ser pierde todo, hasta incluso los nombres de los registros pasan a ser simplemente un numero, suponete que el registro STATUS ocupa la posicion de memoria 0x05 entonces en ves de tener
MOVWF STATUS,RP0
Tenes
MOVWF 0x05,0x04
Por ejemplo, y tenes que reemplazar todo.
Asi que depende de lo que quieras hacer.