Re: Re: přístup na byty v int C

Andrej Jancura aj.hwlist na gmail.com
Čtvrtek Říjen 31 11:28:24 CET 2013


Dobry den,

starsie verzie prekladaju i++ tak, ze tam je skutocne incfsz a cela
konstrukcia ma 8 instrukcii a to na 35 rocnej architekture PIC16. Cize tak
ako ste to odhadol, ten princip. Preco novsie verzie pouzivaju tu sialenu
konstrukciu neviem, ale da sa vytusit, ze za tym mozu byt rozne dovody. Ono
je aj tak celkom zaujimave filozofovanie, preco ten kompilator negeneruje
najoptimalnejsi kod, a to aj v platenej verzii. Rozoberat to zbytocne
nechcem, lebo problem pristupu k typu int cez byty sa tu rozoberal uz aspon
tri krat a vzdy sme skoncili pri kompilatore C... A poznamkami preco je
PIC16 na nic. Tym nechcem povedat, ze novsie cipy nie su dobre, ale mozu
byt aj ine prakticke dovody, preco robit so zabehnutymi typmi.

Tymto by som rad tuto diskusiu z mojej strany uzavrel.

A.


Dňa 31. októbra 2013 0:19, Radek Benedikt <benedikt na lphard.cz> napísal(-a):

> > unsigned long i;
> > ...
> > i++;
> >
> > 0xFFEA: MOVLW 0x1
> > 0xFFEC: ADDWF i, F, ACCESS
> > 0xFFEE: MOVLW 0x0
> > 0xFFF0: ADDWFC 0x8, F, ACCESS
> > 0xFFF2: MOVLW 0x0
> > 0xFFF4: ADDWFC 0x9, F, ACCESS
> > 0xFFF6: MOVLW 0x0
> > 0xFFF8: ADDWFC 0xA, F, ACCESS
> >
> > Cize celkom pochopitelny kus "assembleru". Nulovanie W po kazdej
> > inkrementacii je predpokladam dan za free verziu kompilatora - pouziva
> > sa vseobecne pripocitanie 32-bitovej konstanty k premennej, bez ohladu
> > na to, ze jedno z nich je skratka jednotka.
>
> Drobne upresneni naokraj:
> Ta jednotka je taky 32bitova, ono to neni zas tak nebezne, pricitat 0 +
> carry k casti promenne. Pravda, sice je obcas videt preskoc nasledujici
> instrukci(e), kdyz neni prenos a tou nasledujici instrukci je inkrement
> casti promenne. Opravuji se, dost (vetsina ?) procesoru nenastavuje pri
> inkrementu prenos a protoze se pricita jednicka k vicebitove promenne,
> tak je mozne testovat byte na nulu. Takze preskoc nasledujici
> instrukci(e) neni-li nula. A to celkem trikrat, takze to nebude kratsi
> nez priklad nahore. A tusim ze to nebude na PICu ani rychlejsi. To by
> musel mit podmineny skok, ne jen preskok.
>
> Radek (benedikt2hw.cz)
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na 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/20131031/ea1e89ad/attachment.htm>


Další informace o konferenci Hw-list