code:程序存储区。
data:固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。
idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:mox
ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好)
xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。
pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx
ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG,建议少用。
你应当注明是C51,否则会误导很多计算机的朋友。看你想实现什么样的功能。
unsigned
char
code
table[]
分配一个指向code区的指针,指针本身在默认存储区。
code
unsigned
char
table[]
分配一个指向默认存储区的指针,指针本身在code区。
Keil的说明书里面都写得非常明白。
接着来说文本函数,今天讲2个可以互转的函数,那就是char和code。char函数返回对应于数字代码的字符。code函数返回文本字符串中第一个字符的数字代码。可以简单理解为:在excel中,一个数字代码对应一个字符。比如数字代码10对应的字符为换行符。我们常看到的char(10)就是用char返回数字代码10对应的字符,也就是换行符。
而code函数是返回文字字符串中第一个字符的数字代码。如code("爱你")返回的就是“爱”对应的数字代码45230。你写个char(45230)就返回“爱”。
-01-
函数说明
CHAR 函数语法如下,只有一个参数:
CHAR(number)
Number 必需。 介于 1 到 255 之间的数字,指定所需的字符。 使用的是当前计算机字符集中的字符。尽管官方说明是1到255的数字,实际上不止。而且还支持数组。
-02-
示例解释
下面是数字代码对应的字符,我截了3张图,给你参考下,你可以自己测试下。