Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

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)