Hallo, gerade in den Weiten des Internets entdeckt: "Z80 Explorer is a Zilog Z80 netlist-level simulator capable of running Z80 machine code and also an educational tool with features that help reverse engineer and understand this chip better." https://baltazarstudios.com/z80explorer/ https://github.com/gdevic/Z80Explorer Einen Link auf www.mikrocontroller.net konnte ich nicht finden. Daher als neuer Beitrag für die, die es evtl. interessiert.
Möchte man wirklich noch Assembler lernen von einem Prozessor, der nicht einmal mehr produziert wird. Wenn Assembler, dann für eine CPU, auf dem man das auch noch nativ laufen lassen kann. Mit Arm, X64 oder Risc-V kann man eventuell etwas anfangen. Aber doch nicht mit einem so verkorksten Design aus den 70er. Ich habe 1982 mit Z80 Assembler angefangen. Würde aber heute jedem davon abraten. Auch für Education ist das CPU Design einfach zu speziell und unlogisch.
Es geht ja hpts. darum den Z80 intern zu verstehen und weniger darum Z80 Assembler zu lernen. Klar ist das eher etwas für Leute, die sich für die Historie der Computer interessieren. Ich finde gewisse Dinge versteht man besser, wenn man weiß wo sie herkommen. Das gilt auch für andere Felder, z.B. Mathe.
Der kleine Gottfried Wilhelm Leibniz hat auch mit dem kleinen 1x1 angefangen. Wer z.B. die Speicherbelegung usw. des Z80 begriffen hat, wird auch in zukünftigen CPUs einige Grundlagen wiederfinden. Allerdings werden sich nur wenige die Mühe machen jeden Schritt im Assembler zu programmieren, obwohl es da einige Tricks gab, um die Rechengeschwindigkeit zu optimieren. Nicht jeder Befehl reagiert gleich schnell. Ich ziehe heute noch den Hut vor einigen Programmierern, die in zehn Sekunden jeden beliebigen Artikel aus der Lagerverwaltung aufrufen konnten. Anders gesagt, nicht jeder, der einen teuren Fotoapparat hat, macht schöne Bilder. Eine CPU heute mit 8 Kernen ersetzt noch nicht den Kopf.
Lu schrieb: > Wer z.B. die Speicherbelegung usw. des Z80 begriffen hat, wird auch in > zukünftigen CPUs einige Grundlagen wiederfinden. Generationen von Programmierern haben problemlos mit dem i386 Assembler angefangen, und jetzt auch amd64...
Niklas G. schrieb: > angefangen, und jetzt auch amd64... Ja stimme ich zu. Interessant an dem Z80-Link ganz oben sind ein paar Impulsdiagramme zum Verständnis wann was passierte und wann automatisch ein Wait dazwischen anfällt bei zeitkritischen Geschichten. Ob natürlich die Simulation jeden Z80 1:1 mit allen Fehlern darstellt, werde nie prüfen. Die Zeit ist vorbei.
Peter (pittyj) 05.01.2025 14:06 >Wenn Assembler, dann für eine CPU, auf dem man das auch noch nativ >laufen lassen kann. Mit Arm, X64 oder Risc-V kann man eventuell etwas >anfangen. >Aber doch nicht mit einem so verkorksten Design aus den 70er. Wow, den Z80 als verkorkstes Design zu bezeichnen zeugt wirklich von maximaler Ahnungslosigkeit, was die Randbedingungen der Technologie der damaligen Zeit anbelangt. Dunington Kruger lässt grüßen. https://de.wikipedia.org/wiki/Zilog_Z80 : "Der Z80 überflügelte rasch den 8080 und wurde der bisher am weitesten verbreitete 8-Bit-Hauptprozessor (central processing unit, CPU). Wenn man die absolute Größe des Marktes einbezieht, dann ist er der seither erfolgreichste Hauptprozessor überhaupt."
Lu schrieb: > Ob natürlich > die Simulation jeden Z80 1:1 mit allen Fehlern darstellt, werde nie > prüfen. Wer es dennoch möchte, kann dazu meinen Z80-Dongle nehmen. https://github.com/Ho-Ro/Z80_dongle
Niklas G. schrieb: > Generationen von Programmierern haben problemlos mit dem i386 Assembler > angefangen Ich wüsste Niemanden. Vermutlich haben die nach gescheitertem Start den Beruf gewechselt. x86, ja, aber 386 ist ja nochmal ein kompletter layer den man kaum versteht ohne den drunterliegenden verstanden zu haben.
Michael B. schrieb: > Ich wüsste Niemanden. Na wenn der laberkopp keinen kennt kann es natürlich keinen geben. Michael B. schrieb: > x86, ja, aber 386 ist ja nochmal ein kompletter layer Hä? x86 ist ein Oberbegriff für den 8086 und alles was davon abstammt. i386 (=80386) stammt davon ab. Wie kann man die ganze Familie x86 - also alles vom 8086 bis zum AMD64 - kennen aber den i386 nicht?!
Niklas G. schrieb: > x86 ist ein Oberbegriff für den 8086 Ja, ich hätte für Trottel wie dich 1 Buchstaben mehr spendieren sollen und 8086 schreiben sollen. Du gehörst sicher auch, nach dem du 'if' und 'while' erlernt hast, zu den Leuten die in der Bewerbung 'Kenntnisse in C++' angeben.
Michael B. schrieb: > Ja, ich hätte für Trottel wie dich 1 Buchstaben mehr spendieren sollen > und 8086 schreiben sollen. Also ich Trottel hatte kein Problem damit direkt den i386 Assembler zu lernen. Selbst in meiner Kleinstadt-Bibliothek gab es Bücher mit i386-Assembler auf Deutsch(!). Kann also nicht allzu exotisch sein, die standen da sicher nicht weil das nie jemand lesen würde. Michael B. schrieb: > Du gehörst sicher auch, nach dem du 'if' und 'while' erlernt hast, zu > den Leuten die in der Bewerbung 'Kenntnisse in C++' angeben. Immerhin habe ich die Kapazität "EAX" hinzuschreiben.
Den Z80 mit Fäkalien zu übergießen hilft sicherlich niemandem – sollen sich die Leute mit CPUs aller Art beschäftigen, ist bestimmt besser als z.B. jedes Wochendende sinnlos Gehirnzellen mit Alkohol zu vernichten oder generell dummes Zeug zu Hause oder auch draußen zu machen.
:
Bearbeitet durch User
@Niklas G. @ Laberkopp Nun beruhigt euch mal wieder, wir haben jetzt alle eure Positionen gesehen und es ist klar, ihr werden auf keinen gemeinsamen Nenner kommen. Wir wollen ja nicht, das es hier gleich wieder eskaliert und die Löschmods aus ihrem Tiefschlaf aufwachen
Christoph M. schrieb: > Peter (pittyj) > 05.01.2025 14:06 >>Wenn Assembler, dann für eine CPU, auf dem man das auch noch nativ >>laufen lassen kann. Mit Arm, X64 oder Risc-V kann man eventuell etwas >>anfangen. >>Aber doch nicht mit einem so verkorksten Design aus den 70er. > > Wow, den Z80 als verkorkstes Design zu bezeichnen zeugt wirklich von > maximaler Ahnungslosigkeit, was die Randbedingungen der Technologie der > damaligen Zeit anbelangt. Dunington Kruger lässt grüßen. > Ich habe diverse Assembler zu der Zeit gehabt. Der Motorola 68000, das war ein super Prozessor. Universale Daten und Adress-Register, und nicht ein wirrer Haufen Spezialregister wie beim Z80. Mit dem 68000 hat Assembler Spass gemacht. Noch schöner war der VAX-Assembler. Ähnlich 68000, aber alle Adressierungsarten bei allen Befehlen, und nicht nur bei Hin und Weg vom Register. Der 6502 war auch nicht doll. Aber ein paar Jahre später (M68K, eingeführt 1979) gab es richtig gute Prozessoren. Warum man einem Anfänger ein Z80 vorsetzen möchte, mit allen seinen unlogischen Eigenarten, und nicht einen orthogonalen 68000, das kann ich nicht verstehen. Sorry, aber ich habe zu der Zeit viel Assembler programmiert, und lasse mich nicht Ahnungslosigkeit vorwerfen. Und ich habe sogar immer noch den Rodney Zaks im Bücherschrank, neben dem K&R.
>Sorry, aber ich habe zu der Zeit viel Assembler programmiert, und lasse >mich nicht Ahnungslosigkeit vorwerfen. >Und ich habe sogar immer noch den Rodney Zaks im Bücherschrank, neben >dem K&R. Damals war Siliziumfläche extrem kostbar und die Entwicklungszyklen extrem schnell: Z80: Transistor-Count: 8500 Launched: 1976 68000 CPU: Transistor-Count: 68000 Launched: 1979 Ausserdem war der 68000 eine 32 Bit CPU, viel teurer und der Hardwareaufwand viel größer und damit teurer und für viele Geräte nicht rentabel. >Aber doch nicht mit einem so verkorksten Design aus den 70er. Eine auf die heutige Zeit passende ähnliche Argumentationsweise wäre "Aber nicht mit einem so verkorksten Design der Sprache C aus den 70gern, sondern mit mit einer modernen Programmiersprache wie Python" .. => anderer Aufwand, andere Liga, andere Anwendung.
Christoph M. schrieb: > Ausserdem war der 68000 eine 32 Bit CPU, viel teurer und der > Hardwareaufwand viel größer und damit teurer und für viele Geräte nicht > rentabel. Was die Industrie nicht daran gehindert hat, sie in Laserdruckern, Modems, Oszis, HF-Messsystemen, ... zu verbauen. Gluecklicherweise! > Eine auf die heutige Zeit passende ähnliche Argumentationsweise wäre > "Aber nicht mit einem so verkorksten Design der Sprache C aus den > 70gern, sondern mit mit einer modernen Programmiersprache wie Python" .. > => anderer Aufwand, andere Liga, andere Anwendung. Eine Sprache die Syntax missbraucht um Semantik auszudruecken. "Modern" mag man ja noch gelten lassen, aber schoen ist doch noch etwas anderes.
Christoph M. schrieb: > Z80: > Transistor-Count: 8500 > Launched: 1976 Vielleicht ist das ein Grund warum es für den Z80 einen Netlist-Simulator mit Visualisierung gibt und für Pentium oder amd64 eher weniger. Die ganz oben verlinkte Seite verweist als Referenz auf http://visual6502.org/ Da gibt es vergleichbare Simulatoren für ARM1 http://visual6502.org/sim/varm/armgl.html 6502 http://visual6502.org/JSSim/index.html 6800 http://visual6502.org/JSSim/expert-6800.html Wahrscheinlich sind für amd64 gar nicht alle erforderlichen Informationen frei verfügbar, um so einen Simulator zu schreiben - vom um Größenordnungen höheren Aufwand ganz abgesehen.
Anfang der 90ger Jahre kamen die PIC-MCUs mit ihrem extrem kryptischen Befehlssatz, obwohl es da schon über 10 Jahren die 68000er mit ihrem sehr homogenen Befehls- und Registersatz gab. Der Grund: andere Liga, andere Kosten, anderer Aufwand, andere Anwendung.
Christoph M. schrieb: > Anfang der 90ger Jahre kamen die PIC-MCUs Die stammen aus der Mitte der '70er. > mit ihrem extrem kryptischen > Befehlssatz, Was soll daran kryptisch sein?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.