请问 C51 外部xdata指标问题?

2020-02-04 09:16发布

本帖最后由 mobile01 于 2012-4-9 16:10 编辑

不使用 XBYTE 方式,请问怎么改比较正确?

void clsram(void)
         {
          volatile u8 xdata *addr;
                                         
         addr = 0x2000;
         printf("The RAM is Bad. Addr=0x%04X,Read=0x%02X ",(u16)addr,(u8)(*addr) & 0xff));-->错误?

          运行后显示 (The RAM is Bad. Addr=0x2000,Read=0x7E00)
       为什么 Read = 0x7f00 不是 0x7f?
       (....0x%02X  <==(u8)((*addr) & 0xff)错误?)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。