Zitat Zitat von MagicWSmoke Beitrag anzeigen
Die innerste und damit wichtigste Loop sieht jetzt so aus, da wüsste ich nicht mehr viel zu optimieren:
Code:
L0673:
    ld      r24,X+
    movw    r30,r18
    add     r30,r24
    adc     r31,r1
    lpm     r30,Z
    out     p18,r25
    out     p15,r30
    out     p18,r1
    out     p18,r25
    swap    r30
    out     p15,r30
    out     p18,r1
    cp      r26,r16
    cpc     r27,r17
    brne    L0673

Was macht diese Zeile?

Code:
 adc     r31,r1
r1 müsste doch 0 sein...
Was der Befehl macht weiß ich(denke ich), aber warum?
r31 verändert sich doch nicht, welche Rolle spielt das Carry?