Ich kriegs irgendwie nicht hin...
ich brauch in asm ein kleines "array" mit 64 byte, auch welches ich dann
über das Y-Register zugreife. Der Zugriff ist (hoffentlich) einfach:
1 | lds r24, _SFR_IO_ADDR(ADCH) ; read upper 8 bits
|
2 | subi r24, 127 ; convert to signed
|
3 | lds r25, index ;
|
4 | ldi r28, lo8(buffer) ; Y = buffer[0]
|
5 | ldi r29, hi8(buffer) ;
|
6 | add r28, r25 ; Y= buffer[index]
|
7 | adc r29, r2 ; zero
|
8 | st Y, r24
|
Doch da stellt sich gleich die erste Frage: _SFR_IO_ADDR(ADCH) dürfte
falsch sein, zumindest ist der resultierende Code falsch. ich hab noch
nicht wirklich durchschaut wann ich _SFR_IO_ADDR() verwende und wann
nicht....
aber mein größeres Probem: Wie definiere ich dann meine 64 byte für
"buffer" richtig? .local, .comm, .byte, brauch ich einen label, ...
ein kurzes Beispiel, wie mans "sauber" macht, würde mir sehr helfen!
übrigens: "buffer" soll lokal sein, braucht also dem Linker nicht
bekannt gemacht zu werden.
Danke! (Aller AsmAnfang ist schwer...)
Bitte: ich rede von gcc-asm (also .sx) nicht vom AVR-Assembler!