Hallo,

habe mir gerade das AVR-Studio 4 runtergeladen und mir den Disassemblierten Code angesehen.
Code:
1202:       Empf(channel) = Timer0

+00001D0E:   E4A6        LDI       R26,0x46       Load immediate
+00001D0F:   E0B0        LDI       R27,0x00       Load immediate
+00001D10:   918C        LD        R24,X          Load indirect
+00001D11:   E3AF        LDI       R26,0x3F       Load immediate
+00001D12:   E0B3        LDI       R27,0x03       Load immediate
+00001D13:   90AD        LD        R10,X+         Load indirect and postincrement
+00001D14:   24BB        CLR       R11            Clear Register
+00001D15:   E1A5        LDI       R26,0x15       Load immediate
+00001D16:   E0B3        LDI       R27,0x03       Load immediate
+00001D17:   0CAA        LSL       R10            Logical Shift Left
+00001D18:   1CBB        ROL       R11            Rotate Left Through Carry
+00001D19:   0DAA        ADD       R26,R10        Add without carry
+00001D1A:   1DBB        ADC       R27,R11        Add with carry
+00001D1B:   938D        ST        X+,R24         Store indirect and postincrement
+00001D1C:   2788        CLR       R24            Clear Register
+00001D1D:   938C        ST        X,R24          Store indirect
Manches verstehe ich aber nicht. Warum wird z.b. R26 und R27 dreimal mit einem Wert beschrieben, wenn die Register nach den ersten beiden Malen gar nicht verwendet werden und wieder überschrieben werden? Außerdem wird R11 erst gelöscht und dann um 1 nach links geschoben. Was hat das für einen Sinn?
Ich hoffe, ich stelle mich jetzt nicht zu blöd an und jemand ist bereit, mir das zu erklären?

Gruß & Vielen Dank
Ghris