Seite 1 von 1

Simulator für ganz einfache Prozessoren

Verfasst: Freitag 7. November 2014, 11:12
von Hellstorm
Hallo,

ich möchte mal ein wenig in ganz grundlegende Programmierung einsteigen, und vor allem mal verstehen, wie das mit Taktzyklen, Registern usw. alles passiert.

Da ein moderner Computer ja viel zu kompliziert und umfangreich ist, ein uralter Rechner aber auch nicht mehr aufzutreiben ist, wollte ich fragen, ob jemand einen guten Simulator oder ähnliches kennt?

Ich stelle mir das halt vor, dass man den kompletten Inhalt des Arbeitsspeichers sehen kann (Praktisch wie im Hex-Editor), die Registerbelegung usw (und was es sonst noch gibt :D), und man das ganze dann in Assembler programmieren kann (Und, wenn möglich, vielleicht noch in C).

Hat jemand da eventuell eine Empfehlung? Es wäre schön, wenn das irgendwie didaktisch aufbereitet wäre.

Danke!

Re: Simulator für ganz einfache Prozessoren

Verfasst: Freitag 7. November 2014, 11:51
von BlackJack
@Hellstorm: Am didaktisch aufbereitet könnte es grundsätzlich vielleicht scheitern. Da gibt's dann nämlich eher Simulatoren die auch extra für's lernen entwickelt wurden, oder zumindest so keinem echten System entsprechen. Knuth's MMIX zum Beispiel. Uns hatte man in der Uni den MIPS32-Simulator SPIM zum Assembler lernen gegeben.

Ein ”moderner” Computer muss auch nicht zu kompliziert sein. Man muss ja nicht alle Befehlserweiterungen verwenden und auch keine Assembler-Programme schreiben die auf nackter Hardware laufen, sondern kann auch mal damit experimentieren bei einem C-Programm einzelne Funktionen in Assembler zu schreiben. Oder man nimmt sich Dosbox und programmiert damit dann 386er oder 486er in 16-Bit-Assembler. Und wenn man mutig ist, schaltet man den Prozessor in den 32-Bit-Modus in den „flat memory mode”, wie man das damals bei Demos gemacht hat.

An moderner Hardware gibt es neben den Intel-kompatiblen auch noch ARM-Prozessoren (Raspberry Pi, Smartphones, …), oder man schaut sich mal einen Mikrokontroller an. Irgendeinen Atmega auf einem Arduino beispielsweise.

Uralte Rechner sind auch physisch noch aufzutreiben. Die ganzen Heimrechner und Spielekonsolen der 80er und 90er mit 6510, z80, 68k, ARM2, …-Prozessoren gibt es auf dem Gebrauchtmarkt teilweise günstig. Tipp: Nach einer anderen Quelle als EBay suchen, denn dort fragt man sich echt manchmal nicht nur wer solche Mondpreise verlangt, sondern auch wer zur Hölle das dann auch noch bezahlt. Klar gibt es seltene Stücke die einen hohen Sammlerwert haben, aber nicht alles was da hoch gehandelt wird ist wirklich selten und den jeweiligen Preis wert. Verbreitete Geräte finden sich auch oft bei Verwandten oder Bekannten auf Dachboden oder Keller — einfach mal rumfragen kann sich da auch lohnen.

Es gibt aber auch Emulatoren für die ganzen alten Schätzchen.

Re: Simulator für ganz einfache Prozessoren

Verfasst: Freitag 7. November 2014, 12:08
von Hellstorm
Danke für deine Antwort. Ich habe mir jetzt mal SPIM heruntergeladen. Mal schauen, ob ich damit klar komme :mrgreen:

Ich will da auch nichts absolut verrücktes mit machen, nur mal ein wenig herumprobieren. Ich hab mir auch überlegt, vielleicht mal einen ATmega oder ähnliches zu holen, aber letzten Endes habe ich da wieder das gleiche Problem wie bei einem alten PC: Ich habe ein Gerät zusätzlich herumstehen, was ich anschließen muss oder was eine doofe Bedienung hat. Wenn ich das wesentlich bequemer einfach in Software simulieren kann, dann ist das ja praktischer.

Also von daher danke für deinen Tipp!

Re: Simulator für ganz einfache Prozessoren

Verfasst: Freitag 7. November 2014, 16:12
von jens
Es gibt sehr vereinfachte Modelle einer CPU...

Gerade das gefunden: http://www.wolfgang-back.com/knowhow_home.php bzw.: https://de.wikipedia.org/wiki/Know-how-Computer

oder auch: https://www.cs.drexel.edu/~bls96/museum/cardiac.html bzw. https://en.wikipedia.org/wiki/CARDboard ... omputation

Da sollten die Grundlagen klar werden...

Konkrete Implementationen in Python sind u.a. hier: https://github.com/jtauber/pycpu

Ich selber habe den 6809 implementiert und einen Emulator daraus gemacht: https://github.com/jedie/DragonPy
Wie es dazu gekommen ist, kann man hier nachlesen: http://www.python-forum.de/viewtopic.php?f=1&t=32089

Re: Simulator für ganz einfache Prozessoren

Verfasst: Samstag 8. November 2014, 12:06
von Leonidas
Bei uns an der Uni wurde Jasmin verwendet. Das ist zwar nicht direkt ein CPU-Simulator sondern nur ein Interpreter für x86-Artigen Assembler aber es gibt ne Ansicht für RAM und Register und so Späße.

Re: Simulator für ganz einfache Prozessoren

Verfasst: Samstag 8. November 2014, 12:10
von jens
Ach, wenn man mal eben ein wenig Spielen will, mit CPU, registern, RAM, Assemlber usw. dann kann ich http://www.asm80.com/ empfehlen!

Re: Simulator für ganz einfache Prozessoren

Verfasst: Sonntag 9. November 2014, 11:30
von Hellstorm
Das Jasmin hört sich auch interessant an. Danke euch beiden für eure Antworten :)