<html>
<head>
<meta content="text/html; charset=ISO-8859-2"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Jezkovyvoci, to je instrukci..... ;-)
Je videt, ze osmibitove procesory jsou proste vhodne pro
osmibitove a binarni operace :-P <br>
Dne 30.10.2013 11:58, Andrej Jancura napsal(a):<br>
</div>
<blockquote
cite="mid:CALQx4r+4idE5QpJucEzAJeeQXRYipxqckVZtPP2Qv4PgnofsmA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div><br>
</div>
No ja mam takyto kus kodu pre pic16xxx:<br>
<br>
void Delay(unsigned long int Cycles)<br>
while(Cycles--)<br>
;<br>
<br>
</div>
asm:<br>
movlw 1<br>
movwf Delay<br>
clrf Delay+1<br>
clrf Delay+2<br>
clrf Delay+3<br>
subwf Delay@Cycles,f<br>
movf Delay+1,w<br>
skipc<br>
incfsz Delay+1,w<br>
subwf Delay@Cycles+1,f<br>
movf Delay+2,w<br>
skipc<br>
incfsz Delay+2,w<br>
subwf Delay@Cycles+2,f<br>
movf Delay+3,w<br>
skipc<br>
incfsz Delay+3,w<br>
subwf Delay@Cycles+3,f<br>
incf Delay@Cycles& (0+127),w<br>
skipnz<br>
incf (Delay@Cycles+1)& (0+127),w<br>
skipnz<br>
incf (Delay@Cycles+2)& (0+127),w<br>
skipnz<br>
incf (Delay@Cycles+3)& (0+127),w<br>
btfsc 3,2<br>
return<br>
goto<br>
<br>
</div>
V 1.12 je podla mna ten kod este dlhsi. Pre increment je ta
rutina podobna.<br>
<br>
</div>
A.<br>
<br>
</div>
</div>
<div class="gmail_extra">
<br>
<br>
<div class="gmail_quote">Dòa 30. októbra 2013 11:29, Jaromir
Sukuba <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:jarin.hw@gmail.com" target="_blank">jarin.hw@gmail.com</a>></span>
napísal(-a):<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
Presvedcil som sa: XC1.12<br>
<br>
unsigned long i;<br>
...<br>
i++;<br>
<br>
0xFFEA: MOVLW 0x1<br>
0xFFEC: ADDWF i, F, ACCESS<br>
0xFFEE: MOVLW 0x0<br>
0xFFF0: ADDWFC 0x8, F, ACCESS<br>
0xFFF2: MOVLW 0x0<br>
0xFFF4: ADDWFC 0x9, F, ACCESS<br>
0xFFF6: MOVLW 0x0<br>
0xFFF8: ADDWFC 0xA, F, ACCESS<br>
<br>
Cize celkom pochopitelny kus "assembleru". Nulovanie W po
kazdej<br>
inkrementacii je predpokladam dan za free verziu kompilatora
- pouziva<br>
sa vseobecne pripocitanie 32-bitovej konstanty k premennej,
bez ohladu<br>
na to, ze jedno z nich je skratka jednotka.<br>
Andy, ako to robis, ze uplne bezne veci u teba skratka
nefunguju?<br>
Rozmyslam, ze by som ta zamestnal ako beta-testera.<br>
<br>
<br>
<br>
<br>
Dòa 30. októbra 2013 11:12, Andrej Jancura <<a
moz-do-not-send="true" href="mailto:aj.hwlist@gmail.com">aj.hwlist@gmail.com</a>>
napísal/a:<br>
<div class="HOEnZb">
<div class="h5">> Ahoj,<br>
><br>
> nemusis sa hned citit dotknuty vsetkym co napisem.
Pozri ja som to pochopil<br>
> tak, ze aj ked uniony nie su podla normy a cez
pointre mi nikdy takato<br>
> konverzia nechodila, lebo kompilator vrestal,
myslim si, ze mozes pisat kod<br>
> tak, aby si bol podla normy a sucasne vygenerujes
optimalny kod v asm. Taky<br>
> ako by si ho napisal v pure asm.<br>
><br>
> Tie konstrukcie si ale musis najst sam a pozriet
ako sa co preklada. A v<br>
> pripade PicC a XC8 je kazda C konstrukcia
generovana inym kodom. Mozes sa o<br>
> tom presvedcit napr. ked si das unsigned long int
i, a v programe mas i++...<br>
> Neviem sice ako posledna xc1.21, ale nejaka 1.12 to
generovala takou<br>
> rutinou, kde som prvy krat v zivote skonstatoval,
ze neviem pochopit co ten<br>
> kus asembleru robi. Predchadzajuca verzia
kompilatora totiz pouzivala<br>
> klasicky incfsz...<br>
><br>
> Zial uz som dlho nic s tymto nerobil, pretoze som
bol znechuteny tym, ze aj<br>
> ked som vygeneroval z C kod ako keby bol z
asembleru v app. note, aj tak mi<br>
> to poriadne nechodilo na hw. Avsak medzicasom som
prisiel na par trikov, ale<br>
> to sa zda, ze je cisto hw zalezitost a treba pouzit
iny algoritmus obsluhy<br>
> hw.<br>
><br>
> A.<br>
><br>
><br>
> Dòa 30. októbra 2013 9:57, Jan Waclawek <<a
moz-do-not-send="true" href="mailto:konfera@efton.sk">konfera@efton.sk</a>>
napísal(-a):<br>
><br>
>> Lenze type punning nie je podla normy; resp. z
normy priamo vyplyva, ze<br>
>> obe<br>
>> metody maju normou nedefinovany vysledok.<br>
>><br>
>> Ako som bol pisal, ak mas pocit, ze nieco treba
mat urcite napisane<br>
>> nejakym<br>
>> sposobom, netreba zbytocne vahat a treba ist do
asm. To zase u tych ARMov<br>
>> nie je uplne trivialne, ale u 8-bitov sa to
priamo nuka. Uznavam, ze nie<br>
>> kazdy kompilator ma taku uzasnu podporu pre
inline asm ako gcc a uznavam,<br>
>> ze u gcc to zase pada na hubu kvoli mizernej
dokumentacii...<br>
>><br>
>> wek<br>
>><br>
>><br>
>><br>
>> ----- Original Message ---------------<br>
>> >Ahoj,<br>
>> ><br>
>> >to si mozes dovolit na tvojej F4... Ale na
cipe s 8K-16K instrukcii je<br>
>> >kazdy trik dobry. Ono aj ked to pises podla
normy, tak sa to da napisat<br>
>> >rozne, tak aby si mal minimalny
vygenerovany kod.<br>
>> ><br>
>> ><br>
>> >2013/10/29 Jan Waclawek <<a
moz-do-not-send="true" href="mailto:konfera@efton.sk">konfera@efton.sk</a>><br>
>> ><br>
>> >> Ak "sa to napise" tak, ako norma
predpisuje, tak na optimalizaciach<br>
>> >> nezalezi.<br>
>> >><br>
>> >> A o to tu ide.<br>
>> >><br>
>> >> wek<br>
>> >><br>
>> >><br>
>> >> ----- Original Message ---------------<br>
>> >> >No ja bych rekl, ze vic zalezi na
zapnutych optimalizacich, nez jak se<br>
>> >> >to napise...<br>
>> >><br>
>><br>
>> _______________________________________________<br>
>> HW-list mailing list - sponsored by <a
moz-do-not-send="true" href="http://www.HW.cz"
target="_blank">www.HW.cz</a><br>
>> <a moz-do-not-send="true"
href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
>> <a moz-do-not-send="true"
href="http://list.hw.cz/mailman/listinfo/hw-list"
target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> HW-list mailing list - sponsored by <a
moz-do-not-send="true" href="http://www.HW.cz"
target="_blank">www.HW.cz</a><br>
> <a moz-do-not-send="true"
href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
> <a moz-do-not-send="true"
href="http://list.hw.cz/mailman/listinfo/hw-list"
target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
><br>
_______________________________________________<br>
HW-list mailing list - sponsored by <a
moz-do-not-send="true" href="http://www.HW.cz"
target="_blank">www.HW.cz</a><br>
<a moz-do-not-send="true"
href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<a moz-do-not-send="true"
href="http://list.hw.cz/mailman/listinfo/hw-list"
target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
<br>
</body>
</html>