<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=56&amp;t=6675&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-19T13:41:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=56&amp;t=6675&amp;mode</id>
<entry>
<author><name><![CDATA[step_m]]></name></author>
<updated>2014-04-19T13:41:30+01:00</updated>
<published>2014-04-19T13:41:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78623#p78623</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78623#p78623"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78623#p78623"><![CDATA[
Oo, dzięki za potwierdzenie. Czyli wszystko już jasne <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1282">step_m</a> — 19 kwi 2014, o 13:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2014-04-19T13:33:10+01:00</updated>
<published>2014-04-19T13:33:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78620#p78620</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78620#p78620"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78620#p78620"><![CDATA[
<div class="quotetitle">step_m napisał(a):</div><div class="quotecontent"><br />Ja używam jednego z nowszych Atmela - avr8-gnu-toolchain-3.4.3.1072.<br /></div>Zgadza się, też używam tej wersji i miałem identyczne jak ty rezultaty po kompilacji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 19 kwi 2014, o 13:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[step_m]]></name></author>
<updated>2014-04-19T13:15:22+01:00</updated>
<published>2014-04-19T13:15:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78617#p78617</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78617#p78617"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78617#p78617"><![CDATA[
Ok. Dziękuję za odpowiedź. Kod jest ten sam. Czyli prawdopodobnie jest to kwestią różnych wersji toolchaina. Ja używam jednego z nowszych Atmela - avr8-gnu-toolchain-3.4.3.1072.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1282">step_m</a> — 19 kwi 2014, o 13:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-04-19T13:07:01+01:00</updated>
<published>2014-04-19T13:07:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78612#p78612</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78612#p78612"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78612#p78612"><![CDATA[
<div class="quotetitle">step_m napisał(a):</div><div class="quotecontent"><br />Jest na to jakieś wytłumaczenie?<br /></div><br /><br />pewnie że jest - tam gdzie tylko możesz używaj języka C <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />żeby napisać optymalniejszy  kod w asm niż wygeneruje ci program w C zwykle trzeba bardzo dobrze znać asm no i sporo się nagimnastykować - a skoro w tym drobnym przykładzie oczekujesz rewolucji po kompilacji i nie wiadomo jakich oszczędności to znaczy że dokładnie nie słuchałeś co mówiłem w poradniku <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ale przypomnę<br /><br />to jest tylko 'PRZYKŁAD DYDAKTYCZNY&quot; a nie super zoptymalizowany kod w asm ... jakbym pokazał super zoptymalizowany to mało kto by się nauczył i zrozumiał - i szkoda że często widzowie nie pamiętają o tym <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />panowie - w tym prostym przykładzie nie ścigamy się z C o to kto wygra i kto wygeneruje kod o kilka bajtów krótszy<br /><br />a poza tym - gdybyś kompilował dokładnie TAKI sam kod jak ja w poradniku i na TEJ SAMEJ wersji toolchaina to wyszło by ci tak samo - a jeśli wychodzi inaczej to no widać jak na dłoni że są jakieś inne warunki ... coś innego robisz .... Więc i to miej na uwadze gdy realizujesz przykłady ok?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 kwi 2014, o 13:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[step_m]]></name></author>
<updated>2014-04-19T12:53:37+01:00</updated>
<published>2014-04-19T12:53:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78610#p78610</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78610#p78610"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=78610#p78610"><![CDATA[
Witam ponownie,<br /><br />Powtórzyłem dokładnie ten sam kod co w poradniku z uwzględnieniem optymalizacji kompilatora. Po porównaniu, z funkcją napisaną w C kod zajmuje mi 184 bajty natomiast z funkcją asemblerową 190 bajtów. Czyli efekt jest odwrotny - z wstawką ASM kod jest większy o 6 bajtów. Jest na to jakieś wytłumaczenie? <br /><br />Pozdrawiam<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Jedyną różnicą jest wykorzystanie Portu B Atmegi 32 zamiast Portu A do świecenia diod.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1282">step_m</a> — 19 kwi 2014, o 12:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-04-13T07:58:47+01:00</updated>
<published>2014-04-13T07:58:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77830#p77830</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77830#p77830"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77830#p77830"><![CDATA[
<div class="quotetitle">step_m napisał(a):</div><div class="quotecontent"><br />Może warto wskazać w jakich sytuacjach, przypadkach powinno się używać wstawek asemblerowych. Wiem, że jeden z przykładów gdzie trzeba ich użyć to diody rgb WS... Ale może jeszcze jakieś inne przypadki gdzie powinniśmy myśleć o zastosowaniu wstawek.<br /></div><br /><br />Ja generalnie mam taką zasadę, że im mniej wstawek asm tym lepiej .... nie po to korzystam z dobrodziejstw C aby wracać do ASM <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... dlatego wstawki asm  - TYLKO tam, gdzie to niezbędne i konieczne bo inaczej się nie da .... dlatego nie widzę wielu takich sytuacji ...<br /><br />Dlatego ciężko byłoby mówić tzn podawać przykłady zastosowań ... trzeba byłoby brać dość trudne przypadki i je rozważać ... ale to już jakby rozważania na caaaałkiem oddzielny temat ew poradnik <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... może kiedyś<br /><br />Zauważ że w Greenbook'u przerobiłem specjalnie odtwarzacz WAV autorstwa elm-chan, który miał wstawki asm .... na czysty kod w 100% w C <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> dało się ? dało .... <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 kwi 2014, o 07:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[step_m]]></name></author>
<updated>2014-04-13T06:39:21+01:00</updated>
<published>2014-04-13T06:39:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77826#p77826</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77826#p77826"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77826#p77826"><![CDATA[
Panie Mirku,<br /><br />Ja mam taką małą sugestię co do tego poradnika. To tylko tak z mojego punktu widzenia. Poradnik na pewno SUPER. Może warto wskazać w jakich sytuacjach, przypadkach powinno się używać wstawek asemblerowych. Wiem, że jeden z przykładów gdzie trzeba ich użyć to diody rgb WS... Ale może jeszcze jakieś inne przypadki gdzie powinniśmy myśleć o zastosowaniu wstawek.<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1282">step_m</a> — 13 kwi 2014, o 06:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PROTON]]></name></author>
<updated>2014-04-12T12:59:37+01:00</updated>
<published>2014-04-12T12:59:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77736#p77736</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77736#p77736"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77736#p77736"><![CDATA[
Akurat nie znam Assembly dla AVR spojrzałem komendy i mogę zaproponować takie uproszczenie:<br /><br />[syntax=c]asm volatile (&quot;com %&#91;rejestr&#93;                                  \n\t&quot;<br />                        &quot;out %&#91;port&#93;, %&#91;rejestr&#93;               \n\t&quot;<br />                        &quot;com %&#91;rejestr&#93;                        \n\t&quot;<br />                        &quot;lsr %&#91;rejestr&#93;                        \n\t&quot;<br />                        &quot;adc %&#91;rejestr&#93;,0                      \n\t&quot;<br />                : &#91;rejestr&#93;&quot;=d&quot;( *k )<br />                : &quot;rejestr&quot;( *k ), &#91;port&#93;&quot;I&quot;( _SFR_IO_ADDR ( PORTA ) )<br />        );[/syntax]<br /><br />Nie wiem czy zadziała, nie mam za bardzo czasu to sprawdzić, jak ktoś ma układ uruchomiony to niech sprawdzi i da znać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1315">PROTON</a> — 12 kwi 2014, o 12:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-04-12T07:56:18+01:00</updated>
<published>2014-04-12T07:56:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77719#p77719</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77719#p77719"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77719#p77719"><![CDATA[
<div class="quotetitle">rskup napisał(a):</div><div class="quotecontent"><br />Nie mów tylko, że ominąłeś asembler na najlepszym procesorze wszech czasów - 6502, używanym w 8-bitowym Atari<br /></div><br /><br />No właśnie motorolek nigdy nie miałem okazji dotknąć .... a słyszałem że są pod względem asemblerka smakowite że tak powiem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />a tak przy okazji (na blogu już tobie odpowiedziałem) ale i tu podziękuję za TAKIE fajne doprecyzowanie tematu .... miło jest działać z takimi ludźmi co lubią dzielić się wiedzą<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 12 kwi 2014, o 07:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2014-04-11T22:19:52+01:00</updated>
<published>2014-04-11T22:19:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77708#p77708</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77708#p77708"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77708#p77708"><![CDATA[
Witam,<br /><br />Napisałem to samo Mirkowi na blogu, ale tutaj chyba jest lepsze miejsce.<br /><br />Powód dlaczego w poradniku w czasie analizy programu w asemblerze zamiast lsl widzimy add ma proste, a wręcz banalne, wytłumaczenie. Cytując naszego klasyka &quot;<span style="color: #0000FF">wystarczy zajrzeć do odpowiedniego pdf-a</span>&quot;  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br />8 bitowe AVRy nie mają rozkazów LSL, ROL, CLR, TST, SBR, CBR i większości rozgałęzień (branchów) podawanych w dokumentacjach procesora. Tak na prawdę rozkaz asemblerowy &quot;LSL Rd&quot; jest bitowo dokładnie tym samym kodem (opcode) co rozkaz &quot;ADD Rd, Rd&quot;.<br />Dla &quot;LSL Rd&quot; opcode wygląda następująco:<br /><span style="color: #000080"><ul>0000   11 d4 d4   d3 d2 d1 d0   d3 d2 d1 d0</ul></span><br />a dla &quot;ADD Rd, Rr&quot; mamy opcode:<br /><span style="color: #000080"><ul>0000   11 r4 d4   d3 d2 d1 d0   r3 r2 r1 r0</ul></span><br />więc jak Rr będzie równe Rd, to opcode będą identyczne.<br />Tak samo z rozkazami &quot;ROL Rd&quot; który jest zgodny z &quot;ADC Rd, Rd&quot; oraz innymi pozostałymi parami.<br />AVRy to procesory RISC (Reduced Instruction Set Computers), więc z założenia mają mało instrukcji a dzięki sztuczce &quot;marketingowej&quot; użytkownik dostaje dodatkowe rozkazy w asemblerze (także dzięki temu nie musi się skupiać na podstawach matematyki i pamiętać że ADD Rd, Rr przy Rr = Rd to jest LSL Rd a może zająć się programowaniem).<br /><br />I dlatego deasemblerowany kod zawiera podstawowe znaczenie danego opcode (bo przecież skąd deasembler ma widzieć jakiego mnemonika chciał autor użyć).<br /><br />Poniżej komplet &quot;sztucznych&quot; instrukcji:<br /><span style="color: #000080"><ul>SBR Rd,K -&gt; ORI Rd, K<br />CBR Rd,($FF - K) -&gt; ANDI Rd, K<br />TST Rd -&gt; AND Rd, Rd<br />CLR Rd -&gt; EOR Rd, Rd<br />LSL Rd -&gt; ADD Rd, Rd<br />ROL Rd -&gt; ADC Rd, Rd<br />wszystkie instrukcje rozgałęzień (branch) -&gt; BRBS, BRBC</ul></span><br /><br />Wszystko to można znaleźć (sprawdzić) w Atmelowym pdfie <a href="http://www.atmel.com/dyn/resources/prod_documents/doc0856.pdf"  class="postlink">http://www.atmel.com/dyn/resources/prod_documents/doc0856.pdf</a><br /><br />-- <br />Pozdrawiam,<br />Robert<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 50 minutach ]</span></strong><br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />no bo jak się robiło w takich asemblerach tzn procesorów jak:<br /><br />Z80<br />8051<br />8086<br />PIC<br /><br />i ostatnio AVR<br /></div><br /><br />Nie mów tylko, że ominąłeś asembler na najlepszym procesorze wszech czasów - 6502, używanym w 8-bitowym Atari <img src="https://forum.atnel.pl/images/smilies/icon_evil.gif" alt=":evil:" title="Zły" /> <br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 11 kwi 2014, o 22:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-04-10T19:31:41+01:00</updated>
<published>2014-04-10T19:31:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77592#p77592</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77592#p77592"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77592#p77592"><![CDATA[
<div class="quotetitle">matw napisał(a):</div><div class="quotecontent"><br />Mirku, na filmiku wspomniałeś, że przy próbie budowy funkcji mk_roll_right(), należy zastąpić lsl na ror lub lor (jeśli dobrze usłyszałem), ale takiej instrukcji nie znalazłem w tabelce, dlatego zaproponowałem taki jak wyżej sposób<br /></div><br /><br />no bo jak się robiło w takich asemblerach tzn procesorów jak:<br /><br />Z80<br />8051<br />8086<br />PIC<br /><br />i ostatnio AVR<br /><br />to myślisz że nie można się pomylić <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />pewnie w którymś z powyższych asemblerów było ror i dlatego to mi przyszło na język <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ale przecież tabelka do której się odnosiłem pokazuje wyraźnie jaki jest ten rozkaz w AVR <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />-----------------------------------------------------------------------<br /><br />przede wszystkim to BRAWO !!! za odrobienie zadania domowego - SUPER! ... a już mnie ludzie w mailu pytają ... teraz mogę tylko podać linka do forum z rozwiązaną pracą domową przez jednego z szanownych widzów<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 kwi 2014, o 19:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2014-04-10T19:11:32+01:00</updated>
<published>2014-04-10T19:11:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77585#p77585</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77585#p77585"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77585#p77585"><![CDATA[
Chyba znów nikt zadania domowego nie odrobił <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Stworzyłem taką funkcję do rolowania w prawo:[syntax=c]void mk_roll_right( uint8_t *k ) {<br /><br />*k = ( *k&gt;&gt;1 ) | ( *k&lt;&lt;7 );<br />PORTA = ~*k;<br /><br />}[/syntax]<br />Jej odpowiednik z użyciem wstawki ASM:[syntax=c]void mk_roll_right( uint8_t *k ) {<br /><br />asm volatile (&quot;com %&#91;rejestr&#93;\n\t&quot;<br />&quot;out %&#91;port&#93;, %&#91;rejestr&#93;\n\t&quot;<br />&quot;com %&#91;rejestr&#93;\n\t&quot;<br />&quot;lsr %&#91;rejestr&#93;\n\t&quot;<br />&quot;brcc koniec%=\n\t&quot;<br />&quot;ori %&#91;rejestr&#93;, 128\n\t&quot;<br />&quot;koniec%=:\n\t&quot;<br />: &#91;rejestr&#93;&quot;=d&quot;( *k )<br />: &quot;rejestr&quot;( *k ), &#91;port&#93;&quot;I&quot;( _SFR_IO_ADDR ( PORTA ) )<br />);<br /><br />}[/syntax]<br /><br />Kod wynikowy funkcji po kompilacji:<br />[syntax=asm]00000082 &lt;mk_roll_right&gt;:<br />  82:fc 01       movwr30, r24<br />  84:20 81       ldr18, Z<br />  86:20 95       comr18<br />  88:2b bb       out0x1b, r18; 27<br />  8a:20 95       comr18<br />  8c:26 95       lsrr18<br />  8e:08 f4       brcc.+2      ; 0x92 &lt;koniec7&gt;<br />  90:20 68       orir18, 0x80; 128<br /><br />00000092 &lt;koniec7&gt;:<br />  92:fc 01       movwr30, r24<br />  94:20 83       stZ, r18<br />  96:08 95       ret[/syntax]<br /><br />Wszystko działa prawidłowo, teraz użyłem instrukcji <strong>lsr</strong> (przesuwania bitów w prawo) i kompilatror nic w tym wypadku jak widać nie ruszył.<br /><br />Mirku, na filmiku wspomniałeś, że przy próbie budowy funkcji mk_roll_right(), należy zastąpić <strong>lsl</strong> na <strong>ror</strong> lub <strong>lor</strong> (jeśli dobrze usłyszałem), ale takiej instrukcji nie znalazłem w tabelce, dlatego zaproponowałem taki jak wyżej sposób <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 10 kwi 2014, o 19:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-04-09T08:39:41+01:00</updated>
<published>2014-04-09T08:39:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77393#p77393</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77393#p77393"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77393#p77393"><![CDATA[
<div class="quotetitle">karolek napisał(a):</div><div class="quotecontent"><br />dokumentacja dla atmel gcc jest w C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\doc\avr-libc<br /></div><br /><br />a no rzeczywiście - dzięki za przypomnienie ścieżki <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 kwi 2014, o 08:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karolek]]></name></author>
<updated>2014-04-09T08:49:10+01:00</updated>
<published>2014-04-09T08:37:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77391#p77391</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77391#p77391"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77391#p77391"><![CDATA[
dokumentacja dla atmel gcc jest w C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\doc\avr-libc<br /><br />poradnik video bardzo dobry <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> o nie których rzeczach nie wiedziałem<br /><br /><br /><br />a tu jest pare podpowiedzi jak zmniejszyc o pare bajtów kod <br /><!-- m --><a class="postlink" href="http://www.tty1.net/blog/2008/avr-gcc-optimisations_en.html" >http://www.tty1.net/blog/2008/avr-gcc-o ... ns_en.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2535">karolek</a> — 9 kwi 2014, o 08:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grzegorz461]]></name></author>
<updated>2014-04-08T23:01:45+01:00</updated>
<published>2014-04-08T23:01:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77372#p77372</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77372#p77372"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77372#p77372"><![CDATA[
Panie Mirku jestem Panu naprawdę wdzięczny za kursy wideo. Mimo ,że bawiłem się trochę w Bascomie<br /> i miałem jakieś drobne efekty , to muszę przyznać że dużo wiedzy brałem z Pana projekcji wideo,  a teraz kupiłem blue booka i uczę sie C. Przekazuje Pan wszystko w taki jasny i prosty i sposób,że aż nie mogę sie doczekać następnego odcinka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3744">grzegorz461</a> — 8 kwi 2014, o 23:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2014-04-08T22:46:24+01:00</updated>
<published>2014-04-08T22:46:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77368#p77368</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77368#p77368"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77368#p77368"><![CDATA[
Mirku, ostatnio oglądałem thriller pt. AVR - wskaźniki, struktury w 4 częściach, niezła porcja wiedzy, aż czacha paruje <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />. Tutejsze wstawki asm wydaja się być przy tym dość proste do opanowania, a co ważne pokazałeś jak i gdzie można ich używać, gdzie szukać wiedzy, jak się tego uczyć. To jak dla mnie, totalnego amatora w zakresie asemblera duża pomoc i mega światło w tunelu. Poza tym dodatkowe opcje dotyczące optymalizacji kodu w kompilatorze, tez bardzo przydatne.<br /><br />Generalnie kolejny raz bardzo dziękuje za przekazaną wiedzę i jestem wdzięczny za tworzenie takich poradników.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 8 kwi 2014, o 22:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-04-08T22:39:30+01:00</updated>
<published>2014-04-08T22:39:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77367#p77367</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77367#p77367"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77367#p77367"><![CDATA[
mam za to nadzieję - że przynajmniej po tym poradniku, dla tych osób dla których na razie asembler to jeszcze czarna magia - będzie już mocno inaczej gdy kolejnym razem spotkają się z jakimś kodem ze wstawkami ... wtedy się okaże - że O! ... coś już tu kojarzę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> coś już wiem .... zaczyna mi coś świtać<br /><br />a później jakoś samo pójdzie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 kwi 2014, o 22:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-04-08T22:14:02+01:00</updated>
<published>2014-04-08T22:14:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77363#p77363</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77363#p77363"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77363#p77363"><![CDATA[
Ja myślę że poradnik jest przydatny może na razie<br />jeszcze tego nie wykorzystuje (wstawek) ale jak <br />Mirku zaczniesz znowu poradnik o MagicLedach<br />to na pewno nie jedna osoba sobie szybko przypomni <br />o poradniku ze wstawkami asemblerowymi.<br />Ja jeszcze za mało umiem działać w &quot;C&quot; żeby potrzebować wstawki ale kto wie<br />może pewnego razu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 8 kwi 2014, o 22:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-04-08T22:04:35+01:00</updated>
<published>2014-04-08T22:04:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77361#p77361</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77361#p77361"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77361#p77361"><![CDATA[
<div class="quotetitle">xor napisał(a):</div><div class="quotecontent"><br />Przy okazji: wspomniane w poradniku opcje -ffunction-sections i -fdata-sections - w pluginie 2.4.1 są już klikalne:<br /></div><br /><br />no dokładnie ale nie w całości a w opcjach linkera chyba w ogóle nie ma ...<br /><br />Jak obejrzysz i dotrwasz do końca to daj znać czy cokolwiek przydał się ten poradnik ... bo widzę, że jednak będzie chyba bardzo wąskie grono odbiorców takich poradników - a nie wiem czy udało mi się cokolwiek jakoś przekazać żeby było przydatne - czy tylko się naględziłem ? .... no nie zawsze musi mi się wszystko udać - zdaję sobie z tego sprawę<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 kwi 2014, o 22:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-04-08T21:29:04+01:00</updated>
<published>2014-04-08T21:29:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77354#p77354</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77354#p77354"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77354#p77354"><![CDATA[
Jak pierwszy raz tknąłem wstawek asemblerowych (miesiąc czy dwa temu), za diabła nie mogłem zrozumieć zasad definiowania i używania operandów. Znacznie łatwiej było wpisać tę wstawkę w plik .S. No ale z tym poradnikiem jakieś światełko w tunelu się pojawiło <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br /><br />Przy okazji: wspomniane w poradniku opcje<strong> -ffunction-sections</strong> i <strong>-fdata-sections</strong> - w pluginie 2.4.1 są już klikalne:<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1774/52c33819b1388e562fef2ab0d7df671f.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1774/52c33819b1388e562fef2ab0d7df671f.png" alt="Obrazek" /></a><br /><br />...połowicznie niestety, bo <strong>-Wl,--gc-sections</strong> wciąż trzeba wpisywać z palucha.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 8 kwi 2014, o 21:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sonix]]></name></author>
<updated>2014-04-08T18:06:00+01:00</updated>
<published>2014-04-08T18:06:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77329#p77329</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77329#p77329"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77329#p77329"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">Sonix napisał(a):</div><div class="quotecontent">ja już wymiękam..... znowu jakieś procenty....<br /><br />%1   %0.... %2     <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /></div><br /><br />Obejrzyj do końca - bo najpierw dla porównania pokazałem koci sposób z procentami <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> (chociaż czy zawsze te procenty są takie złe ? ... np fajnie jak jest parę procent w soku jabłkowym <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> )<br /><br />a dalej pokażę jak bez procentów <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> sobie radzić</div><br /><br /><br />aaaaaa tam... co za różnica....   <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=127">Sonix</a> — 8 kwi 2014, o 18:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2014-04-08T18:01:21+01:00</updated>
<published>2014-04-08T18:01:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77328#p77328</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77328#p77328"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77328#p77328"><![CDATA[
Jejku język C w porównaniu do assembler jest prościutki..  assembler to magia <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1526">programek</a> — 8 kwi 2014, o 18:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-04-08T17:41:12+01:00</updated>
<published>2014-04-08T17:41:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77325#p77325</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77325#p77325"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77325#p77325"><![CDATA[
<div class="quotetitle">developer85 napisał(a):</div><div class="quotecontent"><br />haha Mirku z tym &quot;SRAM&quot; to mało ze stołka nie spadłem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br />hahaha ja też <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> dlatego się hmm poprawiłem <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 kwi 2014, o 17:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[developer85]]></name></author>
<updated>2014-04-08T17:31:22+01:00</updated>
<published>2014-04-08T17:31:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77323#p77323</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77323#p77323"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77323#p77323"><![CDATA[
haha Mirku z tym &quot;SRAM&quot; to mało ze stołka nie spadłem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=390">developer85</a> — 8 kwi 2014, o 17:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-04-08T17:19:57+01:00</updated>
<published>2014-04-08T17:19:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77317#p77317</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77317#p77317"/>
<title type="html"><![CDATA[Re: Wstawki ASM w C - jedziemy dalej ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6675&amp;p=77317#p77317"><![CDATA[
<div class="quotetitle">Sonix napisał(a):</div><div class="quotecontent"><br />ja już wymiękam..... znowu jakieś procenty....<br /><br />%1   %0.... %2     <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /></div><br /><br />Obejrzyj do końca - bo najpierw dla porównania pokazałem koci sposób z procentami <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> (chociaż czy zawsze te procenty są takie złe ? ... np fajnie jak jest parę procent w soku jabłkowym <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> )<br /><br />a dalej pokażę jak bez procentów <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> sobie radzić<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 kwi 2014, o 17:19</p><hr />
]]></content>
</entry>
</feed>