<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Krzysztof Wesołowski &#187; Bin</title>
	<atom:link href="http://kwesoly.net/tag/bin/feed/" rel="self" type="application/rss+xml" />
	<link>http://kwesoly.net</link>
	<description>Programowanie, elektronika, automatyka - doświadczenia i projekty</description>
	<lastBuildDate>Wed, 07 Sep 2011 14:03:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Konwersje BIN/BCD w ASM 8051</title>
		<link>http://kwesoly.net/programowanie/konwersje-binbcd-w-asm-8051/</link>
		<comments>http://kwesoly.net/programowanie/konwersje-binbcd-w-asm-8051/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 23:06:03 +0000</pubDate>
		<dc:creator>Krzysiek Wesołowski</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[8051]]></category>
		<category><![CDATA[assembler]]></category>
		<category><![CDATA[bcd]]></category>
		<category><![CDATA[bcd2bin]]></category>
		<category><![CDATA[Bin]]></category>
		<category><![CDATA[bin2bcd]]></category>
		<category><![CDATA[NKB]]></category>

		<guid isPermaLink="false">http://kwesoly.net/?p=412</guid>
		<description><![CDATA[Kilka prostych procedur napisanych dla znajomych z innego kierunku: Listing: ;poniższy kod można podmienić na prezentujący inna z załączonych procedurę. &#160; mov R0,#0x14 ;przykladowa liczba do konwersji mov R1,#0x38 ;druga czesc liczby &#160; lcall BCD2BIN2BYTES ;procedura konwertujaca &#160; FINISH: ;petla zapobieajaca wykonywaniu dalszej części programu. &#160; &#160; LJMP FINISH Konwersja 2 bajtowa: Listing: BCD2BIN2BYTES: &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Kilka prostych procedur napisanych dla znajomych z innego kierunku:</p>
<div class="geshi no asm">
<div class="head">Listing:</div>
<ol>
<li class="li1">
<div class="de1"><span class="co1">;poniższy kod można podmienić na prezentujący inna z załączonych procedurę.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">mov</span> R0,#0x14 <span class="co1">;przykladowa liczba do konwersji</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">mov</span> R1,#0x38 <span class="co1">;druga czesc liczby</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">lcall BCD2BIN2BYTES <span class="co1">;procedura konwertujaca</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">FINISH: <span class="co1">;petla zapobieajaca wykonywaniu dalszej części programu.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw5">LJMP</span> FINISH</div>
</li>
</ol>
</div>
<p><span id="more-412"></span><br />
Konwersja 2 bajtowa:</p>
<div class="geshi no asm">
<div class="head">Listing:</div>
<ol>
<li class="li1">
<div class="de1">BCD2BIN2BYTES:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">;liczba jest w R0 i R1</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">;bardziej znaczacy w R0, mniej w R1</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">;wynik również tam umieścimy.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> A,R0</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; lcall BCD2BIN<span class="re1">1B</span>YTE <span class="co1">;konwertujemy pierwszy</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> B, #<span class="nu0">100</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">MUL</span> AB &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">; wynik został pomnożony razy 100</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> R2, B</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> R3, A &nbsp; &nbsp; &nbsp;<span class="co1">; wynik mnożenia zachowany</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> A, R1</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; lcall BCD2BIN<span class="re1">1B</span>YTE <span class="co1">; konwersja mniej znaczącej części</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; CLR <span class="kw5">C</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">; dodawania z przeniesieniem</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; ADDC A, R3</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> R3, A</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> A, R2</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; ADDC A, #<span class="nu0">0</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> R0,A</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> A,R3</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> R1, A</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RET</span></div>
</li>
</ol>
</div>
<div class="geshi no asm">
<div class="head">Listing:</div>
<ol>
<li class="li1">
<div class="de1">BIN2BCD<span class="re1">1B</span>YTE: <span class="co1">;konwersja BIN2BCD na jednym bajcie - pochodzi z datasheetu - proste i zrozumiałe</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> B, #<span class="nu0">10</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">DIV</span> AB</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; SWAP A</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">ADD</span> A, B</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RET</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">BCD2BIN<span class="re1">1B</span>YTE: <span class="co1">; i w druga stronę</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> R7, A</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; ANL A,#0xF0 &nbsp; <span class="co1">; zostawiamy tylko cyfrę dziesiątek</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; SWAP A</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">mov</span> B, #<span class="nu0">10</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">MUL</span> AB</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; XCH A, R7 &nbsp; &nbsp; &nbsp; <span class="co1">; zamiana miejscami</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; ANL A, #0x0F &nbsp;<span class="co1">; cyfra jedności</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">ADD</span> A, R7</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RET</span></div>
</li>
</ol>
</div>
<p>Komentarze wyjaśniają mniej typowe rzeczy, zaś działanie pozostałych sprowadza się praktycznie do opisu działania instrukcji. W razie niezrozumienia jakiegoś szczegółów można zapytać na mailu komentarzu.</p>
]]></content:encoded>
			<wfw:commentRss>http://kwesoly.net/programowanie/konwersje-binbcd-w-asm-8051/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

