c51的扩展类型
memory models
分为3种类型,small,compact,large.他们决定默认的存储类型。
small | compact | large |
---|---|---|
data | pdata | xdata |
通常small模式产生的代码效率高,速度快。
在keil软件中可以设置,或者通过使用宏#pragma.
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 |
存储区域
内部ramsfr和高128字节地址是相同的,实际上是物理分开的,sfr是直接访问,高128字节是间接访问。
内部扩展ram;物理上是内部的,逻辑上是扩展的。程序存储区,flash
rom:80c51内部有4k字节的rom0x0000-0x0FFF
EA为高电平时,访问内部的4KBrom,超出时,访问片外rom。
EA为低电平时,访问片外rom。
访问外部rom,引脚PSEN。