Hallo 8bit-Auskenner
Ich beschäftige mich gerade (wieder) mit meinem Disassembler für 8bit-CPUs. Dabei geht's um Befehlssätze und Ausführungszeiten. Im ersten, für mich wichtigsten Teil geht's um die 65xx-Familie. Kurz zu dem, was ich bisher berücksichtigt habe oder weiß:
Der Basisbefehlssatz ist der sogenannte NMOS-Befehlssatz aus dem Jahr 1975 von MOS Technology (später Commodore). Rockwell brachte später dazu eine Erweiterung für Bitbefehle mit und ohne Verzweigung. Die findet sich neben dem NMOS-Befehlssatz z.B. im 6511 und später in den Rockwell-CMOS-CPUs. Es gibt die übliche CMOS-Erweiterung von NCR, WDC, VTI, Sierra, GTE (California Micro Device) und vielleicht noch ein paar mehr. Dann kamen die 16bit-Erweiterungen im 65816 und 65802 von WDC, deren Erweiterungen das Registermodell und den Befehlssatz betrafen, die nach Umschalten erreichbar sind.
In der Fortsetzung der 8bit-CMOS-Linie brachte Mitsubishi, später Renesas die Mikrocontrollerfamilien 740 ohne und dann mit MUL/DIV-Befehl heraus. Die Rockwell-Bit-Befehle fanden sich nicht in den 16bit-WDC-Chips wieder, die diese Opcodes mit anderen Befehlen belegten. Aber diese Rockwell-Befehle wurden von Mitsubishi in der 740-Familie übernommen.
Als Exot gab's von Ricoh einen 6502 mit NMOS-Befehlssatz ohne Dezimalmodus. Und als reine Paperware gab's den 65832 von WDC.
Wo es mir an Überblick fehlt, ist die Commodore-Rechner-Welt. Der Urvater PET 2001 hat natürlich die MOS-CPUs der ersten Generation mit dem NMOS-Befehlssatz drin. Später gab's den 6510 in diversen C64 und Artverwandten. Gab's in dieser Ecke CPUs mit etwas anderem als dem Basis-NMOS- und Basis-CMOS-Befehlssatz?
Die sogenannten undokumentierten Befehle inmitten der NMOS-Befehlssätze interessieren mich hier nicht. Das sprengt den Rahmen.
Im 2. Teil interessiere ich mich für die 68xx-Welt.
Die Basis ist der 6800 aus dem Jahr 1974. Darauf baute der 6802/6808 mit demselben Befehlssatz auf. Korrekt? Als Weiterentwicklung gab's die 6801/6803 mit erweitertem Befehlssatz und teils anderen Ausführungszeiten. Daraus leitete Hitachi den 6303 ab und Motorola den 68HC11 und seine Nachfolger auch wieder mit nochmals erweitertem Befehlssatz.
Irgendwo ist der 6809 mit völlig anderem Befehlssatz angesiedelt.
Kennt dazu jemand eine bessere Übersicht als die, die ich habe?
Kleines Schmankerl am Rand zur Informatiker-Logik bei Motorola:
im 6802 gibt's die üblichen bedingten Sprungbefehle wie bne mit dem Gegenstück beq oder bcs/bcc und auch einen relativen Sprungbefehl ohne Bedingung: den bra. Diesen ohne Gegenstück. Aber diese logische Lücke schlossen sie im Befehlssatz vom 6803: ein dort neuer Befehl ist BRN (branch never). Ich mag diese Logik
Ergänzende oder widersprechende Bemerkungen sind willkommen
Gruß, Ralf