地址为何出错?

[复制链接]
2520|1
 楼主| herop 发表于 2007-12-1 14:10 | 显示全部楼层 |阅读模式
环境:GTT+PICC18<br />程序如下:<br />unsigned&nbsp;char&nbsp;temp_buf[9];<br />unsigned&nbsp;char&nbsp;code_buf[96]&nbsp;@&nbsp;0x110<br />main<br />{<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;i=0,m=0,j=0;<br />&nbsp;&nbsp;&nbsp;code_buf[0]&nbsp;=&nbsp;3;<br />&nbsp;&nbsp;&nbsp;code_buf[1]&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;for(i=m;i&gt8;i++)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((code_buf[j]&gt2)&&(code_buf[j+1]&lt2))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp_buf&nbsp;&gt&gt=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp_buf&nbsp;+=&nbsp;0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;((code_buf[j]&lt2)&&(code_buf[j+1]&gt2))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp_buf&nbsp;&gt&gt=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j+=2;<br />&nbsp;&nbsp;}<br />}<br />在这里,为何我的第一个数存入temp_buf[1],而不是temp_buf[0]?我确定第一次i=0,而且我直接写成<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp_buf[0]&nbsp;&gt&gt=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp_buf[0]&nbsp;+=&nbsp;0x80;<br />单步执行也是存入temp_buf[1].奇怪,是否环境或什么设置问题,大侠帮忙。而且我看通用寄存器分配,temp_buf[0]&nbsp;地址为14,temp_buf[1]&nbsp;地址为15。对&nbsp;temp_buf[0]]赋值,结果temp_buf[1](地址15)&nbsp;里面的数变化。奇怪。<br /><br /><br />
lxrlxr 发表于 2007-12-1 21:41 | 显示全部楼层

PICC18没用过

但问temp_buf[0]&nbsp;&gt&gt=&nbsp;1;是什么意思?<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

16

帖子

0

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