Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - Compilatore
Forum - Altri Linguaggi - Compilatore

Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 20:11
Domenica, 06/05/2007
Vorrei sapere quali step seguire per creare un compilatore che generi una specie di assembly. GRAZIE:D

PM Quote
Avatar
Hacker (Member)
Guru


Messaggi: 1014
Iscritto: 06/06/2006

Segnala al moderatore
Postato alle 16:28
Lunedì, 07/05/2007
apri un file .exe in esadecimale e trasforma dopo aver fatto il parsing del sorgente ogni istruzione in codice esadecimale:D
ovviamente all'inizio devi mettere tutti gli header degli .exe

PM Quote
Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 17:02
Lunedì, 07/05/2007
Si questo lo sapevo già, volevo sapere cosa fare per il parsing del file.......

PM Quote
Avatar
Hacker (Member)
Guru


Messaggi: 1014
Iscritto: 06/06/2006

Segnala al moderatore
Postato alle 19:39
Lunedì, 07/05/2007
là devi buttare un sacco di codice,ma sinceramente io non ne ho idea degli step che esegue.

Lascio parlare queste pagine di wikipedia che forse ti possono interessare:
http://en.wikipedia.org/wiki/Compiler
http://en.wikipedia.org/wiki/Assembly_language#Assembler
:)

PM Quote
Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 19:50
Lunedì, 07/05/2007
GIà viste, e cmq gli step non erano quelli del compilatore, quelli li conosco, erano quelli che dovevo seguire io per crearlo.

Il problema che mi si pone sta nel fatto che nella traduzione da un linguaggio di alto livello a uno di livello più basso (anche assembly, non necessariamente linguaggio macchina) ci sono più possibilità e comunque non sò come fare un programma che tenga a mente di non interferire con una operazione che sta eseguendo per eseguirne un altra, per esempio se c'è una informazione memorizzata nel registro x che serve da accumulatore, il programma invoca una funzione che usa il registro x cambiando inevitabilmente il suo contenuto e solo un essere umano sarebbe in grado di rendere il codice fluido e non troppo ingombrante in memoria e senza interferire con il contenuto dei registri che occupa, il problema del compilatore è che deve fare questo però seguendo un procedimento lineare, un algoritmo che una macchina esegua senza dover avere l'intelligenza di controllare che quello che fà abbia senso logico. Grazie dell'aiuto.8-|

PM Quote
Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 20:24
Mercoledì, 09/05/2007
Comunque la questione dei registri si può dire risolta per il fatto che avendo implementato due strutture LIFO (due pile) si può salvare temporaneamente grandi quantità di informazione con una, con l'altra ho risolto un'altra cosa ma sino alla prima beta non posso ancora dire cosa.

PM Quote