Re: array mit integer initialisieren Kategorie: Programmierung C (von Bla - 20.09.2008 16:09) | |
Als Antwort auf Re: array mit integer initialisieren von PeterS - 20.09.2008 15:43
| |
Ok mal ausprobiert. So super dynamisch ist das gar nicht. hier draus: void blablubb(int arraysize) { int laber[arraysize]; for(int i = 0; i < arraysize; i++) laber[i] = i+10; } int main(void) { blablubb(10); //... } macht der AVR-GCC: 000002d4 2d4: df 93 push r29 2d6: cf 93 push r28 2d8: cd b7 in r28, 0x3d ; 61 2da: de b7 in r29, 0x3e ; 62 2dc: 9c 01 movw r18, r24 2de: 4d b7 in r20, 0x3d ; 61 2e0: 5e b7 in r21, 0x3e ; 62 2e2: 88 0f add r24, r24 2e4: 99 1f adc r25, r25 2e6: 6d b7 in r22, 0x3d ; 61 2e8: 7e b7 in r23, 0x3e ; 62 2ea: 68 1b sub r22, r24 2ec: 79 0b sbc r23, r25 2ee: 0f b6 in r0, 0x3f ; 63 2f0: f8 94 cli 2f2: 7e bf out 0x3e, r23 ; 62 2f4: 0f be out 0x3f, r0 ; 63 2f6: 6d bf out 0x3d, r22 ; 61 2f8: ed b7 in r30, 0x3d ; 61 2fa: fe b7 in r31, 0x3e ; 62 2fc: 31 96 adiw r30, 0x01 ; 1 2fe: 80 e0 ldi r24, 0x00 ; 0 300: 90 e0 ldi r25, 0x00 ; 0 302: 04 c0 rjmp .+8 ; 0x30c 304: 0a 96 adiw r24, 0x0a ; 10 306: 81 93 st Z+, r24 308: 91 93 st Z+, r25 30a: 09 97 sbiw r24, 0x09 ; 9 30c: 82 17 cp r24, r18 30e: 93 07 cpc r25, r19 310: cc f3 brlt .-14 ; 0x304 312: 0f b6 in r0, 0x3f ; 63 314: f8 94 cli 316: 5e bf out 0x3e, r21 ; 62 318: 0f be out 0x3f, r0 ; 63 31a: 4d bf out 0x3d, r20 ; 61 31c: cf 91 pop r28 31e: df 91 pop r29 320: 08 95 ret Also halb so wild. Der nurzt hier wohl kein malloc oder so... das säh anders aus. Wenn ich das Array FIX auf 10 elemete festleg, sind nur 24 Byte weniger Code. Sieht eher aus als würd der das auf den Stack legen ... aber hab nicht so Ahnung von Asembler. | |
Antwort schreiben Antworten: Re: array mit integer initialisieren (von PeterS - 20.09.2008 16:46) Re: array mit integer initialisieren (von Bla - 20.09.2008 17:09) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum