51单片机的存储空间梳理
地址00H~1FH,共32字节,分成四个工作寄存器区,每区有寄存器 R0~R7。此存储区如果需要使用寄存器进行数据的存储,则可以直接使用寄存器寻址。如“MOV A,R0”。
地址20H-2FH,共16字节,是位寻址区,共有128个“位”,位地址:00~7FH。此区域的变量,也可按照字节寻址,来读写。如,我们将20H地址的第0位(0或者1)移入程序状态字(PSW)的进位标志位(C),则可以:“MOV C, 20H.0”。
地址30H-7FH,这个区域内的内存空间,主要是存放用户编写程序时产生的临时数据,这块区域内的寻址方式都为间接寻址,而且只能按照字节单位进行寻址。如果使用C语言要访问内部存储区,那么你所定义的指针只能指向这一片地址。
地址80H-FFH,此区域为特殊功能寄存器区(SFR),共有128个地址,其中离散的分布着21个特殊功能寄存器,必须直接寻址才能读写。另外,部分地址可以被8整除的特殊功能寄存器,也可以支持位寻址。(52系列,在此范围,还有128字节的 RAM,必须间接寻址才能读写)。
注意,在51单片机的内部RAM中进行编程的时候,必须使用MOV指令进片内RAM的读写。
赞 (0)