Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 18/08/2017
_Leo's Avatar
_Leo _Leo is offline
Miembro
 
Join Date: Jan 2017
Location: Lanzarote (Islas Canarias)
Posts: 38
Poder: 0
_Leo Va camino a la fama
Quote:
Originally Posted by REHome View Post
Buenas.

Por lo que cuentas, estoy bien jodido exceptuando usarlo en una Raspberry Pi.

Al menos quiero traducirlo a C#. Para los que quieren, a Delphi.

Lo que hace el programa es descompilar el archivo hex de un PIC y ensamblador.

Saludos.
Hola, se compila muy fácil, no es más que C:

Crea un nuevo proyecto de tipo "Console Application". Luego como no nos interesa el "main" que se crea, quitamos el File1.c del proyecto (Menú: Project -> Remove from project...) y salvamos el proyecto en el mismo directorio donde están los otros archivos.

Vamos a necesitar el archivo "getopt.h" que suele venir con los compiladores en Linux, lo podemos descargar desde el siguiente enlace y lo copiamos en el directorio del proyecto:

https://raw.githubusercontent.com/sk...aster/getopt.h

Ahora usando "Menú: Project -> Add to Project..." añadimos todos los archivos ".c" a nuestro proyecto, los que están dentro del subdirectorio "libGIS-1.0.5" también.

En el archivo "ui.c" añade la siguiente línea al principio:

#define strcasecmp stricmp

Listo, ya podemos compilar, nos creara un programa de consola igual que hubiese creado en Linux. No he podido probarlo con un .hex ya que no tengo a mano..
Reply With Quote
  #2  
Old 19/08/2017
REHome REHome is offline
Miembro
 
Join Date: Jul 2003
Location: España
Posts: 475
Poder: 24
REHome Va por buen camino
Quote:
Originally Posted by _Leo View Post
Hola, se compila muy fácil, no es más que C:

Crea un nuevo proyecto de tipo "Console Application". Luego como no nos interesa el "main" que se crea, quitamos el File1.c del proyecto (Menú: Project -> Remove from project...) y salvamos el proyecto en el mismo directorio donde están los otros archivos.

Vamos a necesitar el archivo "getopt.h" que suele venir con los compiladores en Linux, lo podemos descargar desde el siguiente enlace y lo copiamos en el directorio del proyecto:

https://raw.githubusercontent.com/sk...aster/getopt.h

Ahora usando "Menú: Project -> Add to Project..." añadimos todos los archivos ".c" a nuestro proyecto, los que están dentro del subdirectorio "libGIS-1.0.5" también.

En el archivo "ui.c" añade la siguiente línea al principio:

#define strcasecmp stricmp

Listo, ya podemos compilar, nos creara un programa de consola igual que hubiese creado en Linux. No he podido probarlo con un .hex ya que no tengo a mano..
Al final se puede por lo que cuentas, tendré que probarlo.

Te dejo el archivo.hex, el archivo.asm es el código fuente donde se programa ensamblador directamente. El que tienes que usar es el hex. Ya puedes probarlo, lo puse como descarga. Cuando llegue mi casa, lo pruebo si o si y muchísimas gracias por la ayuda tipo guía.

Si lo haz probado, me dices tus experiencia.

Saludos.
Attached Files
File Type: zip PIC16F84A.production.zip (1.2 KB, 3 views)
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Reply With Quote
  #3  
Old 19/08/2017
_Leo's Avatar
_Leo _Leo is offline
Miembro
 
