Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   nesecito un Realizar EXE mediante codigo (https://www.clubdelphi.com/foros/showthread.php?t=49367)

limbertx 19-10-2007 16:37:03

nesecito un Realizar EXE mediante codigo
 
Hola primeramente
mi problema es este ya investigue por todos lados y no encuentro nada sobre esto.

Resulta que estamos realizando un compilador en la Universidad, es decir nosotros introducimos el codigo fuente de nuestro propio lenguaje y a partir de este punto,
Empezamos a migrar a un codigo llamado c3 ó codigo de 3 direcciones , luego de ahi migramos a codigo assembler . donde esta el problema ya que todo esto esta enun archivo .txt .
nesecito que el .TXT mediante codigo delphi se genere un .EXE (Sera usando algun tipo de librerias para acceder al ASM) .

ya que el .TXT mediante el ASM mediante D.O.S. podemos realizar el .EXE sin problemas.

En otras palabras como manejar el ASSEMBLER mediante delphi.(algunas librerias)

Por favor es urgente
Doy gracias de por acceder ayudarme.....

Ñuño Martínez 19-10-2007 21:25:15

Si es para la universidad, ¿no te explicaron cómo hacerlo? ¿O en qué documentación encontrar la solución al problema? A mi siempre me han facilitado toda la documentación necesaria.

Así, a bote pronto, desde Delphi se puede llamar al ensamblador, y hasta aquí puedo leer :p.

limbertx 20-10-2007 20:22:11

si es que existen algunas librerias me las podeis decir por favor
ya que busque en los libros y no encuentro nada


gracias...

aeff 20-10-2007 22:41:56

Cita:

Empezado por limbertx (Mensaje 240031)
si es que existen algunas librerias me las podeis decir por favor
ya que busque en los libros y no encuentro nada


gracias...


saludos, bueno yo no tengo conocimientos de ASM como para hacer un SO pero se algo, y hasta donde conozco para generar un .exe con ASM necestlas un Link y un Compilador, es decir, el Link lo que hace es crear un .obj para que sea entendido por el COmpilador mas tarde que convertirá este .obj en un archivo .exe o .com, como desees, lo que si es verdad que estará escrito para que el ordenador pueda entenderlo.

ahora, ¿tu me entiendes a mi?

saludos, aeff!!!

aeff 20-10-2007 22:48:38

te sugiero que uses el MASM como compilador, claro teniendo un Link para el, lo llamas con ShellExecute de forma oculta pasandole como parametro #1 el nombre del fichero .asm, no .txt, o usas un truco que hay por ahi para que todos los mensajes, errores o warnings que emita el compilador en su proceso de compilación sea visualizado en un memo por ejemplo,

hace poco hice algo parecido a esto, es decir, un programa para crear programas en codigo ASM y hacia lo que te dije anteriormente con un MEMO,

espero que te sirva mi idea..
saludos!

Black_Ocean 21-10-2007 04:50:55

Para programar en MASM te recomiendo que uses un IDE, el mejor es RadASM y es gratuito

Compilador de MASM32 (Sitio oficial): http://www.masm32.com

RadASM (IDE) Para MASM32 (Sitio oficial): http://www.radasm.com

Saludos y espero que te sea de utilidad.

aeff 21-10-2007 15:29:01

bueno, para programar en el MASM solo necesitas crear un .asm el cual puedes hacerlo con el Block de Notas, guardar el fichero .txt y luego renombrarlo como .asm, despues copias el MASM en el mismo directorio de este fichero .asm y en ejecutas el MASM.exe y como parametro le pasas el fichero .asm,

por ejemplo, en el cmd:

Código:

masm.exe aeff.txt
recuerda, todo en el mismo directorio, sino, no compila, ¿ok?

saludos!

cHackAll 21-10-2007 23:37:59

Bueno fuera de toda la información que puedes encontrar en la gran telaraña me extraña un poco tu duda; dices que ya realizaron un conversor de su lenguaje a c3 (ej. Turing ¿?), eso me hace pensar que los conceptos nombrados por AEFF que son tan necesarios ya son de su conocimiento. Entonces no entiendo bien cuál es el problema exacto...

Cita:

Empezado por limbertx (Mensaje 239786)
...ya que el .TXT mediante el ASM mediante D.O.S. podemos realizar el .EXE sin problemas...

Si lo lograron hacer en DOS, que es lo que concretamente desean... que tenga una GUI su aplicación?


Veo que solicitas librerías, te deseo suerte en esa dificil búsqueda (mucho más siendo algo tán específico), creo que lo tendran que desarrollar ustedes mismos y para tal caso te doy la idea general, el propio lo interpretaron y lo escribieron en su "c3", ahora tienen que interpretar el "c3" en instrucciones nemotécnicas del lenguaje de maquina como ser movimientos entre registros, registro-memoria, memoria-registro, movimientos de pila, flags, etc, etc. una vez que conozcaN las posibilidades del lenguaje como tal tienes que comenzar a analizar su opcode, me explico, cada instrucción produce una determinada combinación binaria...

Código:

nop
produce UN solo byte de valor 90h (nop=No OPeration), pero es un caso particular; "not al" produce 2 Bytes: F6h(not) D0h(al), al ser un registro de 16 o de 32 bits produce: F7h(not) D0h(ax)... dependiendo de la arquitectura de la PC huesped puede producir una combinación adicional: 66 F7 D0h, lo explico:

Código:

;16 bits:
 not al    ; F6 D0
 not ax    ; F7 D0

Código:

;32 bits:
 not al    ; F6 D0
 not ax    ; 66 F7 D0
 not eax    ; F7 D0

veamos con punteros y otras combinaciones en 32 bits:
Código:

not eax    ; F7 D0
 not ecx    ; F7 D1
 not edx    ; F7 D2
 not ebx    ; F7 D3
 not [eax]  ; F7 10
 not [ecx]  ; F7 11
 not [edx]  ; F7 12
 not [ebx]  ; F7 13

pero con una sentencia OR existe una variedad mas interesante de combinaciones; si es lo que realmente requieres tendrás que analizar mucho al lenguaje...

suerte!

cHackAll 21-10-2007 23:40:32

Me olvidaba, tambien debes tomar en cuenta que es mucho mas sencillo generar un .COM de 16 bits que un .EXE por la cabecera del ejectuable, siendo mucho más complejo en la plataforma Güindos que deberán analizar sus todas secciónes y las estructuras de las mismas.

Saludos


La franja horaria es GMT +2. Ahora son las 00:43:45.

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