Progettazione di un semplice disassemblatore [chiuso]

-1

Sto scrivendo un semplice disassemblatore x86 in c ++ e mi piacerebbe sentire un input sulla classe che gestirà il disassemblaggio. Ho pensato di creare una classe che avrebbe ricevuto un puntatore al tavolo che conterrà la descrizione delle istruzioni. In questo modo avrei implementato la logica in una classe in grado di disassemblare il codice per qualsiasi piattaforma semplicemente ricevendo una tabella di input diversa. Pensi che sia un buon modo per risolvere un problema, o dovrei inserire la definizione della tabella all'interno di una classe e poi avere classi speciali per disassemblatore x86, disassemblatore di braccio e così via. Sono uno studente e non mi sono mai preoccupato dell'eleganza del codice, ma sto cercando di scrivere un codice più elegante ora, quindi qualsiasi consiglio sul design è ben accetto.

    
posta newbie 27.11.2015 - 18:45
fonte

1 risposta

1

Se hai intenzione di scrivere un strumento di analisi della ricorsione ricorsiva (Wikipedia) , allora una descrizione generica del codice macchina essere smembrato potrebbe essere fattibile, ma anche questo è discutibile, e sicuramente stai per entrare in acque molto profonde semplicemente provandolo.

Se non stai scrivendo un parser di discesa ricorsiva, probabilmente non ha senso cercare di renderlo così generico.

Ti consiglio di far funzionare il tuo disassemblatore in modo codificato per una singola CPU, e in seguito ti preoccupi di renderlo generico. Cerca di concentrarti su un obiettivo semplice e semplice, altrimenti non otterrai mai nulla.

Molte possibilità sono, YAGNI . (Ya Is not Gonna Need It.)

    
risposta data 27.11.2015 - 19:00
fonte

Leggi altre domande sui tag