Gast
#3073304
Unten ein Codeauszug, bei dem ich meine, dass der GCC (avr-gcc (WinAVR 20100110) 4.3.3) Optimierungen (Stufe S(ize)) nicht oder nicht vollständig durchführt. *1 Da in R24 der Wert schon steht, braucht er nicht extra gelesen werden. *2 SUBI setz das Z-Flag, so dass der Testvefehl überflüssig ist. Sehe ich das richtig? 54: --timeout; +000001F0: 8189 LDD R24,Y+1 Load indirect with displacement +000001F1: 5081 SUBI R24,0x01 *2 Subtract immediate +000001F2: 8389 STD Y+1,R24 *1 Store indirect 55: if (timeout == 0) +000001F3: 8189 LDD R24,Y+1 *1 Load indirect +000001F4: 2388 TST R24 *2 Test for Zero or Minus +000001F5: F099 BREQ PC+0x14 Branch if equal