Sehr geehrte Damen und Herren, ich habe folgendes Verständnisproblem. 1) STY 0,X : dort wird der Inhalt der Speicherstelle auf die Y zeigt an die Speicherstelle worauf X zeigt gespeichert ? 2) ist dieser Befehl mit 1) identisch ? LDX 0,Y ? Vielen Dank für eure Hilfe mfg Klaus
Um was für einen Prozessor soll es sich dabei handeln? Könnte z.B. was 6502-artiges sein. Dann würde sty 0,x den Inhalt des Registers y and die Adresse 0+x schreiben wobei 0+x modulo 256 genommen wird. ldx 0,y würde dann den Inhalt der Speicherstelle 0+y (wobei 0+y wieder modulo 256 genommen wird) ins Register x laden.
Hallo und erstmal danke für deine Hilfe, es handelt sich um den 8bit uP 6809... ...eins kann ich sagen, und zwar dass x bzw y nicht verschoben werden..also nicht als pre, bzw post decrement behandelt werden. Sie behalten ihren aktuellen Stand... danke für die hilfe
Den 6809 kenn ich nicht wirklich, der hat aber unter anderem 16 Bit breite Indexregister, dann stimmt zumindest dass was ich von wegen modulo 256 geschrieben habe ziemlich sicher nicht, und es wird sich um 16 Bit Zugriffe handeln. Ist aber nur Spekulation, ich kenn den 6809 nur gaaanz flüchtig (vom Hörensagen oder so) Guckst du hier: http://koti.mbnet.fi/~atjs/mc6809/Information/6809Data.pdf
> 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.
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.