3)LARGE模式
LARGE模式称为大编译模式,在LARGE模式下,编译时函数参数和变量被默认在片外RAM的64KB空间了,存储器类型为xdata。
例如:
#pragma small //变量的存储模式为SMALL
char k1; //存储类型为data
int xdata m1; //存储类型xdata
#pragma compact //变量的存储模式为COMPACT
char k2;
int xdata m2;
int func1(int x1,int y1) large //函数的存储模式为LARGE
{
return(x1+y1);
}
int func2(int x2,int y2) //编译的存储模式隐含为SMALL,没有指明模式,隐含SMALL
{
return(x2-y2);
}
4、绝对地址的访问(这里才是重点中的重点啊~~~)
在C51中,可以通过变量的形势访问51单片机的存储器,也可以通过绝对地址来访问存储器。三种方法:
1)使用C51运行库中预定义宏(就是调用#include"absacc.h")
C51编译器提供了一组宏定义来对51单片机的code、data、pdata和xdata空间进行绝对寻址!
规定只能以无符号数方式访问,定义了8个宏定义,其函数原型如下:
#define CBYTE((unsigned