Vorlage Diskussion:Infobox Assembler
Aus C64-Wiki
Zur Navigation springenZur Suche springen
Änderung der Vorlage[Quelltext bearbeiten]
Die Vorlage zeigt nun leere Felder nicht mehr an. Sobald die Felder gefüllt werden, werden die jeweiligen Felder auch wieder angezeigt --Joystick 10:07, 10. Jul 2006 (CEST)
Fehlerhafte Anzeige bei JSR[Quelltext bearbeiten]
Bei JSR stimmt die Tabellenstruktur nicht: Takt 2 wird rechts neben Takt 1 angezeigt, statt darunter. --Berni (Diskussion) 12:43, 22. Jun. 2025 (CEST)
- Danke für den Hinweis, ist korrigiert. --Fedi (Diskussion) 22:54, 22. Jun. 2025 (CEST)
- Bei den Branch-Befehlen stimmt auch noch was nicht. Die können niemals 5 Taktzyklen haben: Wenn nicht verzweigt wird sind es 2, wenn verzweigt wird 3 und wenn dabei zusätzlich eine Seitengrenze überschritten wird sind es 4. --Berni (Diskussion) 18:30, 7. Jul. 2025 (CEST)
- Stimmt, in der Quelle sind die Taktzyklen dazu etwas verwirrend beschrieben. Jetzt sollte es passen. --Fedi (Diskussion) 18:45, 13. Jul. 2025 (CEST)
- Noch nicht ganz... Angeblich kann in Taktzyklus 4 das High-Byte des Programmzählers (PCH) ungültig sein (erkennbar am Sternchen hinter "PC"). Tatsächlich kann das High-Byte des Programmzählers aber in Taktzyklus 3 ungültig sein, und in Taktzyklus 4 stimmt es dann auf jeden Fall.
- Der Vermerk "z.B. um 256 Bytes zu hoch oder niedrig." ist auch irreführend — besser wäre "um 1 zu hoch oder zu niedrig", schließlich geht es um PCH und nicht um den Programmzähler PC. --Stephan64 (Diskussion) 18:59, 13. Jul. 2025 (CEST)
- Beim zweiten Punkt stimme ich dir zu, nicht aber beim ersten. Nach dem vierten Taktzyklus stimmt der PCH, ansonsten bräuchte es den Zyklus ja nicht. Das bedeutet, dass in Zyklus 4 die CPU einen Opcode einliest, aber von der falschen Page. --Fedi (Diskussion) 19:15, 13. Jul. 2025 (CEST)
- Sollte das nicht "dass in Zyklus 3 die CPU einen Opcode einliest, aber von der falschen Page" heißen?
- Zyklus 4 wird doch genau dann nach Zyklus 3 eingeschoben, falls das Sprungziel in einer anderen Page als der Sprungbefehl liegt - und zwar deshalb, weil in Zyklus 3 PCH noch nicht der Übertrag aus der Addition "PCL + Sprungoffset" berücksichtigt. In Zyklus 3 stimmt also der PC noch nicht, und der Lesezugriff liest eine falsche Speicherzelle.
- Vielleicht um Missverständnissen vorzubeugen: Mich stört nur das Sternchen an "PC" in Zyklus 4 (das hätte ich gern am PC in Zyklus 3), alles andere stimmt ja. --Stephan64 (Diskussion) 19:59, 13. Jul. 2025 (CEST)
- Nein, denn in Zyklus 3 wird ja erst die Sprungadresse berechnet, daher liest die CPU dort den Opcode unmittelbar nach dem Offset-Byte ein. Tritt kein Seitenüberlauf auf, ist der anschließende Zyklus der erste des nächsten Befehls, anderenfalls wird Zyklus 4 ausgeführt. Wiederum wird ein Byte vom aktuellen, noch falschen PC gelesen und gleichzeitig die Highbyte-Korrektur durchgeführt. --Fedi (Diskussion) 22:21, 13. Jul. 2025 (CEST)
- Beim zweiten Punkt stimme ich dir zu, nicht aber beim ersten. Nach dem vierten Taktzyklus stimmt der PCH, ansonsten bräuchte es den Zyklus ja nicht. Das bedeutet, dass in Zyklus 4 die CPU einen Opcode einliest, aber von der falschen Page. --Fedi (Diskussion) 19:15, 13. Jul. 2025 (CEST)
- Stimmt, in der Quelle sind die Taktzyklen dazu etwas verwirrend beschrieben. Jetzt sollte es passen. --Fedi (Diskussion) 18:45, 13. Jul. 2025 (CEST)
- Bei den Branch-Befehlen stimmt auch noch was nicht. Die können niemals 5 Taktzyklen haben: Wenn nicht verzweigt wird sind es 2, wenn verzweigt wird 3 und wenn dabei zusätzlich eine Seitengrenze überschritten wird sind es 4. --Berni (Diskussion) 18:30, 7. Jul. 2025 (CEST)