Diskussion:ROL $hhll, X
Speicherzugriffe unterhalb der Zeile "Taktzyklen"[Quelltext bearbeiten]
Da ich auch nach längerem Suchen nicht herausbekommen habe, wo sich die Tabelle der Speicherzugriffe während der Befehlsausführung editieren lässt, auf diesem Wege der Hinweis:
In der Tabelle ist momentan der 5. Taktzyklus durch ein Sternchen gekennzeichnet, mit der Bedeutung "das Highbyte der effektiven Adresse könnte zu diesem Zeitpunkt ungültig sein". Tatsächlich könnte aber in Taktzyklus 4 die effektive Adresse ungültig sein (weil das X-Register bereits zum Lowbyte der Basisadresse hinzuaddiert wurde, ein eventueller Übertrag aber noch nicht im Highbyte berücksichtigt ist). In Taktzyklus 5 ist dagegen das Highbyte und damit die gesamte effektive Adresse korrekt, und der in diesem Zyklus stattfindende Speicherzugriff liest tatsächlich die Speicherzelle, deren Inhalt nach links rotiert werden soll.
In Taktzyklus 6 würde ich zudem die Formulierung "schreibe Wert auf effektive Adresse zurück" zu "schreibe bisherigen Wert auf effektive Adresse zurück" präzisieren. Es gibt tatsächlich Programme, die sich auf dieses Verhalten verlassen und beispielsweise Interrupt-Anforderungen des VIC löschen, indem sie einen Read-Modify-Write-Befehl auf Register $D019 durchführen.
--Stephan64 (Diskussion)
- Versuche mal Vorlage:Infobox_Assembler. -- Polluks (Diskussion)
- Aah, genau dieser Hinweis und dieser Link hat mir gefehlt. Danke!
- --Stephan64 (Diskussion)