data: 

    指定数据存储在内部低128字节的数据存储器内,即(0x00-0x7f)地址范围内,在定义变量时不指定存储区域,则默认为data类型,这部分存储区可片内直接寻址,速度最快。

    由于空间较小,所以只有频繁用到或者对访问速度要求很高的变量才可以放在data区内,比如for循环中的计数值。

    局部变量(静态局部变量除外)可放在data区,因为局部变量的空间是可以覆盖的,从而可以提高内存利用率

xdata:

    指定存储在外部扩展RAM中,一般地址为0x0000-0xffff空间内,可用DPTR访问。对于不会被频繁访问或者对访问速度要求不高的变量可放在此区域中。

idata:指定数据存储在内部低256字节的数据存储器内。

code: 指定数据存储在代码存储区,数据是在编译后跟代码一起写入代码区,运行过程中不可更改。