<?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中的主题 Assembly Anomaly, HS12 Code</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Assembly-Anomaly-HS12-Code/m-p/181161#M6606</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am getting different results when transfering register a into register x with two seemingly equivalent code segments.&lt;/P&gt;&lt;P&gt;Consider the following code segment where ARRAY has 4 elements:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldx&amp;nbsp;&amp;nbsp;&amp;nbsp; #ARRAY&amp;nbsp;&amp;nbsp; &amp;nbsp;;load register x with address of ARRAY&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ldaa&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,x&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;load register a with 3rd element of ARRAY&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;tfr&amp;nbsp;&amp;nbsp;&amp;nbsp; a,x&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ;x = [0:a] (maybe!) High byte of x is not 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I find that register x will contain a different value than the seemingly equivalent code segment:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldx&amp;nbsp;&amp;nbsp;&amp;nbsp; #ARRAY&amp;nbsp;&amp;nbsp; &amp;nbsp;;load register x with address of ARRAY&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ldab&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,x&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ;load register b with 3rd element of ARRAY&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;clra&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; ;zero the high byte of register d&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;tfr&amp;nbsp;&amp;nbsp;&amp;nbsp; d,x&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 = [0:a] (Confirmed that high byte of x=0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Perhaps I may have misinterpreted instruction (tfr r1,r2) when r1 is 8-bits and r2 is 16-bits.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 09 Nov 2011 19:11:13 GMT</pubDate>
    <dc:creator>astro_goto</dc:creator>
    <dc:date>2011-11-09T19:11:13Z</dc:date>
    <item>
      <title>Assembly Anomaly, HS12 Code</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Assembly-Anomaly-HS12-Code/m-p/181161#M6606</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am getting different results when transfering register a into register x with two seemingly equivalent code segments.&lt;/P&gt;&lt;P&gt;Consider the following code segment where ARRAY has 4 elements:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldx&amp;nbsp;&amp;nbsp;&amp;nbsp; #ARRAY&amp;nbsp;&amp;nbsp; &amp;nbsp;;load register x with address of ARRAY&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ldaa&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,x&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;load register a with 3rd element of ARRAY&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;tfr&amp;nbsp;&amp;nbsp;&amp;nbsp; a,x&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ;x = [0:a] (maybe!) High byte of x is not 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I find that register x will contain a different value than the seemingly equivalent code segment:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldx&amp;nbsp;&amp;nbsp;&amp;nbsp; #ARRAY&amp;nbsp;&amp;nbsp; &amp;nbsp;;load register x with address of ARRAY&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ldab&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,x&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ;load register b with 3rd element of ARRAY&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;clra&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; ;zero the high byte of register d&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;tfr&amp;nbsp;&amp;nbsp;&amp;nbsp; d,x&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 = [0:a] (Confirmed that high byte of x=0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Perhaps I may have misinterpreted instruction (tfr r1,r2) when r1 is 8-bits and r2 is 16-bits.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Nov 2011 19:11:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Assembly-Anomaly-HS12-Code/m-p/181161#M6606</guid>
      <dc:creator>astro_goto</dc:creator>
      <dc:date>2011-11-09T19:11:13Z</dc:date>
    </item>
    <item>
      <title>Re: Assembly Anomaly, HS12 Code</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Assembly-Anomaly-HS12-Code/m-p/181162#M6607</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;TFR from 8bit reg to 16bit reg always performs sign extension. There's SEX instruction alias for TFR 8bitreg, 16bitreg. SEX should be used instead of TFR to better document what really happens.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you want Xhi to be 0, you may use EXG&amp;nbsp;&amp;nbsp; A,X, which will set&amp;nbsp;X to 0:A, and A to Xlo.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Nov 2011 19:39:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Assembly-Anomaly-HS12-Code/m-p/181162#M6607</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2011-11-09T19:39:15Z</dc:date>
    </item>
  </channel>
</rss>

