> 1) STY 0,X :
>
> dort wird der Inhalt der Speicherstelle auf die Y zeigt an die
> Speicherstelle worauf X zeigt gespeichert ?
Nein. STY speichert den Inhalt des Registers Y (das übrigens 16 Bit
breit ist) an die effektive Adresse 0x0000 + Inhalt des Registers X.
> 2) ist dieser Befehl mit 1) identisch ?
>
> LDX 0,Y ?
Nein, ganz und gar nicht. LDX lädt das Register X (das übrigens auch 16
Bit breit ist) mit dem Inhalt der effektiven Adresse 0x0000 + Inhalt des
Registers Y.
Im Gegensatz zur x86-Syntax, bei der die Lade- und Speicheroperation
richtungsunabhängig MOV heißt und Richtung sowie Quelle und Ziel nur
durch die Operanden spezifiziert wird, wird beim 6809 (und seinen
verwandten Vorgängern) bereits durch den Namen der Operation die Quelle
bzw. das Ziel spezifiziert.
Die Operationen werden aus Sicht der CPU beschrieben, LDx opr ist eine
Ladeoperation, die den durch den Operanden opr spezifizierten Wert in
das Register x lädt.
Entsprechend ist STx opr eine Speicheroperation, bei der der Inhalt
des Registers x in die durch den Operanden opr spezifizierte Adresse
geschrieben wird.
Eine Adressierungsart, in der direkt Daten aus einem Speicherbereich in
einen anderen transferiert werden, existiert nicht; Daten müssen in ein
Register geladen werden, damit sie in einer zweiten Operation wieder in
den Speicher geschrieben werden können. Dafür bietet der 6809 sehr viele
leistungsfähige Adressierungsarten bei recht guter Orthogonalität.
Der 6809 (ein wirklich wundervoller 8-Bit-Prozessor) hat sowohl 8- als
auch 16-Bit-Register. A B sind die beiden 8-Bit-Akkus, D ist der daraus
kombinierte 16-Bit-Akku, X und Y sind 16-Bit-Indexregister, U ist ein
zweiter 16-Bit-Stackpointer etc.