Chris.
Zitat Zitat von Che Guevara Beitrag anzeigen
Außerdem wird R11 erst gelöscht und dann um 1 nach links geschoben. Was hat das für einen Sinn?
XL & XH wurde Dir ja bereits von PicNick erklärt. Wobei mir allerdings der Nutzen im gezeigten Code nicht recht klar wird, denn wenn keine variable Adressierung notwendig ist, so verbraucht die Kombination
Code:
LDI   XL,   lbyte(Sram_Adress)
LDI   XH,   hbyte(Sram_Adress)
LD    Rxx,  X
deutlich mehr Flash als ein simples
Code:
LDS   Rxx,   {Sram_Adress}
Außerdem wird R11 erst gelöscht und dann um 1 nach links geschoben. Was hat das für einen Sinn?
Das dient zum Übertrag des Carry-Flags, hier in's High-Byte des 16Bit Wertes, mache ich auch so im von mir geposteten Beispielcode, nur dort mit ADD/ADC.
Du könntest keine Additionen oder Schiebeoperationen größer 8Bit ohne Carry durchführen.

Hast Du eigentlich die Bascom-Kommentare aus dem AVR-Studio Listing gezielt entfernt, oder nur das falsche File geladen ?