<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&amp; (0+127),w<br>
                                 skipnz<br>
                                 incf    (Delay@Cycles+1)&amp; (0+127),w<br>
                                 skipnz<br>
                                 incf    (Delay@Cycles+2)&amp; (0+127),w<br>
                                 skipnz<br>
                                 incf    (Delay@Cycles+3)&amp; (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">&lt;<a moz-do-not-send="true"
              href="mailto:jarin.hw@gmail.com" target="_blank">jarin.hw@gmail.com</a>&gt;</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 &lt;<a
              moz-do-not-send="true" href="mailto:aj.hwlist@gmail.com">aj.hwlist@gmail.com</a>&gt;
            napísal/a:<br>
            <div class="HOEnZb">
              <div class="h5">&gt; Ahoj,<br>
                &gt;<br>
                &gt; nemusis sa hned citit dotknuty vsetkym co napisem.
                Pozri ja som to pochopil<br>
                &gt; tak, ze aj ked uniony nie su podla normy a cez
                pointre mi nikdy takato<br>
                &gt; konverzia nechodila, lebo kompilator vrestal,
                myslim si, ze mozes pisat kod<br>
                &gt; tak, aby si bol podla normy a sucasne vygenerujes
                optimalny kod v asm. Taky<br>
                &gt; ako by si ho napisal v pure asm.<br>
                &gt;<br>
                &gt; Tie konstrukcie si ale musis najst sam a pozriet
                ako sa co preklada. A v<br>
                &gt; pripade PicC a XC8 je kazda C konstrukcia
                generovana inym kodom. Mozes sa o<br>
                &gt; tom presvedcit napr. ked si das unsigned long int
                i, a v programe mas i++...<br>
                &gt; Neviem sice ako posledna xc1.21, ale nejaka 1.12 to
                generovala takou<br>
                &gt; rutinou, kde som prvy krat v zivote skonstatoval,
                ze neviem pochopit co ten<br>
                &gt; kus asembleru robi. Predchadzajuca verzia
                kompilatora totiz pouzivala<br>
                &gt; klasicky incfsz...<br>
                &gt;<br>
                &gt; Zial uz som dlho nic s tymto nerobil, pretoze som
                bol znechuteny tym, ze aj<br>
                &gt; ked som vygeneroval z C kod ako keby bol z
                asembleru v app. note, aj tak mi<br>
                &gt; to poriadne nechodilo na hw. Avsak medzicasom som
                prisiel na par trikov, ale<br>
                &gt; to sa zda, ze je cisto hw zalezitost a treba pouzit
                iny algoritmus obsluhy<br>
                &gt; hw.<br>
                &gt;<br>
                &gt; A.<br>
                &gt;<br>
                &gt;<br>
                &gt; Dòa 30. októbra 2013 9:57, Jan Waclawek &lt;<a
                  moz-do-not-send="true" href="mailto:konfera@efton.sk">konfera@efton.sk</a>&gt;
                napísal(-a):<br>
                &gt;<br>
                &gt;&gt; Lenze type punning nie je podla normy; resp. z
                normy priamo vyplyva, ze<br>
                &gt;&gt; obe<br>
                &gt;&gt; metody maju normou nedefinovany vysledok.<br>
                &gt;&gt;<br>
                &gt;&gt; Ako som bol pisal, ak mas pocit, ze nieco treba
                mat urcite napisane<br>
                &gt;&gt; nejakym<br>
                &gt;&gt; sposobom, netreba zbytocne vahat a treba ist do
                asm. To zase u tych ARMov<br>
                &gt;&gt; nie je uplne trivialne, ale u 8-bitov sa to
                priamo nuka. Uznavam, ze nie<br>
                &gt;&gt; kazdy kompilator ma taku uzasnu podporu pre
                inline asm ako gcc a uznavam,<br>
                &gt;&gt; ze u gcc to zase pada na hubu kvoli mizernej
                dokumentacii...<br>
                &gt;&gt;<br>
                &gt;&gt; wek<br>
                &gt;&gt;<br>
                &gt;&gt;<br>
                &gt;&gt;<br>
                &gt;&gt; ----- Original Message ---------------<br>
                &gt;&gt; &gt;Ahoj,<br>
                &gt;&gt; &gt;<br>
                &gt;&gt; &gt;to si mozes dovolit na tvojej F4... Ale na
                cipe s 8K-16K instrukcii je<br>
                &gt;&gt; &gt;kazdy trik dobry. Ono aj ked to pises podla
                normy, tak sa to da napisat<br>
                &gt;&gt; &gt;rozne, tak aby si mal minimalny
                vygenerovany kod.<br>
                &gt;&gt; &gt;<br>
                &gt;&gt; &gt;<br>
                &gt;&gt; &gt;2013/10/29 Jan Waclawek &lt;<a
                  moz-do-not-send="true" href="mailto:konfera@efton.sk">konfera@efton.sk</a>&gt;<br>
                &gt;&gt; &gt;<br>
                &gt;&gt; &gt;&gt; Ak "sa to napise" tak, ako norma
                predpisuje, tak na optimalizaciach<br>
                &gt;&gt; &gt;&gt; nezalezi.<br>
                &gt;&gt; &gt;&gt;<br>
                &gt;&gt; &gt;&gt; A o to tu ide.<br>
                &gt;&gt; &gt;&gt;<br>
                &gt;&gt; &gt;&gt; wek<br>
                &gt;&gt; &gt;&gt;<br>
                &gt;&gt; &gt;&gt;<br>
                &gt;&gt; &gt;&gt; ----- Original Message ---------------<br>
                &gt;&gt; &gt;&gt; &gt;No ja bych rekl, ze vic zalezi na
                zapnutych optimalizacich, nez jak se<br>
                &gt;&gt; &gt;&gt; &gt;to napise...<br>
                &gt;&gt; &gt;&gt;<br>
                &gt;&gt;<br>
                &gt;&gt; _______________________________________________<br>
                &gt;&gt; HW-list mailing list  -  sponsored by <a
                  moz-do-not-send="true" href="http://www.HW.cz"
                  target="_blank">www.HW.cz</a><br>
                &gt;&gt; <a moz-do-not-send="true"
                  href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
                &gt;&gt; <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>
                &gt;<br>
                &gt;<br>
                &gt;<br>
                &gt; _______________________________________________<br>
                &gt; HW-list mailing list  -  sponsored by <a
                  moz-do-not-send="true" href="http://www.HW.cz"
                  target="_blank">www.HW.cz</a><br>
                &gt; <a moz-do-not-send="true"
                  href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
                &gt; <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>
                &gt;<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>