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
:
Verschoben durch Moderator
Schau mal: Weil das nicht in Opcodes vorkommt. Könnte man ja 'mal drüber nachdenken, wie man den targetspezifischen Befehlssatz erweitert. Das Doppelregister X ist schon vergeben: .def XH = r27 .def XL = r26 ciao gustav
:
Bearbeitet durch User
Hi, https://www.avrfreaks.net/forum/passing-pointer-asm-functions x-pointer habe ich in meinen Proggis nicht drin. Was nicht heißt, dass es diese auch gibt. ciao gustav
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
c-hater schrieb: > .undef XL > .undef XH > .def DataPtrL XL > .def DataPtrH XH Und nochmal Mist. Nachdem man XL und XH undefiniert hat, muss man natürlich die tatsächlichen Registernamen verwenden, also: > .def DataPtrL R26 > .def DataPtrH R27
> .def DataPtrL R26
Fehlt noch immer das "=".
Und bin ich eigentlich der Einzige hier, der die Assembler-Option '-c'
verwendet?
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)
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.