Forum: Mikrocontroller und Digitale Elektronik Kleine Frage zu Assembler/dseg


von Sebastian R. (seb_russ)


Lesenswert?

Hallo miteinander,


ich habe , als Anfänger , eine Frage zu einer Aufgabe.
Und zwar ist neben dem Code selbst auch der Auszug von .dseg gegeben.

sei gegebenes .dseg :

0001F0:  01 02 CA BB AC 9D 8E 7F -  2F 30 08 AC FF FF FF 00
000200:  01 02 CA BB AC 9D 8E 7F -  8E 7F 9D AC CA FF 00 18
000210:  01 02 CA BB AC 9D 8E 7F -  8E 7F 9D AC CA FF FF 12

Betreffende Frage bezgl. Code, der Auszug:
….
ld      r17,y+
ld      r18,y+
…..

Die Inkrementierung von Y um 1 ist klar. Wie aber kommt man auf die 0xAC 
und 0xFF , die nach dem Befehl dann im R17 und R18 stehen , woran 
erkenne ich dass gerade diese beiden aus dem dseg gemeint sind ?

von c-hater (Gast)


Lesenswert?

Sebastian R. schrieb:

> Wie aber kommt man auf die 0xAC
> und 0xFF , die nach dem Befehl dann im R17 und R18 stehen , woran
> erkenne ich dass gerade diese beiden aus dem dseg gemeint sind ?

An dem Teil des Codes, der nicht im Umfang deines Codeauszugs war 
natürlich. Irgendwo wurde da irgendwie das Y-Registerpaar mit einem 
Zeiger in den Datenbereich geladen und dieser Zeiger zeigt auf eine 
Adresse, auf der 0xAC steht und auf der nächsthöheren 0xFF. Das könnte 
z.B. die Adresse 0x1FB sein.

von Sebastian R. (seb_russ)


Lesenswert?

Hallo und Danke, genau getroffen mit der 0x1FB im Y vorher.
Ich hatte das "unterschlagen" ;)

Aber : Woraus sehe ich das 0x1FB exakt auf 0xAC zeigt.
Die Frage mag naiv erscheinen zugegeben ; aber abgesehen von dieser 
Problematik lagen mir die Übungen recht gut.

von Thomas Forster (Gast)


Lesenswert?

Sebastian R. schrieb:
> Aber : Woraus sehe ich das 0x1FB exakt auf 0xAC zeigt.

0x1FB 'zeigt' nirgendwohin, das ist kein Zeiger wie das Y-Register 
sondern die physikalische Adresse einer Speicherzelle. In dieser steht 
dann der Wert 0xAC.

Vermutlich sprichst du von Atmega-Assembler. schreib doch das nächste 
mal den Controllertyp dazu.

von Peter D. (peda)


Lesenswert?

Sebastian R. schrieb:
> woran
> erkenne ich dass gerade diese beiden aus dem dseg gemeint sind ?

An dem nicht gezeigten Code.

von georg (Gast)


Lesenswert?

Sebastian R. schrieb:
> Woraus sehe ich das 0x1FB exakt auf 0xAC zeigt.

Das steht doch in dem Speicherauszug, den du gepostet hast, in der Zeile 
0001F0:. Im übrigen steht da eben drin was drin steht, das kann ja auch 
was anderes als 0xAC sein. Irgendwann hat irgendjemand das 
reingeschrieben, oder es ist ein zufälliger Wert.

Georg

von nachtmix (Gast)


Lesenswert?

Thomas Forster schrieb:
> schreib doch das nächste
> mal den Controllertyp dazu.

Ja, denn nicht immer steht das Ziel links vom Komma.
Es gibt auch Assembler, bei denen das genau andersrum ist.

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
Noch kein Account? Hier anmelden.