C51存贮器类型
C51编译器彻底支撑8051微处理器及其系列的结构,可彻底拜访MCS-51硬件体系一切部分。每个变量可精确地赋予不同的存贮器类型(data,idata,pdata,xdata,code)。拜访内部数据存贮器(idata)要比拜访外部数据存贮器(xdata)相对要快一些,因而,可将常常运用的变量置于内部数据存贮器中,而将较大及很少运用的数据单元置于外部数据存贮器中。
存贮器类型 |
描 述 |
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;
假如在变量阐明时省略存贮器类型标志符,编译器会主动挑选默许的存贮器类型。默许的存贮器类型进一步由控制指令SMALL、COMPACT和LARGE约束。例如:假如声明char charvar,则默许的存贮器形式为SMALL,charvar放在data存贮器;假如运用COMPACT形式,则charvar放入idata存贮区;在运用LARGE形式的情况下,charvar被放入外部存贮区或xdata存贮区。
存贮器形式
存贮器形式决议了主动变量和默许存贮器类型,参数传递区和无清晰存贮区类型的阐明。在固定的存贮器地址变量参数传递是C51的一个规范特征,在SMALL形式下参数传递是在内部数据存贮区中完结的。LARGRE和COMPACT形式答应参数在外部存贮器中传递。C51一起也支撑混合形式,例如在LARGE形式下生成的程序可将一些函数分页放入SMALL形式中然后加速履行速度。
存贮器形式 |
描 述 |
SMALL |
参数及局部变量放入可直接寻址的内部寄存器(最大128bytes,默许存贮器类型是DATA) |
COMAPCT |
参数及局部变量放入分页外内部存贮区(最大256bytes,默许存贮器类型是PDATA) |
LARGE |
参数及局部变量直接放入外部数据存贮器(最大64K,默许存贮器类型是XDATA) |
if ($ != jQuery) { $ = jQuery.noConflict(); } var isLogined = false; var cb_blogId = 45554; var cb_entryId = 1552895; var cb_blogApp = “papam”; var cb_blogUserGuid = “c3f8460b-63cf-dd11-9e4d-001cf0cd104b”; var cb_entryCreatedDate = 2009/8/24 14:49:00;