ROM和RAM容量和位置
MCS-51单片机的存储器包括程序存储器(ROM)和数据存储器(RAM)两部分,而每一部分的容量又包括片内容量和片外容量。一般8x51系列的单片机的ROM内部容量是4KB,外部扩展容量最大的是64KB;RAM内部容量是128B,外部扩展容量最大是64KB。MCS-51单片机进行了扩容,其内部存储器的容量大小是256B。
程序存储器(ROM)的调用
EA引脚接高电平时,CPU将使用内部程序存储器,若程序超过4KB,将使用外部存储器存储超过的部分;
EA引脚接低电平时,CPU将使用外部程序存储器,而内部程序存储器将形同虚设。
数据存储器(RAM)的调用
在汇编语言中,访问内部数据存储器时用的是MOV,而访问外部数据储存器时用的是MOVX。
通常我们把256B的内部数据存储器分为0000H~007FH和0080H~00FFH两部分来分析,两者各128B,前128B可直接寻址和间接寻址,后128B只能间接寻址,亦称为特殊功能寄存器。
前128B:
0000H~001FH的32个B分为四个寄存器组,每个寄存器组有8个B,通过特殊寄存器里的psw的RS0和RS1的组合决定用那个寄存器组,每个寄存器组中的8个B依次可以命名为R0~R7.
0020H~002FH这16个B是可位寻址区,就是可以指定访问一个位。例如,SETB 20H.5,就是将0020H上的第五个bit置1.
0030H~007FH的80个B是一般数据方位和堆栈区如果在程序中使用PUSH或者POP,则最好是将堆栈指针移至到该区。
后128B:特殊功能寄存器,这里不再作详细说明。