[ZLG-MCU] Keil C51 的指针问题?

[复制链接]
2288|5
 楼主| xiaoxin1986 发表于 2009-7-4 17:13 | 显示全部楼层 |阅读模式
Keil&nbsp;C51中,&nbsp;如何定义一个指针,使得这个指针指向P0,或P1,P2,P3或其它的特殊寄存器?<br /><br />请老大们指点下,谢谢!<br />
Airwill 发表于 2009-7-4 19:40 | 显示全部楼层

不能

&nbsp;&nbsp;&nbsp;&nbsp;因为不能通过&nbsp;@Ri&nbsp;的指令间接寻址包括&nbsp;P0,P1,P2,P3&nbsp;等在内的所有的特殊功能寄存器。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;这是&nbsp;51&nbsp;内核的问题,&nbsp;不是&nbsp;C&nbsp;编译器的问题,&nbsp;也就是说:&nbsp;所有的&nbsp;C&nbsp;编译器都不能.
linhai1986 发表于 2009-7-7 22:14 | 显示全部楼层

RE:

unsigned&nbsp;char&nbsp;data&nbsp;*abc;<br /><br />&nbsp;<br /><br />abc&nbsp;=&nbsp;&P0;<br /><br />&nbsp;<br /><br />行不行?<br />
 楼主| xiaoxin1986 发表于 2009-7-7 23:51 | 显示全部楼层

……

abc&nbsp;=&nbsp;&P0;&nbsp;这样写的话,Keil&nbsp;C51无法编译,P0的地址为:0x80,&nbsp;如果这样写的话:<br /><br />&nbsp;<br /><br />abc&nbsp;=&nbsp;0x80;<br /><br />&nbsp;<br /><br />则abc指向的的&nbsp;iData&nbsp;内存区域,&nbsp;而不是特殊寄存器区域.<br /><br />&nbsp;<br /><br />谜惑之中。。。<br /><br />
Airwill 发表于 2009-7-9 21:33 | 显示全部楼层

怎么不死心呢?

&nbsp;&nbsp;&nbsp;&nbsp;特殊功能寄存器和&nbsp;IDATA&nbsp;是重叠的.&nbsp;不能间接寻址&nbsp;特殊功能寄存器!&nbsp;这是&nbsp;51&nbsp;的内核规定的,&nbsp;你的要求编译器也想实现的,&nbsp;可惜没有指令支持它
linhai1986 发表于 2009-7-15 21:23 | 显示全部楼层

明白了,谢谢你啊

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1487

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部