přístup na byty v int C

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Středa Říjen 30 12:01:26 CET 2013


Jezkovyvoci, to je instrukci..... ;-) Je videt, ze osmibitove procesory 
jsou proste vhodne pro osmibitove a binarni operace :-P
Dne 30.10.2013 11:58, Andrej Jancura napsal(a):
>
> No ja mam takyto kus kodu pre pic16xxx:
>
> void Delay(unsigned long int Cycles)
>    while(Cycles--)
>     ;
>
> asm:
>                    movlw    1
>                    movwf    Delay
>                    clrf    Delay+1
>                    clrf    Delay+2
>                    clrf    Delay+3
>                    subwf    Delay na Cycles,f
>                    movf    Delay+1,w
>                    skipc
>                    incfsz    Delay+1,w
>                    subwf    Delay na Cycles+1,f
>                    movf    Delay+2,w
>                    skipc
>                    incfsz    Delay+2,w
>                    subwf    Delay na Cycles+2,f
>                    movf    Delay+3,w
>                    skipc
>                    incfsz    Delay+3,w
>                    subwf    Delay na Cycles+3,f
>                    incf    Delay na Cycles& (0+127),w
>                    skipnz
>                    incf    (Delay na Cycles+1)& (0+127),w
>                    skipnz
>                    incf    (Delay na Cycles+2)& (0+127),w
>                    skipnz
>                    incf    (Delay na Cycles+3)& (0+127),w
>                    btfsc    3,2
>                    return
>                    goto
>
> V 1.12 je podla mna ten kod este dlhsi. Pre increment je ta rutina 
> podobna.
>
> A.
>
>
>
> Dňa 30. októbra 2013 11:29, Jaromir Sukuba <jarin.hw na gmail.com 
> <mailto:jarin.hw na gmail.com>> napísal(-a):
>
>     Presvedcil som sa: XC1.12
>
>     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.
>     Andy, ako to robis, ze uplne bezne veci u teba skratka nefunguju?
>     Rozmyslam, ze by som ta zamestnal ako beta-testera.
>
>
>
>
>     Dňa 30. októbra 2013 11:12, Andrej Jancura <aj.hwlist na gmail.com
>     <mailto:aj.hwlist na gmail.com>> napísal/a:
>     > Ahoj,
>     >
>     > nemusis sa hned citit dotknuty vsetkym co napisem. Pozri ja som
>     to pochopil
>     > tak, ze aj ked uniony nie su podla normy a cez pointre mi nikdy
>     takato
>     > konverzia nechodila, lebo kompilator vrestal, myslim si, ze
>     mozes pisat kod
>     > tak, aby si bol podla normy a sucasne vygenerujes optimalny kod
>     v asm. Taky
>     > ako by si ho napisal v pure asm.
>     >
>     > Tie konstrukcie si ale musis najst sam a pozriet ako sa co
>     preklada. A v
>     > pripade PicC a XC8 je kazda C konstrukcia generovana inym kodom.
>     Mozes sa o
>     > tom presvedcit napr. ked si das unsigned long int i, a v
>     programe mas i++...
>     > Neviem sice ako posledna xc1.21, ale nejaka 1.12 to generovala takou
>     > rutinou, kde som prvy krat v zivote skonstatoval, ze neviem
>     pochopit co ten
>     > kus asembleru robi. Predchadzajuca verzia kompilatora totiz
>     pouzivala
>     > klasicky incfsz...
>     >
>     > Zial uz som dlho nic s tymto nerobil, pretoze som bol znechuteny
>     tym, ze aj
>     > ked som vygeneroval z C kod ako keby bol z asembleru v app.
>     note, aj tak mi
>     > to poriadne nechodilo na hw. Avsak medzicasom som prisiel na par
>     trikov, ale
>     > to sa zda, ze je cisto hw zalezitost a treba pouzit iny
>     algoritmus obsluhy
>     > hw.
>     >
>     > A.
>     >
>     >
>     > Dňa 30. októbra 2013 9:57, Jan Waclawek <konfera na efton.sk
>     <mailto:konfera na efton.sk>> napísal(-a):
>     >
>     >> Lenze type punning nie je podla normy; resp. z normy priamo
>     vyplyva, ze
>     >> obe
>     >> metody maju normou nedefinovany vysledok.
>     >>
>     >> Ako som bol pisal, ak mas pocit, ze nieco treba mat urcite napisane
>     >> nejakym
>     >> sposobom, netreba zbytocne vahat a treba ist do asm. To zase u
>     tych ARMov
>     >> nie je uplne trivialne, ale u 8-bitov sa to priamo nuka.
>     Uznavam, ze nie
>     >> kazdy kompilator ma taku uzasnu podporu pre inline asm ako gcc
>     a uznavam,
>     >> ze u gcc to zase pada na hubu kvoli mizernej dokumentacii...
>     >>
>     >> wek
>     >>
>     >>
>     >>
>     >> ----- Original Message ---------------
>     >> >Ahoj,
>     >> >
>     >> >to si mozes dovolit na tvojej F4... Ale na cipe s 8K-16K
>     instrukcii je
>     >> >kazdy trik dobry. Ono aj ked to pises podla normy, tak sa to
>     da napisat
>     >> >rozne, tak aby si mal minimalny vygenerovany kod.
>     >> >
>     >> >
>     >> >2013/10/29 Jan Waclawek <konfera na efton.sk
>     <mailto:konfera na efton.sk>>
>     >> >
>     >> >> Ak "sa to napise" tak, ako norma predpisuje, tak na
>     optimalizaciach
>     >> >> nezalezi.
>     >> >>
>     >> >> A o to tu ide.
>     >> >>
>     >> >> wek
>     >> >>
>     >> >>
>     >> >> ----- Original Message ---------------
>     >> >> >No ja bych rekl, ze vic zalezi na zapnutych optimalizacich,
>     nez jak se
>     >> >> >to napise...
>     >> >>
>     >>
>     >> _______________________________________________
>     >> HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>     >> Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     >> http://list.hw.cz/mailman/listinfo/hw-list
>     >
>     >
>     >
>     > _______________________________________________
>     > HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>     > Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     > http://list.hw.cz/mailman/listinfo/hw-list
>     >
>     _______________________________________________
>     HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>
> _______________________________________________
> 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/20131030/d73759ef/attachment.htm>


Další informace o konferenci Hw-list