.def Pointer

OP #6119423
Lesenswert?

Hallo,
mit .def lassen sich ja bekannterweise Symbolische namen für Register 
vergeben. Das funktioniert natürlich auch mit den Pointer registern 
XH,XL etc. Wie aber kann ich dem Pointer selbst einen Namen zuordnen?

.def TimestampPointer = X

generiert mir die Fehlermeldung: "Invalid register" eigentlich logisch, 
ist ja auch kein Register. .equ funzt aber auch nicht. Geht das 
überhaupt oder ist der X Pointer auf ewig dazu verdammt der X Pointer zu 
sein?

mfg
Gast #6119931
Lesenswert?

Multi K. schrieb:


> Hallo,
> mit .def lassen sich ja bekannterweise Symbolische namen für Register
> vergeben. Das funktioniert natürlich auch mit den Pointer registern
> XH,XL etc. Wie aber kann ich dem Pointer selbst einen Namen zuordnen?
>
> .def TimestampPointer = X
>
> generiert mir die Fehlermeldung: "Invalid register" eigentlich logisch,
> ist ja auch kein Register. .equ funzt aber auch nicht. Geht das
> überhaupt oder ist der X Pointer auf ewig dazu verdammt der X Pointer zu
> sein?

Nehmen wir mal an, du wolltest X symbolisch als "DataPtr" verwenden:

.undef XL
.undef XH
.def DataPtrL XL
.def DataPtrH XH
#define DataPtr X

Dann kannst du Sachen machen wie:

ldi DataPtrL,Low(data)
ldi DataPtrH,High(data)
ld R0,DataPtr+
ld R0,DataPtr
ldd R0,DataPtr+5
Gast #6120035
Lesenswert?

S. Landolt schrieb:

> Fehlt noch immer das "=".

Korrekt. Das alles kommt davon, wenn man's einfach in den Browser tippt, 
ohne es zuvor zu überprüfen...

Schützt aber auch sehr gut vor Nachnutzung durch C&Pler...

> Und bin ich eigentlich der Einzige hier, der die Assembler-Option '-c'
> verwendet?

Vermutlich schon. Ich fand diese C-ische case sensitivity schon immer 
unerträglich und bin dankbar und glücklich, dass das bei AVR-Assembler 
eben nicht Standard ist. So wie sie das bei allen Sprachen auch nicht 
ist, die ich gern verwende. ;o)

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