c51的扩展类型

memory models

分为3种类型,small,compact,large.他们决定默认的存储类型。

small compact large
data pdata xdata

通常small模式产生的代码效率高,速度快。
在keil软件中可以设置,或者通过使用宏#pragma.
c51的扩展类型

memory types

使用不同的类型,可以访问所有的8051存储区域。可以显式的在变量声明时指定,或者在memory type隐含分配。
如:char data x;

memory type 描述
code 程序存储区域,汇编访问指令是movc @A+DPTR
data 片内直接寻址区域,128字节,访问速度最快
idata 片内间接寻址区域,可以访问整个片内ram,256字节
bdata 片内位寻址区域,支持字节和位,16字节0x20-0x2f
xdada 扩展的数据区域,最大64k字节。汇编访问指令是movx @DPTR
pdata 以页扩展的数据区域,256字节。汇编访问指令是movx @Rn

存储区域

内部ram
c51的扩展类型sfr和高128字节地址是相同的,实际上是物理分开的,sfr是直接访问,高128字节是间接访问。

内部扩展ram;物理上是内部的,逻辑上是扩展的。
c51的扩展类型程序存储区,flash
c51的扩展类型
rom:80c51内部有4k字节的rom0x0000-0x0FFF
c51的扩展类型
EA为高电平时,访问内部的4KBrom,超出时,访问片外rom。
EA为低电平时,访问片外rom。
访问外部rom,引脚PSEN。