存贮器类型 |
描 述 |
data |
直接寻址内部数据存贮器,访问变量速度最快(128bytes) |
bdata |
可位寻址内部数据存贮器,允许位与字节混合访问(16 bytes) |
iIdata |
间接寻址内部数据存贮器,可访问全部地址空间(256bytes) |
pPdata |
分页(256bytes)外部数据存贮器,由操作码MOVX @Ri访问 |
xdata |
外部数据存贮器(64K),由MOVX @DPTR访问 |
code |
代码数据存贮器(64K),由MOVC @A+DPTR访问 |
变量说明举例:
data char charvar;
char code msg[]=”ENTER PARAMETER:”;
unsigned long xdata array[100];
float idata x,y,z;
unsigned char xdata vector[10][4][4];
sfr p0=0x80;
sbit RI="0x98";
char bdata flags;
sbit flago="flags"^0;
存贮器模式
存贮器模式决定了自动变量和默认存贮器类型,参数传递区和无明确存贮区类型的说明。在固定的存贮器地址变量参数传递是C51的一个标准特征,在SMALL模式下参数传递是在内部数据存贮区中完成的。LARGRE和COMPACT模式允许参数在外部存贮器中传递。C51同时也支持混合模式,例如在LARGE模式下生成的程序可将一些函数分页放入SMALL模式中从而加快执行速度。
存贮器模式 |
描 述 |
SMALL |
参数及局部变量放入可直接寻址的内部寄存器(最大128bytes,默认存贮器类型是DATA) |
COMAPCT |
参数及局部变量放入分页外内部存贮区(最大256bytes,默认存贮器类型是PDATA) |
LARGE |
参数及局部变量直接放入外部数据存贮器(最大64K,默认存贮器类型是XDATA) |