Arduino F. schrieb: > Wobei es alleine von MOV ca 1/2 Dutzend Varianten gibt, 6502 hat exakt null MOV-Instruktionen. Falsch abgebogen?
Manchmal gibt es wohl Zwänge. Bei Zilogs berüchtigten Load-Befehlen, die eigentlich Store-Befehle sind, habe ich das Namensrecht im Verdacht.
:
Bearbeitet durch User
Harald K. schrieb: > 6502 hat exakt null MOV-Instruktionen. Dafür aber "transfer". Ist das besser? :)
(prx) A. K. schrieb: > Ist das besser? Kommt auf das Mindset der das verdauenden Person an. Die sechs "transfer"-Befehle schreiben den Inhalt eines Registers in ein anderes (Y nach A oder umgekehrt, X nach A oder umgekehrt, X nach S oder umgekehrt). Hat irgendjemand behauptet, der 6502 hätte einen orthogoalen oder auch nur irgendwie logisch aufgebauten Befehlssatz? Wer einen schöneren Befehlssatz sehen will, soll sich den des 6809 ansehen.
Harald K. schrieb: > Hat irgendjemand behauptet, der 6502 hätte einen orthogoalen oder auch > nur irgendwie logisch aufgebauten Befehlssatz? Was ist an dem Befehlssatz unlogisch? Orthogonal ist nett, aber eher B-Note. Die Anzahl Millionen (Milliarden?) 6502 CPUs (und deren Derivate), die in den letzten 50 Jahren gebaut und benutzt worden sind, belegen wohl ganz gut, daß das Ding überaus nützlich war, auch wenn es keine akademische Schönheit ist. Aber die ist sowieso zweifelhaft! Done is better than perfect!
Harald K. schrieb: > Wer einen schöneren Befehlssatz sehen will, > soll sich den des XXX ansehen. Ich wüsste da auch einen ...
Josef G. schrieb: > Harald K. schrieb: >> Wer einen schöneren Befehlssatz sehen will, >> soll sich den des XXX ansehen. > > Ich wüsste da auch einen ... Natuerlich, VAX Assembly language: https://www.ece.lsu.edu/ee4720/doc/vax.pdf Was sonst? Duck and Cover....
Hallo, Josef G. schrieb: > Ich wüsste da auch einen... Stimmt, die PDP-11 wurde noch nicht genannt. rhf P.S. Oder dachtest du an was anderes?...
Josef G. schrieb: > Harald K. schrieb: >> Wer einen schöneren Befehlssatz sehen will, >> soll sich den des XXX ansehen. > > Ich wüsste da auch einen ... Ich sehe durchaus Parallelen in Günters und Josefs Gedankenwelt - wer weiß, vielleicht findet sich ja mit Günter tatsächlich ein erster Anwender für bomes 8-Bit-Rechner?
Falk B. schrieb: > Done is better than perfect! Ich habe das überhaupt nicht (ab)wertend gemeint. Der Befehlssatz ist halt ... eine deutlich abgespeckte Variante des Originals, wie auch der Prozessor eine abgespeckte Variante des Originals* ist. Und ja, offensichtlich war das ausreichend, wie der deutlich größere Erfolg gegenüber dem Original zeigte - die abgespeckte Variante war halt auch deutlich kostengünstiger. Die Mehrarbeit durch aufwendigere Programmierung wurde lange Zeit durch die Kostenersparnis bei der Hardware aufgewogen. Aus Sicht des Programmierers aber bietet das Original mehr Möglichkeiten, zum Ziel zu kommen ... allein die Tatsache, daß sowohl der Stackpointer als auch das Indexregister 16 bit breit waren. Die Kür in dieser Richtung war eben der 6809, dem allerdings wenig Erfolg beschieden war, weil er technisch das Ende der Fahnenstange erreicht hatte (mal abgesehen von den viel zu spät erst öffentlich dokumentierten Erweiterungen, die Hitachi der CMOS-Version 6309 verpasst hatte), und weil nur wenige Monate später mit dem 68000 etwas völlig anderes aus dem gleichen Hause zur Verfügung stand. *) http://www.8bit-era.cz/6800.html
Interessanterweise gab es den 6800 vor dem 6502. Der 6800 hatte 250$ gekostet und das Preisziel vom 6502 war 25$. Dazu wurde der 6800 im Detail analysiert und geschaut, welches die wirklich wichtigen "Features" waren. Hier gibt es ein ziemlich aufschlussreiches Video, wie es zum Kampf um den 6502 kam: https://www.youtube.com/watch?v=lP2ZBp9O0mk Der Registersatz des 6800 war * Accumulatoren: A,B * Indexregister IX * Stackpointer * Flags https://en.wikipedia.org/wiki/Motorola_6800 Beim 6502 hat man sich den zweiten Accumulator 'B' gespart und dafür das Indexregister 'Y' eingeführt. Die Index-Register halte ich für enorm wichtig, da man damit schnell durch Tabellen gehen kann. Was mich immer wieder wundert ist, dass der 6502 trotz der sehr viel geringeren Registeranzahl mit der Geschwindigkeit des Z80 mithalten konnte. Der Vorteil dürfte aber der relativ schnelle Zugriff auf die RAM-Speicherzellen in Page 0 gewesen sein, die man dann als einen erweiterten Registersatz betrachten könnte.
Falk B. schrieb: > Done is better than perfect! Perfektion ist sowieso das tote. Allerdings hatten einige Bethesda-Fans ganz schön ausgeholt, als Starfield rauskam.
Christoph M. schrieb: > Dazu wurde der 6800 im Detail analysiert und geschaut, welches die > wirklich wichtigen "Features" waren. Eben. Christoph M. schrieb: > Die Index-Register halte ich für enorm wichtig, da man damit schnell > durch Tabellen gehen kann. Richtig, aber die des 6502 waren nur 8 Bit breit, das des 6800 aber 16 Bit, so daß Tabellen auch größer als eine "Page" werden konnten, ohne daß zusätzliche Klimmzüge nötig waren. Der 6809 hatte zwei 16-Bit-Indexregister und einen weiteren, ebenfalls 16 Bit großen Stackpointer, und konnte für manche Operationen die beiden 8-Bit-Akkumulatoren zu einem 16-Bit-Akkumulator kombinieren. Ein Problem wurde dann allerdings das relativ langsame Businterface, das halt jedes einzelne Byte nacheinander schaufeln musste; hätte man das mit einem 16-Bit-Businterface kombiniert, hätte das Ding deutlich flotter werden können. Allerdings war damals die restliche Hardware noch so teuer, daß man diesen Schritt gerne ausließ - zumal die dann doch massiv überarbeitete 68k-Architektur eh' konzeptionell überlegen war (mit jeder Menge 32-Bit-Registern ...).
Christoph M. schrieb: > Interessanterweise gab es den 6800 vor dem 6502. > Der 6800 hatte 250$ gekostet und das Preisziel vom 6502 war 25$. Das war damals die Vorgabe: Moeglichst billig fuer den Massenmarkt. > Beim 6502 hat man sich den zweiten Accumulator 'B' gespart und dafür das > Indexregister 'Y' eingeführt. Vor allen Dingen sind die Indizes fuer hoehe Programmiersprachen sehr hilfreich, so ein Art Frameindex (so dass Du lokal Variablen nicht auf dem Stack packen musst sondern auf Deinen Frame. Bei Return kannst Du dann alle Lokales einfach entsorgen) > Die Index-Register halte ich für enorm wichtig, da man damit schnell > durch Tabellen gehen kann. > > Was mich immer wieder wundert ist, dass der 6502 trotz der sehr viel > geringeren Registeranzahl mit der Geschwindigkeit des Z80 mithalten > konnte. Noe. Die 6502 hatte kein richtiges Microprogramming sondern wirklich ein direktes Steuerwerk. Das war schnell, auch der Speicherzugriff ueber Phi1/phi2 war sehr schnell und direkt. Die Z80 war viel komplexer aufgebaut und brauchte mehrere T-Zyklen um den OpCode zu dekodieren (auch wg. des Mikroprogramming). > Der Vorteil dürfte aber der relativ schnelle Zugriff auf die > RAM-Speicherzellen in Page 0 gewesen sein, die man dann als einen > erweiterten Registersatz betrachten könnte. Wenn Du den Nachfolger WDC65S02 anguckst: Dort wurde das Konzept der Zeropage auf die Direct-Page weiterentwickelt: Durch Direkt-Page-register (beim Reset 0x00) konntest Du Deine Zero-Page beliebig schieben. Wenn Du ein bisschen Geschichte lesen willst: in Beitrag "a Microprocessor for the Revolution -- 6809" habe ich einen Artikel von der Byte 1979 gezeigt wie der 6809 entwickelt wurde (so per Hand). Gruesse
Christoph M. schrieb: > Was mich immer wieder wundert ist, dass der 6502 trotz der sehr viel > geringeren Registeranzahl mit der Geschwindigkeit des Z80 mithalten > konnte. Lass Dich nicht von dem geringeren Quarztakt irritieren. Der 6502 braucht einen Quarztakt pro CPU-Takt. Beim Z80 sind es vier. D.h. Du musst einen Z80 mit 4 MHz takten, damit er innen drin genauso schnell läuft wie ein 6502 mit 1 MHz. Der Z80 hat leistunsfähigere und komplexe Befehle, aber die brauchen relativ lange. Beim 6502 muss man diese durch Unterprogramme nachbilden, was im Ergebis ähnlich schnell ist. Für den Assemblerprogrammierer ist der Z80 schöner, weil man eleganteren und kürzeren Code schreiben kann. Für den Anfänger ist der 6502 angenehmer, weil der einfacher zu überblicken ist. > Der Vorteil dürfte aber der relativ schnelle Zugriff auf die > RAM-Speicherzellen in Page 0 gewesen sein, die man dann als einen > erweiterten Registersatz betrachten könnte. Richtig. Die Zero-Page ist quasi eine Registerbank.
Soul E. (soul_eye) 25.05.2025 11:01 >Lass Dich nicht von dem geringeren Quarztakt irritieren. Der 6502 >braucht einen Quarztakt pro CPU-Takt. Das mit dem Takt ist mir bekannt und auch die Ausführung des Z80 als Bitslice-Prozessor mit 4 Bit Alu. Ich kenne den Z80 vom ZX81 mit knapp 4MHz Takt im Gegensatz zu den üblichen 1MHz beim 6502. Ich hätte vermutet, dass der Faktor 4 im CPU-CLK die Nachteile des Bitslice-Aufbaus ausgleicht und dass dann der doppelte Registersatz beim Z80 und die 16Bit Index-Register einiges an Performance Gewinn bringen.
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.