<?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のトピックRe: Subtract 10 bit value with QG8</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190617#M14604</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Thank you so much for the insight fellows, am very grateful to have you guys around for guidance!&lt;BR /&gt;&lt;BR /&gt;regards,&lt;BR /&gt;Scott&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Feb 2008 16:58:41 GMT</pubDate>
    <dc:creator>admin</dc:creator>
    <dc:date>2008-02-18T16:58:41Z</dc:date>
    <item>
      <title>Subtract 10 bit value with QG8</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190614#M14601</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a question is regards to subtracting a 10 bit value in QG8, the reason being I want to use 10 bit ADC sampling mode and display it using 7 segment leds. However, in order to do this I need to compare and subtract the 10 bit sample. The CMP and SUB&amp;nbsp; instruction use the 8 bit accumulator to do this, does anyone have any idea to achive CMP and SUB in 10 bits?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2008 13:11:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190614#M14601</guid>
      <dc:creator>admin</dc:creator>
      <dc:date>2008-02-18T13:11:49Z</dc:date>
    </item>
    <item>
      <title>Re: Subtract 10 bit value with QG8</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190615#M14602</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 size="2"&gt;Hello,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Since the 10-bit ADC value is right-aligned, simply use 16-bit calculations.&amp;nbsp; In assembly, the subtraction should be done in two stages, handling the low byte first.&amp;nbsp; The following code snippet assumes a constant 16-bit OFFSET value.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp; ADCRL&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; sub&amp;nbsp;&amp;nbsp; #OFFSET%256&amp;nbsp; ; Low byte value&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; sta&amp;nbsp;&amp;nbsp; RESULT+1&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp; ADCRH&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; sbc&amp;nbsp;&amp;nbsp; #OFFSET/256&amp;nbsp;&amp;nbsp;; High byte value&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; sta&amp;nbsp;&amp;nbsp; RESULT&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;For a compare operation, using a similar method,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp; ADCRL&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmp&amp;nbsp;&amp;nbsp; #OFFSET%256&amp;nbsp; ; Low byte value&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; lda&amp;nbsp;&amp;nbsp; ADCRH&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; sbc&amp;nbsp;&amp;nbsp; #OFFSET/256&amp;nbsp;&amp;nbsp;; High byte value&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Alternatively, you might use the H:X register, and the CPHX instruction.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2008 14:22:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190615#M14602</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-02-18T14:22:07Z</dc:date>
    </item>
    <item>
      <title>Re: Subtract 10 bit value with QG8</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190616#M14603</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;PRE&gt;n1   ds.w  1
