51单片机片外修改数据遇到问题

51单片机里面,想向片外2000H输入1234H,尝试用

xdata unsigned char y1 _at_ 0x2000;
void main(void)
{
    y1=0x1234;
    while (1);        
} 

发现只改写输入了34,没有12的位置,想问一下改怎么修改操作

y1只是个char,你赋值0x1234当然会抹掉高位字节,把char改为int就可以了
更简单的写法
#include<absacc.h>
。。。。。
XWORD[0x2000] = 0x1234