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
Lesezeichen