Board logo

标题: 在CW中怎么实现*(word *)(0xffa0)呢? [打印本页]

作者: tiemaliu    时间: 2006-6-17 16:57     标题: 在CW中怎么实现*(word *)(0xffa0)呢?

a=*(word *)(0xffa0);编译成汇编后是


  LDHX  160
  STHX  a


把高位地址给忽略了,这是哪里的问题?


作者: seuafu2005    时间: 2006-6-19 10:05

*(word *)(0xffa0);这个定义最好有变量名

作者: tiemaliu    时间: 2006-6-20 17:09

您的意思是?
volatile unsigned char test @0xffa0;
这样?
然后 调用a=test;
作者: seuafu2005    时间: 2006-6-23 13:24

要确认你定义的变量的类型长度
比如word是unsigned int类型的16bit长度,这个在CW中可以设置,变量a也要定义成同样的长度

另外,应用的时候加上volatile修饰符,a=*(volatile word *)(0xffa0);
作者: 巴蒂go!    时间: 2006-12-12 20:16

请问:
a=*(volatile word *)(0xffa0);
这条语句的目的是给变量a分配确定的地址吗?

作者: mmanyy    时间: 2006-12-13 09:51

这语句是指针吧,意思是a指向地址0xffa0.
如:#define AA(x) {\
*(volatile unsigned char *)0x026A = (unsigned char)x;\
}
即定义AA(x)指向0x026A,可以通过写x的值来写入地址0x026A




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0