关于DATA,XDATA,BDATA,IDATA,CODE的总结
程序存储区
程序CODE 存储区是只读的他不能写程序存储区可能在8051CPU内或者在外部或者都有,根据8051派生的硬件决定
最多可以有64K字节的程序存储区程序代码
包括所有的函数和库保存在程序存储区,常数变量也是8051可执行程序只保存在程序存储区
在Cx51编译器中可用code存储区类型标识符来访问程序存储区
内部数据存储区
8051CPU内部的数据存储区是可读写的8051派生系列最多可有256字节的内部数据存储区
低128字节内部数据存储区可直接寻址;高128字节数据区从0x80到0xFF,只能间接寻址从20H开始的16字节可位寻址
因为可以用一个8位地址访问所以内部数据区访问很快然而内部数据区最多只有256字节
内部数据区可以分成三个不同的存储类型data idata 和bdata
data存储类型标识符通常指低128字节的内部数据区存储的变量直接寻址
idata存储类型标识符指内部的256个字节的存储区但是只能间接寻址速度比直接寻址慢
bdata存储类型标识符指内部可位寻址的16字节存储区20H到2FH 可以在本区域声明可位寻址的数据类型
外部数据存储区
外部数据区可读写访问外部数据区比内部数据区慢因为外部数据区是通过一个数据指针加载一个地址来间接访问的
几种8051系列增加片内XRAM 用和传统的外部数据区一样的指令访问这些空间用专用的SFR配置寄存器使能和外部空间重叠
外部数据区最多可有64K字节,当然这些地址不是必须用做存储区。
硬件设计可能把外围设备影射到存储区如果是这种情况程序可以访问外部数据区和控制外围设备,这可参考I/O的存储区影射
Cx51编译器提供两种不同的存储类型访问外部数据xdata和pdata
xdata存储类型标识符指外部数据区64K字节内的任何地址
pdata 存储类型标识符仅指一1 页或256 字节的外部数据区