Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Usar este programa en C++ Builder (https://www.clubdelphi.com/foros/showthread.php?t=92179)

REHome 18-08-2017 18:38:14

Usar este programa en C++ Builder
 
Hola:

Hace siglos que no uso el C++ Builder he instalé hace poco el Rad Stand 10.2. Descargué un programa en C/C++ y no se la manera de abrirlo para compilarlo.

https://github.com/vsergeev/vpicdisasm

¿Alguna ayuda?

Un cordial saludos.

Casimiro Notevi 18-08-2017 20:04:45

Cita:

3. COMPILING vPICdisasm
================================================================================
Simply by running, $ make in the vPICdisasm project directory should compile vPICdisasm on most *nix systems,
including a Cygwin or MinGW environment.
The Makefile is configured to use GCC to compile vPICdisasm.
vPICdisasm should have no problem being compiled with "gmake".
Es para sistemas *nix (unix, linux, etc.)

REHome 18-08-2017 22:00:14

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.

_Leo 18-08-2017 22:49:12

Cita:

Empezado por REHome (Mensaje 520416)
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..

REHome 19-08-2017 20:23:02

1 Archivos Adjunto(s)
Cita:

Empezado por _Leo (Mensaje 520418)
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.

_Leo 19-08-2017 21:06:35

Cita:

Empezado por REHome (Mensaje 520430)
Te dejo el archivo.hex,

Este es el resultado de ejecutar "vpicdisasm.exe --original PIC16F84A.production.hex":
Código:

  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


REHome 19-08-2017 21:45:11

Cita:

Empezado por _Leo (Mensaje 520431)
Este es el resultado de ejecutar "vpicdisasm.exe --original PIC16F84A.production.hex":
Código:

  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.


La franja horaria es GMT +2. Ahora son las 13:33:21.

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