<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Size of Pointer to Constant Table</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/42440/size-of-pointer-to-constant-table</link><description> I would like to know how can we control the size of the pointer that point to RAM area. 
 
UByte *RamAdr;
 
For code above, I found that the pointer size is different in 2 different software (1 software use 2Bytes to reference RAM area while the other</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Size of Pointer to Constant Table</title><link>https://community.arm.com/thread/111051?ContentTypeID=1</link><pubDate>Fri, 10 Sep 2004 03:16:08 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:4412fab1-d208-4f49-b636-1e2cd5e65555</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;Keil&amp;#39;s pointer implementation is, of course, described in the &lt;b&gt;Manual&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Read it!&lt;/b&gt; It contains a full description of the internal data representations, calling conventions, etc.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Size of Pointer to Constant Table</title><link>https://community.arm.com/thread/96583?ContentTypeID=1</link><pubDate>Fri, 10 Sep 2004 01:50:26 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:94fe1c59-521d-4fdd-af99-92c0857bbb45</guid><dc:creator>cheng teh kian</dc:creator><description>&lt;p&gt;Thank you for your prompt reply.&lt;br /&gt;
&lt;br /&gt;
But can you eloborate more on how &amp;quot;banking&amp;quot; feature may change pointer size.&lt;br /&gt;
&lt;br /&gt;
Thank you very much.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Size of Pointer to Constant Table</title><link>https://community.arm.com/thread/86922?ContentTypeID=1</link><pubDate>Fri, 10 Sep 2004 01:34:54 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:7b7266f0-c54b-41db-aeca-ee9c4d9507ac</guid><dc:creator>Oleg Sergeev</dc:creator><description>&lt;p&gt;hi,&lt;br /&gt;
&lt;br /&gt;
as well remember that &amp;quot;banking&amp;quot; feature may change pointer size as well.&lt;br /&gt;
&lt;br /&gt;
Regards,&lt;br /&gt;
Oleg&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Size of Pointer to Constant Table</title><link>https://community.arm.com/thread/42756?ContentTypeID=1</link><pubDate>Fri, 10 Sep 2004 01:29:23 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:cd9a4272-1269-4273-99e0-f12dccd0976b</guid><dc:creator>Oleg Sergeev</dc:creator><description>&lt;p&gt;hi,&lt;br /&gt;
&lt;br /&gt;
to control the size of pointer you should define the type of area which pointer shows on.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;pre&gt;unsigned char idata *RamAdr; //uses one byte for pointer (due MOV @Ri)
unsigned char xdata *RamAdr; // uses two bytes (MOVX @DPTR)
unsigned char *RamAdr; // uses three bytes&lt;/pre&gt;
Last example is your case. Here, the third byte is used to indicate type of memory area where data are placed in real application.&lt;br /&gt;
&lt;br /&gt;
Regards,&lt;br /&gt;
Oleg&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>