<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>8-bit Microcontrollers中的主题 Divide 16bit number with a 16bit result</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Divide-16bit-number-with-a-16bit-result/m-p/171437#M11558</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi all,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Coming from a couple of years programming on the 68332 I'm battling on the HC08 with trying to divide&amp;nbsp;(by 4) a 16 bit number&amp;nbsp;in RAM space and get a 16bit result. Anybody got any tips?&lt;/DIV&gt;&lt;DIV&gt;I did mess around a bit with the OPCode examples in the CPU08 manual but I don't seem to be getting valid results.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks in advance,&lt;/DIV&gt;&lt;DIV&gt;Ross&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 10 Dec 2007 18:17:33 GMT</pubDate>
    <dc:creator>Bloodhound</dc:creator>
    <dc:date>2007-12-10T18:17:33Z</dc:date>
    <item>
      <title>Divide 16bit number with a 16bit result</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Divide-16bit-number-with-a-16bit-result/m-p/171437#M11558</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi all,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Coming from a couple of years programming on the 68332 I'm battling on the HC08 with trying to divide&amp;nbsp;(by 4) a 16 bit number&amp;nbsp;in RAM space and get a 16bit result. Anybody got any tips?&lt;/DIV&gt;&lt;DIV&gt;I did mess around a bit with the OPCode examples in the CPU08 manual but I don't seem to be getting valid results.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks in advance,&lt;/DIV&gt;&lt;DIV&gt;Ross&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Dec 2007 18:17:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Divide-16bit-number-with-a-16bit-result/m-p/171437#M11558</guid>
      <dc:creator>Bloodhound</dc:creator>
      <dc:date>2007-12-10T18:17:33Z</dc:date>
    </item>
    <item>
      <title>Re: Divide 16bit number with a 16bit result</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Divide-16bit-number-with-a-16bit-result/m-p/171438#M11559</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New"&gt;To divide by any power of 2, you only need to shift right as many times as needed.&amp;nbsp; For example,&lt;BR /&gt;&lt;BR /&gt;Number&amp;nbsp;&amp;nbsp;&amp;nbsp; rmb&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; lsr&amp;nbsp;&amp;nbsp; Number&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ror&amp;nbsp;&amp;nbsp; Number+1&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; lsr&amp;nbsp;&amp;nbsp; Number&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ror&amp;nbsp;&amp;nbsp; Number+1&lt;BR /&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="Courier New"&gt;will divide a 16-bit number by 4 (two right shifts).&lt;BR /&gt;&lt;BR /&gt;To divide by any 8-bit value, you can use the DIV instruction.&amp;nbsp; For example,&lt;BR /&gt;&lt;BR /&gt;Number&amp;nbsp;&amp;nbsp; rmb&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; ldhx&amp;nbsp; #4&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ;H=0 (always), X=divisor&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp; Number&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; div&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sta&amp;nbsp;&amp;nbsp; Number&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp; Number+1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; div&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sta&amp;nbsp;&amp;nbsp; Number+1&lt;BR /&gt;&lt;BR /&gt;(the example above writes over the original number. You could use the stack or other variable to save the quotient, instead).&amp;nbsp; Note: The divisor in this case does not need to be a power of two, it can be any value from 1 to 255 (with 0 giving an error.)&lt;BR /&gt;&lt;BR /&gt;When done, register H will contain the final remainder of the multi-byte division.&amp;nbsp; You can use this method to divide any byte-lentgh numbers with an 8-bit number.&lt;BR /&gt;&lt;BR /&gt;For larger divisor, you will have to use shift-and-subtract methods.&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by tonyp on &lt;SPAN class="date_text"&gt;2007-12-10&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;12:35 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Dec 2007 18:33:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Divide-16bit-number-with-a-16bit-result/m-p/171438#M11559</guid>
      <dc:creator>tonyp</dc:creator>
      <dc:date>2007-12-10T18:33:28Z</dc:date>
    </item>
    <item>
      <title>Re: Divide 16bit number with a 16bit result</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Divide-16bit-number-with-a-16bit-result/m-p/171439#M11560</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Thanks TonyP, the first example worked perfect for me.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Cheers,&lt;BR /&gt;Ross&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Dec 2007 20:03:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Divide-16bit-number-with-a-16bit-result/m-p/171439#M11560</guid>
      <dc:creator>Bloodhound</dc:creator>
      <dc:date>2007-12-10T20:03:21Z</dc:date>
    </item>
  </channel>
</rss>