Join Date: Jan 2017
Location: Lanzarote (Islas Canarias)
Posts: 38
Poder: 0
_Leo Va camino a la fama
Quote:
Originally Posted by REHome View Post
Te dejo el archivo.hex,
Este es el resultado de ejecutar "vpicdisasm.exe --original PIC16F84A.production.hex":
Code:
   0:	16 83		bsf 0x03, 5
   1:	01 86		clrf 0x06
   2:	30 1F		movlw 0x1F
   3:	00 85		movwf 0x05
   4:	12 83		bcf 0x03, 5
   5:	10 06		bcf 0x06, 0
   6:	18 05		btfsc 0x05, 0
   7:	28 06		goto 0x006
   8:	20 36		call 0x036
   9:	18 05		btfsc 0x05, 0
   A:	28 06		goto 0x006
   B:	28 0F		goto 0x00F
   C:	1C 05		btfss 0x05, 0
   D:	28 0C		goto 0x00C
   E:	28 06		goto 0x006
   F:	1C 0C		btfss 0x0C, 0
  10:	28 12		goto 0x012
  11:	28 16		goto 0x016
  12:	10 06		bcf 0x06, 0
  13:	30 01		movlw 0x1
  14:	00 8C		movwf 0x0C
  15:	28 06		goto 0x006
  16:	14 06		bsf 0x06, 0
  17:	01 8C		clrf 0x0C
  18:	28 06		goto 0x006
  19:	00 00		nop 
  1A:	00 00		nop 
  1B:	00 00		nop 
  1C:	00 00		nop 
  1D:	00 00		nop 
  1E:	00 00		nop 
  1F:	00 08		return 
  20:	00 00		nop 
  21:	30 A4		movlw 0xA4
  22:	28 2C		goto 0x02C
  23:	00 00		nop 
  24:	30 40		movlw 0x40
  25:	28 2C		goto 0x02C
  26:	30 1F		movlw 0x1F
  27:	28 2C		goto 0x02C
  28:	00 00		nop 
  29:	30 0E		movlw 0xE
  2A:	28 2C		goto 0x02C
  2B:	30 05		movlw 0x5
  2C:	00 8D		movwf 0x0D
  2D:	0B 8D		decfsz 0x0D, F
  2E:	28 2D		goto 0x02D
  2F:	00 08		return 
  30:	30 C8		movlw 0xC8
  31:	28 3F		goto 0x03F
  32:	30 64		movlw 0x64
  33:	28 3F		goto 0x03F
  34:	30 32		movlw 0x32
  35:	28 3F		goto 0x03F
  36:	30 14		movlw 0x14
  37:	28 3F		goto 0x03F
  38:	30 0A		movlw 0xA
  39:	28 3F		goto 0x03F
  3A:	30 05		movlw 0x5
  3B:	28 3F		goto 0x03F
  3C:	30 02		movlw 0x2
  3D:	28 3F		goto 0x03F
  3E:	30 01		movlw 0x1
  3F:	00 8E		movwf 0x0E
  40:	30 F9		movlw 0xF9
  41:	00 8D		movwf 0x0D
  42:	00 00		nop 
  43:	0B 8D		decfsz 0x0D, F
  44:	28 42		goto 0x042
  45:	0B 8E		decfsz 0x0E, F
  46:	28 40		goto 0x040
  47:	00 08		return 
  48:	30 C8		movlw 0xC8
  49:	28 53		goto 0x053
  4A:	30 64		movlw 0x64
  4B:	28 53		goto 0x053
  4C:	30 32		movlw 0x32
  4D:	28 53		goto 0x053
  4E:	30 14		movlw 0x14
  4F:	28 53		goto 0x053
  50:	30 0A		movlw 0xA
  51:	28 53		goto 0x053
  52:	30 05		movlw 0x5
  53:	00 8F		movwf 0x0F
  54:	30 64		movlw 0x64
  55:	00 8E		movwf 0x0E
  56:	30 F9		movlw 0xF9
  57:	00 8D		movwf 0x0D
  58:	00 00		nop 
  59:	0B 8D		decfsz 0x0D, F
  5A:	28 58		goto 0x058
  5B:	0B 8E		decfsz 0x0E, F
  5C:	28 56		goto 0x056
  5D:	0B 8F		decfsz 0x0F, F
  5E:	28 54		goto 0x054
  5F:	00 08		return 
2007:	3F F1		addlw 0xF1
Reply With Quote
  #4  
Old 19/08/2017
REHome REHome is offline
Miembro
 
