微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > C51存储类型

C51存储类型

时间:11-18 来源:互联网 点击:
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;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top