TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: Picolson en 15 de Julio de 2008, 01:28:33
-
Hola:
Aquí tengo un código que hice muy pequeño.
He intentado desamblar alguno pero grande y no soy capaz de saber que PIC usa, ni configuración, sólo las instrucciones.
Los dejo aquí el código que hice muy pequeño a ver si alguien sabe desamblarlo y hacerlo funcionar en el MPLAB, lo he probado con v8.14. Al menos saber que hace este programa que hice.
:020000040000FA
:1000000083168601FF308500831286018501051C59
:0E0010000C28061386170728061786130728E4
:02400E00F13F80
:00000001FF
Saludos.
-
Aquí tengo un código que hice muy pequeño.
Al menos saber que hace este programa que hice.
que es?, un desafio?, como es eso de que haces un programa y no sabes que hace?
no entiendo que es lo que buscas?
bsf 0x03 , 5
clrf 0x06
movlw 0xFF
movwf 0x05
bcf 0x03 , 5
clrf 0x06
clrf 0x05
btfss 0x05 , 0
goto 0x0C
bcf 0x06 , 6
bsf 0x06 , 7
goto 0x07
bsf 0x06 , 6
bcf 0x06 , 7
goto 0x07
-
Hola, me he explicado mal.
Hice un programa que entiendo, pero doy por hecho que no lo he visto nunca con el motivo de cómo averiguar el código que eso por lo menos si se, pero no la configuración de code proted, etc...ni el pic exacto. Es para saber cómo resuelven ese problema. Digamos, para descompilarlo bien y meter el código que sirva en el MPLAB. Lo que has descompilado está bien pero incompleto, ya que si intentas meter eso así sin saber que PIC usas, pues...
Lo que quiero es aprender como hacerlo.
Gracias.
-
Si el code protect está activado (cosa problable si quieres leer programa en pic ajeno) no podrás leer ni código,ni fuses,ni nada.
En caso contrario,los fuses los puedes localizar en posiciones de memoria concretas que puedes consultar en el datasheet del micro.
-
si el programa es tan corto y lo haz hecho tu, porque no intentas hacerlo nuevamente?
pero bueno, el winpic puede hacer ese truco, pero nose si es tan a ciegas y hasta sin saber para que pic es, porque cuando cargas el .hex, puedes ver el .asm en una de las ventanas.
-
Uy, uy, uy.
-
Cuando descompilas un programa obtienes información sobre el programa, pero para poderlo descompilar correctamente necesitas saber el tipo de micro que es, ya que si no te puede dar errores al decompilarlo (te encuentras con instrucciones que no son soportadas por el micro que creías). Pero lo que tienes que tener claro es que de forma directa no puedes saber el micro y los fuses a partir del código ensamblado.
Un saludo
-
¿Aquí no te dirá algo de Fuse o configuración por casualidad?
ORG 0x2000 ; ID
Data 0x3FFF
Data 0x3FFF
Data 0x3FFF
Data 0x3FFF
ORG 0x2007 ; CONFIG
Data 0x3FF1
En el Hex está el CD, WDT, PWRT, oscilador, etc porque a parte que lo he comprobado cargando los pic, se coloca en la configuración donde lo había guardado en los ic-prog por ejemplo.
He encontrado algo, espero que de paso os sirva de algo.
http://www.geocities.com/dinceraydin/pic/djdasm/djdasm.html
-
Uy, uy, uy.
Echo: Uy, uy ,uy. :D :D :D
El Hex puede contener la configuración de los fuses. Pero hasta donde se, no contiene para qué PIC ha sido generado.
-
Uy, uy, uy.
Echo: Uy, uy ,uy. :D :D :D
El Hex puede contener la configuración de los fuses. Pero hasta donde se, no contiene para qué PIC ha sido generado.
Hola Uy, uy , uy:
La verdad es que si y también una pena, porque así no hacemos casi nada, solo investigar.
Este PIC es el popular de siempre, 16F84A
-
Ok a los comentarios, ok a los fuses, yo lo que hice, fue levantar el .HEX con el winpic 800, pero cargué a mano y "supuse" que era un F84, ya que como dice Bruno, el "tipo" de micro, no esta especificado en el .hex, y en la pagina que nos colocas el link dice claro "Dincer's JavaScript PIC Disassembler for 16F84 v1.02"
cuando en el winpic ingrese a la ventana de wdt, osc , code protec etc... estos están seteados segán tu hex... :-/
pero si tienes un hex, tienes que conocer a que micro se lo vas a cargar... sino... sera cualquier cosa :mrgreen:
Un abrazo
Norberto
-
pero si tienes un hex, tienes que conocer a que micro se lo vas a cargar... sino... sera cualquier cosa
Lo único son los PIC que no dicen que son, los fuses si los guardas.
-
Si el code protect está activado (cosa problable si quieres leer programa en pic ajeno) no podrás leer ni código,ni fuses,ni nada.
En caso contrario,los fuses los puedes localizar en posiciones de memoria concretas que puedes consultar en el datasheet del micro.
Cuando descompilas un programa obtienes información sobre el programa, pero para poderlo descompilar correctamente necesitas saber el tipo de micro que es, ya que si no te puede dar errores al decompilarlo (te encuentras con instrucciones que no son soportadas por el micro que creías). Pero lo que tienes que tener claro es que de forma directa no puedes saber el micro y los fuses a partir del código ensamblado.
Uy, uy, uy.
Echo: Uy, uy ,uy. :D :D :D
El Hex puede contener la configuración de los fuses. Pero hasta donde se, no contiene para qué PIC ha sido generado.
Ok a los comentarios, ok a los fuses, yo lo que hice, fue levantar el .HEX con el winpic 800, pero cargué a mano y "supuse" que era un F84, ya que como dice Bruno, el "tipo" de micro, no esta especificado en el .hex, y en la pagina que nos colocas el link dice claro "Dincer's JavaScript PIC Disassembler for 16F84 v1.02"
cuando en el winpic ingrese a la ventana de wdt, osc , code protec etc... estos están seteados segán tu hex... :-/
pero si tienes un hex, tienes que conocer a que micro se lo vas a cargar... sino... sera cualquier cosa :mrgreen:
Te lo voy a repetir una vez más, por si no entendiste.
En la palabra de CONFIGURACION, no se guarda para que tipo de micro es el programa. ¿No nos crees?, fijate el datasheet de cualquier PIC, y fijate si se puede guardar el tipo de PIC.
La palabra de configuración, solo trae la configuración del micro, si trabajas con oscilador interno o no, que tipo de oscilador, si trabajas con el MCLR o no, etc. Wue irán variando según el pic. Y como te dijeron, si no sabes de que pic es el programa, no te sirve para nada descompilrlo.