n2   ds.w  1
n3   ds.w  1
...
; Save values for testing...                      LDHX #513    ; Get a value to store into n1           STHX  n1     ; Save it           LDHX #257    ; Get a value to store into n2           STHX  n2     ; Save it
; Compare n1 to n2
           LDHX  n2     ; Get n2 into H:X           CPHX  n1     ; Compare to other value.           BEQ   EQUAL  ; They won't be equal in this case.                      ; n3 = n1-n2           LDHX  n1      ; Get the first number to H:X            TXA           ; Put the lower byte in A           PSHH          ; Save the upper byte on the stack           LDHX  n2      ; Get the second number to H:X           PSHX          ; Push the lower byte on the stack           SUB   1,SP    ; Subtract lower bytes.           PSHA          ; Save the lower byte           PSHH          ; Push the upper byte on the stack           PULA          ; Pop it back into A           TSX           ; Transfer the SP to the H:X register.           STA   1,X     ; Save A           LDA   2,X     ; Get the high byte back           SBC   1,X     ; Subtract with carry from the other hi byte           PSHA          ; Push A           PULH          ; Pop it back into H           PULX          ; Get the lo byte back           STHX  n3      ; Save it to answerEQUAL:           &lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;You can probably fret over the generalized subtraction code and reduce it a bit.&lt;BR /&gt;&lt;BR /&gt;I should also lecture you that this is first year assembly language stuff, and maybe you should get a good book on assembly language or use "C" instead.&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;SPAN class="time_text"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by JimDon on &lt;SPAN class="date_text"&gt;2008-02-18&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;01:43 AM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:42:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190616#M14603</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2020-10-29T09:42:22Z</dc:date>
    </item>
    <item>
      <title>Re: Subtract 10 bit value with QG8</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190617#M14604</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Thank you so much for the insight fellows, am very grateful to have you guys around for guidance!&lt;BR /&gt;&lt;BR /&gt;regards,&lt;BR /&gt;Scott&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2008 16:58:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190617#M14604</guid>
      <dc:creator>admin</dc:creator>
      <dc:date>2008-02-18T16:58:41Z</dc:date>
    </item>
    <item>
      <title>Re: Subtract 10 bit value with QG8</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190618#M14605</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi Jim,&lt;BR /&gt;Forgot to ask if you could recommand a good book to learn from for a beginner like me?&lt;BR /&gt;&lt;BR /&gt;Thanks!&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2008 17:56:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190618#M14605</guid>
      <dc:creator>admin</dc:creator>
      <dc:date>2008-02-18T17:56:10Z</dc:date>
    </item>
    <item>
      <title>Re: Subtract 10 bit value with QG8</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190619#M14606</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Well this is the book I learned from &lt;A href="http://www.amazon.com/Programming-Computers-Prentice-Hall-automatic-computation/dp/0130495360" rel="nofollow" target="_blank"&gt;&lt;B&gt;&lt;/B&gt;&lt;/A&gt;&lt;A href="http://www.amazon.com/Programming-Computers-Prentice-Hall-automatic-computation/dp/0130495360" rel="nofollow" target="_blank"&gt;Assembly Language Programming&lt;/A&gt;&lt;BR /&gt;As you can see, you can a copy for 0.20 USD, but I don't really recommend it. I guess my wife was correct when she made pitch my copy sometime in the 90's - never did become collectible.&lt;BR /&gt;&lt;BR /&gt;I am not the right guy to recommend a book like this. For one thing, there are certain maths that apply, that are not too hard to learn if explained well.&lt;BR /&gt;&amp;nbsp;I have not found a book that specifically teaches assembly language programming on the 08, but there could be one. Typically, once you learn on any machine, it is pretty easy to apply it to any machine. So if you find a good book based on x86, you can down load all the tools for free and learn on your PC.&lt;BR /&gt;&lt;BR /&gt;There are many books based on the HC11 and HC12, as universities use this chip.&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://www.amazon.com/Programming-Computers-Prentice-Hall-automatic-computation/dp/0130495360" rel="nofollow" target="_blank"&gt;&lt;B&gt;&lt;/B&gt;&lt;/A&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Feb 2008 01:23:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190619#M14606</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2008-02-19T01:23:01Z</dc:date>
    </item>
    <item>
      <title>Re: Subtract 10 bit value with QG8</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190620#M14607</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;BTW Here is a &lt;A href="http://freescalemcu.com/joomla/index.php?option=com_weblinks&amp;amp;catid=21&amp;amp;Itemid=23" rel="nofollow" target="_blank"&gt;link&lt;/A&gt; to where you can down load the reference manuals for the HCS08 assembler and the instruction reference guide. These are not substitutes for a good book, but if you had already learned assembly language programming, these would let you use that knowledge on the HCS08.&lt;BR /&gt;In any event, this is information you do need.&lt;BR /&gt;&lt;BR /&gt;Also this is the book I &lt;A href="http://www.amazon.com/HCS12-9S12-Introduction-Hardware-Interfacing/dp/1401898122/ref=pd_sim_b_title_5" rel="nofollow" target="_blank"&gt;recommend for HCS12&lt;/A&gt;.&amp;nbsp; It is a great book,&amp;nbsp; and it does cover assembly language,&amp;nbsp; and has plenty of examples in both "C" and asm. It also covers what you asked about.&lt;BR /&gt;(Section 2.5.4 Multi-precision Subtraction).&lt;BR /&gt;It's not cheap, but it is good. I got a copy used for around 75 USD.&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="time_text"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="date_text"&gt;&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by JimDon on &lt;SPAN class="date_text"&gt;2008-02-18&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;12:45 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Feb 2008 01:35:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/Subtract-10-bit-value-with-QG8/m-p/190620#M14607</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2008-02-19T01:35:45Z</dc:date>
    </item>
  </channel>
</rss>

