<?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>S12 / MagniV MicrocontrollersのトピックRe: Help with assembly language debugging HCS12</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226092#M9303</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;uh yeah, I have the reference manual. and to be precise, when I multiply the positive number in accumulator a with the positive number in accumulator b, the positive result is stored in register d. I cannot figure out why the positive number in register d is branching lower. branch lower checks the n flag in the ccr. if you couldn't tell, I'm new to assembly language programming. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 12 Feb 2014 05:37:49 GMT</pubDate>
    <dc:creator>jackrichey</dc:creator>
    <dc:date>2014-02-12T05:37:49Z</dc:date>
    <item>
      <title>Help with assembly language debugging HCS12</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226090#M9301</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="9590_9590.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/119716iFD461F42049F8C30/image-size/large?v=v2&amp;amp;px=999" role="button" title="9590_9590.jpg" alt="9590_9590.jpg" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="codesnip1.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/42170i46CAEDF145722106/image-size/large?v=v2&amp;amp;px=999" role="button" title="codesnip1.jpg" alt="codesnip1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Was hoping someone could help me....I'm having trouble getting my multiplication loop working. I have to perform a check to see if the number is out of range (0-255) and if it is branch to either set_zero or set_ff. I'm storing the input variables in a reg x I have in memory. the two numbers are both positive, but blo flag keeps kicking in. the numbers are loading out of memory right. I think it has something to do with the fact that the result of the operation is a 16bit number, stored in the d reg. I tried adding an l in front of the blo, for long word, but that didn't help. all the other functions work as expected. If anyone has any idea, I'd really appreciate it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Feb 2014 04:48:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226090#M9301</guid>
      <dc:creator>jackrichey</dc:creator>
      <dc:date>2014-02-12T04:48:48Z</dc:date>
    </item>
    <item>
      <title>Re: Help with assembly language debugging HCS12</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226091#M9302</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;(What the beep you are using picture to show text? )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. there's no BLO flag, please use correct terminology&lt;/P&gt;&lt;P&gt;2. You should download CPU12 reference manual. 6.7 Glossary explains each instruction in detail. MUL instruction changes only C flag. MUL makes bit 7 of result reg D(B) copied to C flag.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Feb 2014 05:17:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226091#M9302</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2014-02-12T05:17:52Z</dc:date>
    </item>
    <item>
      <title>Re: Help with assembly language debugging HCS12</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226092#M9303</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;uh yeah, I have the reference manual. and to be precise, when I multiply the positive number in accumulator a with the positive number in accumulator b, the positive result is stored in register d. I cannot figure out why the positive number in register d is branching lower. branch lower checks the n flag in the ccr. if you couldn't tell, I'm new to assembly language programming. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Feb 2014 05:37:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226092#M9303</guid>
      <dc:creator>jackrichey</dc:creator>
      <dc:date>2014-02-12T05:37:49Z</dc:date>
    </item>
    <item>
      <title>Re: Help with assembly language debugging HCS12</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226093#M9304</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;and the operation is not triggering the c flag, the number is well withing range of 64k.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Feb 2014 05:41:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226093#M9304</guid>
      <dc:creator>jackrichey</dc:creator>
      <dc:date>2014-02-12T05:41:01Z</dc:date>
    </item>
    <item>
      <title>Re: Help with assembly language debugging HCS12</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226094#M9305</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;1. MUL does unsigned multiply&lt;/P&gt;&lt;P&gt;2.C flag has nothing to do with the "sign" of result.&lt;/P&gt;&lt;P&gt;3. Sign of 16bit result is bit15 of result, not bit7, which MUL copies to C.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Feb 2014 07:17:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226094#M9305</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2014-02-12T07:17:08Z</dc:date>
    </item>
    <item>
      <title>Re: Help with assembly language debugging HCS12</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226095#M9306</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;what about:&lt;/P&gt;&lt;P&gt;;_______________________________________________________________________________&lt;/P&gt;&lt;P&gt;; variable/data section&lt;/P&gt;&lt;P&gt;;_______________________________________________________________________________&lt;/P&gt;&lt;P&gt;MY_EXTENDED_RAM: SECTION&lt;/P&gt;&lt;P&gt;xa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ds.b 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; input variable&lt;/P&gt;&lt;P&gt;xb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ds.b 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; input variable&lt;/P&gt;&lt;P&gt;xc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ds.b 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; result&lt;/P&gt;&lt;P&gt;ov_f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ds.b 1&amp;nbsp;&amp;nbsp; ; overflow flag for multiplication; result is &amp;gt; 255&lt;/P&gt;&lt;P&gt;z_f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ds.b 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; zero flag for multiplication&lt;/P&gt;&lt;P&gt;;_______________________________________________________________________________&lt;/P&gt;&lt;P&gt;MyCode:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SECTION&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; code section&lt;/P&gt;&lt;P&gt;;_______________________________________________________________________________&lt;/P&gt;&lt;P&gt;main:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; routine is called after power on reset&lt;/P&gt;&lt;P&gt;Entry:&lt;/P&gt;&lt;P&gt;;_______________________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDS&amp;nbsp;&amp;nbsp; #$F00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; set STACK; reset status: RAM is placed 800~FFF&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;-------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVB&amp;nbsp; #0,xa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; innitialize variables to be multiplied&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVB&amp;nbsp; #0,xb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MAINLOOP:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDAA xa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; prepare parameteres for sending to function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDAB xb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XGDX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; X&amp;lt;=&amp;gt;D; as you wrote you store a,b in X &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JSR multiply&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INC&amp;nbsp; xa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; modify inputs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INC&amp;nbsp; xb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JMP MAINLOOP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; &lt;/P&gt;&lt;P&gt;;_______________________________________________________________________________&lt;/P&gt;&lt;P&gt;multiply:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLR z_f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; clear flags&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLR ov_f &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XGDX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; X&amp;lt;=&amp;gt;D&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MUL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; multiply&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STD&amp;nbsp; xc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; store result&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; test result for given conditions and set flags&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TBEQ D,zero&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; result is zero -&amp;gt; go to "zero" for processing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TBNE A,overflow&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; result&amp;gt;255&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; go to "overflow" for processing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; return&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;zero:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVB #1,z_f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; set ctm's zero flag&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;overflow:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVB #1,ov_f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; set ctm's overflow flag&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTS&lt;/P&gt;&lt;P&gt;;_______________________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Ladislav&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Feb 2014 09:42:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Help-with-assembly-language-debugging-HCS12/m-p/226095#M9306</guid>
      <dc:creator>lama</dc:creator>
      <dc:date>2014-02-25T09:42:07Z</dc:date>
    </item>
  </channel>
</rss>

