C nebo ASM?

Michal HW michalgregor@centrum.cz
Pátek Květen 22 10:45:48 CEST 2009


PIC18 STD

volatile unsigned char Pole[32] = {
 0,1,2,3,4,5,6,7,8,9, 
 0,1,2,3,4,5,6,7,8,9, 
 0,1,2,3,4,5,6,7,8,9, 
 0,1 
};
unsigned char Soucet;


void main(void) {
 
 auto unsigned char Ukazatel;
 
 for ( Ukazatel = 0; Ukazatel < 32; ++Ukazatel) {
  
  Soucet += Pole[Ukazatel];
 } 

}

;Soucet.c: 18: Soucet += Pole[Ukazatel];
   182  00FFBA  50D9                movf fsr2l,w,c
   183  00FFBC  EE0F  F01F          lfsr 0,_Pole
   184  00FFC0  26E9                addwf fsr0l,f,c
   185  00FFC2  0E00                movlw 0
   186  00FFC4  22EA                addwfc fsr0h,f,c
   187  00FFC6  50EF                movf indf0,w,c
   188  00FFC8  010F                movlb _Soucet shr (0+8)
   189  00FFCA  273F                addwf _Soucet& (0+255),f,b
   190  00FFCC  2AD9                incf fsr2l,f,c
   191  00FFCE  0E1F                movlw 31
   192  00FFD0  64D9                cpfsgt fsr2l,c
   193  00FFD2  D7F3                goto l2

PIC18 PRO
16:                 for ( Ukazatel = 0; Ukazatel < 32; ++Ukazatel) {
  FFAE    010F     MOVLB 0xf
  FFB0    6B3F     CLRF 0x3f, BANKED
  FFB2    0E1F     MOVLW 0x1f
  FFB4    010F     MOVLB 0xf
  FFB6    653F     CPFSGT 0x3f, BANKED
  FFB8    D002     BRA 0xffbe
  FFBA    EF00     GOTO 0
  FFBC    F000     NOP
  FFD2    010F     MOVLB 0xf
17:                  
18:                  Soucet += Pole[Ukazatel];
  FFBE    CF3F     MOVFF 0xf3f, 0xfe8

A ted napsano v asembleru:
    movlw    32
    movwf    Pocet_Byte
    lfsr 0,Pole
    clrf    WREG
Pocitej_Soucet
    addwf POSTINC0,W
    decfsz Pocet_Byre
    bra Pocitej_Soucet



  ----- Original Message ----- 
  From: Jan Waclawek 
  To: HW-news 
  Sent: Friday, May 22, 2009 10:20 AM
  Subject: Re: C nebo ASM?


  Co je to "toto"?

  Poslite KOMPLETNY program, ak chcete porovnavat.

  wek


  ----- Original Message ---------------
  >Vlastni vinou? Ja nejsem nespokojeny s C. Vm ze ne vse dokaze C =
  >optimalizovat.  Jen jsem si chtel na tomto prikladu porovnat ruzne =
  >platformy, PC, kompilatory.
  >Znovu opakuji otazku: "Dokaze jiny kompilator toto lepe optimalizovat?"

  _______________________________________________
  HW-list mailing list  -  sponsored by www.HW.cz
  Hw-list@list.hw.cz
  http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20090522/8b318430/attachment-0002.htm 


Další informace o konferenci Hw-list