Join Date: Jul 2003
Location: España
Posts: 475
Poder: 24
REHome Va por buen camino
Quote:
Originally Posted by _Leo View Post
Este es el resultado de ejecutar "vpicdisasm.exe --original PIC16F84A.production.hex":
Code:
   0:	16 83		bsf 0x03, 5
   1:	01 86		clrf 0x06
   2:	30 1F		movlw 0x1F
   3:	00 85		movwf 0x05
   4:	12 83		bcf 0x03, 5
   5:	10 06		bcf 0x06, 0
   6:	18 05		btfsc 0x05, 0
   7:	28 06		goto 0x006
   8:	20 36		call 0x036
   9:	18 05		btfsc 0x05, 0
   A:	28 06		goto 0x006
   B:	28 0F		goto 0x00F
   C:	1C 05		btfss 0x05, 0
   D:	28 0C		goto 0x00C
   E:	28 06		goto 0x006
   F:	1C 0C		btfss 0x0C, 0
  10:	28 12		goto 0x012
  11:	28 16		goto 0x016
  12:	10 06		bcf 0x06, 0
  13:	30 01		movlw 0x1
  14:	00 8C		movwf 0x0C
  15:	28 06		goto 0x006
  16:	14 06		bsf 0x06, 0
  17:	01 8C		clrf 0x0C
  18:	28 06		goto 0x006
  19:	00 00		nop 
  1A:	00 00		nop 
  1B:	00 00		nop 
  1C:	00 00		nop 
  1D:	00 00		nop 
  1E:	00 00		nop 
  1F:	00 08		return 
  20:	00 00		nop 
  21:	30 A4		movlw 0xA4
  22:	28 2C		goto 0x02C
  23:	00 00		nop 
  24:	30 40		movlw 0x40
  25:	28 2C		goto 0x02C
  26:	30 1F		movlw 0x1F
  27:	28 2C		goto 0x02C
  28:	00 00		nop 
  29:	30 0E		movlw 0xE
  2A:	28 2C		goto 0x02C
  2B:	30 05		movlw 0x5
  2C:	00 8D		movwf 0x0D
  2D:	0B 8D		decfsz 0x0D, F
  2E:	28 2D		goto 0x02D
  2F:	00 08		return 
  30:	30 C8		movlw 0xC8
  31:	28 3F		goto 0x03F
  32:	30 64		movlw 0x64
  33:	28 3F		goto 0x03F
  34:	30 32		movlw 0x32
  35:	28 3F		goto 0x03F
  36:	30 14		movlw 0x14
  37:	28 3F		goto 0x03F
  38:	30 0A		movlw 0xA
  39:	28 3F		goto 0x03F
  3A:	30 05		movlw 0x5
  3B:	28 3F		goto 0x03F
  3C:	30 02		movlw 0x2
  3D:	28 3F		goto 0x03F
  3E:	30 01		movlw 0x1
  3F:	00 8E		movwf 0x0E
  40:	30 F9		movlw 0xF9
  41:	00 8D		movwf 0x0D
  42:	00 00		nop 
  43:	0B 8D		decfsz 0x0D, F
  44:	28 42		goto 0x042
  45:	0B 8E		decfsz 0x0E, F
  46:	28 40		goto 0x040
  47:	00 08		return 
  48:	30 C8		movlw 0xC8
  49:	28 53		goto 0x053
  4A:	30 64		movlw 0x64
  4B:	28 53		goto 0x053
  4C:	30 32		movlw 0x32
  4D:	28 53		goto 0x053
  4E:	30 14		movlw 0x14
  4F:	28 53		goto 0x053
  50:	30 0A		movlw 0xA
  51:	28 53		goto 0x053
  52:	30 05		movlw 0x5
  53:	00 8F		movwf 0x0F
  54:	30 64		movlw 0x64
  55:	00 8E		movwf 0x0E
  56:	30 F9		movlw 0xF9
  57:	00 8D		movwf 0x0D
  58:	00 00		nop 
  59:	0B 8D		decfsz 0x0D, F
  5A:	28 58		goto 0x058
  5B:	0B 8E		decfsz 0x0E, F
  5C:	28 56		goto 0x056
  5D:	0B 8F		decfsz 0x0F, F
  5E:	28 54		goto 0x054
  5F:	00 08		return 
2007:	3F F1		addlw 0xF1
¡¡¡Te ha funcionado!!!

El autor ha traducido las instrucciones del asm, pero no los registros específicos, se muestran en hexadecimal. Todavía no he llegado a mi casa y haré pruebas a ver si me sale tu explicación.

En mi caso desde cero y con C#, estoy haciendo como un descompilador más completo, que se muestre también llos nombres de los registros.

Muchas gracias.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Este código Delphi como sería en C++ Builder pepe_baile C++ Builder 5 22/02/2017 17:47
Pasar este mini-codigo a C++Builder aguml C++ Builder 10 24/06/2014 21:09
¿Como usar este código? MAXIUM API de Windows 2 05/11/2011 04:07
Ayuda kn este programa :S llSnakell Varios 38 24/01/2011 10:54
Ejecutar aplicación en sistema que no esté instalado Builder C++ meme C++ Builder 2 11/03/2008 20:49


All times are GMT +2. The time now is 10:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi