Kleine Frage zu Assembler/dseg

OP #5270643
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 ?
Gast #5270647
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.
Gast #5270690
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.
Gast #5270750
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren