Efektivita C

Michal HW michalgregor@centrum.cz
Úterý Leden 18 10:53:18 CET 2005


Zkousim C PICL od Hi-Techu.


Asembler zhruba takto:
    movlw 8 ;8 byte
    movwf Pc_Pocet_B
    movlw Pc_Bufer
    movwf FSR
    movlw    0
Scitej     addwf    INDF,W
    decfsz    Pc_Pocet_B,F
    goto Scitej

    movwf    Scitej

C:
       Pult_Ukazatel=20;
       Pom=0;
       do {
        Pom=Pult_Bufer[Pult_Ukazatel]+Pom;
       }
       while  ((Pult_Ukazatel--) >0);

Ve vypisu
          movlw 20
   364  06AF  00B0                movwf _Pult_Ukazatel
   365                           ;SGDR_MAT.C: 372: Pom=0;
   366  06B0  01AB                clrf _Pom ;volatile
   367  06B1                     l48
   368                           ;SGDR_MAT.C: 373: do {
   369                           ;SGDR_MAT.C: 374:
Pom=Pult_Bufer[Pult_Ukazatel]
      +                          +Pom;
   370  06B1  0830                movf _Pult_Ukazatel,w
   371  06B2  3E4A                addlw _Pult_Bufer
   372  06B3  0084                movwf 4
   373  06B4  1383                bcf 3,7
   374  06B5  0800                movf 0,w
   375  06B6  07AB                addwf _Pom ;volatile
   376                           ;SGDR_MAT.C: 375: }

Dost mne zarazi ze v tom uzavrenenm cyklu znovu vypocitava FSR.  Budu se
muset poohlednout po jinem C a porovnat to.

Michal




Další informace o konferenci Hw-list