Newsgroup: it.comp.lang.c
Titolo: assemblatore + simulatore

Qualcuno di voi a mai scritto un assemblatore e un simulatore di una cpu in
linguaggio c? Si tratta di un esame di Ingegneria, Sistemi di elaborazione,
quindi immagino che qualcuno abbia già provato a scrivere qualcosa di
simile... all'inizio può sembrare semplice ma si tratta di un programma
abbastanza complesso :-(
Chi può aiutarmi? =)
[to reply leave "no" from the email domain]

linguaggio c? Si tratta di un esame di Ingegneria, Sistemi di elaborazione,
Non ne conosco in c ma e' molto probabile che ce ne siano. Posso
consigliarti l'homepage di bsvc, un simulatore "universale" scritto
in c++ e che usa le tcl/tk come interfaccia grafica, magari puo'
suggerirti qualche idea... lo trovi all'url:
http://www2.ncsu.edu/eos/service/ece/project/bsvc/www/
CiaoCiao
LordFelix
------------ disLESSici cr3w member -------------
char I[24]="_beWYX_\\k3W\\f_Xff\\V\\!beZ";main(){
int i=(((3*23))-69);for(;i<24;i++)I[i]=(i<27)?(I[
i]+13):(I[i]&(((53%20-i+27))));printf("%s\n",I);}

abbastanza complesso :-(
La complessita' dipende dal tipo di CPU che vuoi emulare. Credo che in giro 
per la rete di esempi ce ne siano diversi, specialmente per lo Z80.




ringrazio tutti per le risposte:
* LordFelix per il bsvc ... l'ho scaricato subito, peccato utilizzi le
tcl/tk e di sorgenti ci sono solo gli header... in ogni caso e' interessante
il framework CPU-independent
ci avevo pensato quando ho cominciato a scrivere in un file esterno tutti i
codici mnemonici con gli opcode ecc... una rottura ricopilare ogni volta un
file c!!! estendendo il ragionamento si possono creare dei file di testo che
descrivono la cpu simulata con i registri, l'address space e una lista di
codici mnemonici per gli opcode... si tratta di complicazioni che rendono il
lavoro piu' interessante ;)
* Alessandro
se devo essere sincero credo che la complessità non varii molto, immagina di
simulare un 8086: ok ti sei fatto il mazzo per scrivere il tuo bel
assemblatore e il simulatore. punto. cosa devi fare ora per passare a
successori della famiglia x86? Anche se puo' apparire riduttivo in buona
parte si tratta di aggiungere nuove istruzioni e gestire registri di
dimensione piu' grande... la modalità real / vm / pmode alla fin fine si
basa sulle istruzioni piu' qualche storiella sulla A20 line... IN ALTRE
PAROLE una volta scritto l'assemblatore (con tutti i problemi che cio'
comporta) la maggior parte del lavoro e' fatto! ovviamente il simulatore
cambia di macchina in macchina, con il suo loader e qualche convenzione sui
formati del codice eseguibile (header, rilocabilità, eventuale segmentazione
codice/dati, ecc.)
ovviamente non stiamo parlando di EMULAZIONE!!! in tal caso bisognerebbe
riprodurre l'esatto comportamento non solo della CPU ma anche di tutti quei
chip ausiliari che svolgono ad esempio l'IO su periferica o addirittura
svolgono mansioni piu' specifiche tipo grafica, sonoro e dei controller
dischi... e sinceramente credo che piu' che un esame potrebbe essere una
tesi di laurea =)
* Prince of Saiyan & Kalymero
grazie per la dritta! il Dev di questo mese lo compro... sinceramente e' da
un po' di tempo che la rivista tratta tutti gli argomenti a livello
introduttivo e preferisco Computer Programming (se ne escono anche con cose
assurde ma va bene ;)
Una nota per tutti... come e' possibile che (in generale) non si trova
materiale scritto da italiani?!? eppure i programmatori non mancano?!?
Vabbe'... cercheremo di rimediare =)
Alhoa!


Se ti puo' interessare io ho fatto qualcosa del genere in C/ASM 68k per un
esame dell'uni.
Studio Informatica e per un esame al primo anno il mio gruppo ha deciso di
inventarsi una CPU e di crearne un emulatore con relativo assemblatore.
Purtroppo la nostra CPU era volutamente moooolto semplice, tuttavia il
lavoro puo' risultare interessante. Tutto dipende da quanto complicata e' la
CPU che tu devi emulare.
Perche' non provi a darci qualche specifica? Soprattutto sulla CPU?
Arrimailarci. Tony.