mikrocontroller.net

Forum: PC-Programmierung Assembler Befehle identisch ?


Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Bartli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Bartli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.