Gast
#181441
Hallo!
Ich hab einen Codevergleich zw. gcc 3.4.1 und 4.0.0 gemacht.
Hier zuerst der Code aus 3.4.1:
void
wait (uint16_t zeit)
{
f6: 9c 01 movw r18, r24
f8: 01 c0 rjmp .+2 ; 0xfc
while (zeit > timer2)
asm volatile ("nop");
fa: 00 00 nop
fc: 80 91 75 01 lds r24, 0x0175
100: 90 91 76 01 lds r25, 0x0176
104: 82 17 cp r24, r18
106: 93 07 cpc r25, r19
108: c0 f3 brcs .-16 ; 0xfa
10a: 08 95 ret
0000010c <init_timers_z>:
}
Hier mit 4.0.0:
void
wait (uint16_t zeit)
{
f4: 9c 01 movw r18, r24
while (zeit > timer2)
f6: 80 91 7b 01 lds r24, 0x017B
fa: 90 91 7c 01 lds r25, 0x017C
fe: 82 17 cp r24, r18
100: 93 07 cpc r25, r19
102: 40 f4 brcc .+16 ; 0x114
asm volatile ("nop");
104: 00 00 nop
106: 80 91 7b 01 lds r24, 0x017B
10a: 90 91 7c 01 lds r25, 0x017C
10e: 82 17 cp r24, r18
110: 93 07 cpc r25, r19
112: c0 f3 brcs .-16 ; 0x104
114: 08 95 ret
00000116 <init_timers_z>:
}