8051单片机有4个存储空间:
1.内部数据存储器(片内RAM)
共128字节,字节地址规模为00H~7FH。
前32个字节00H~1FH为寄存器区,每8个寄存器构成一个寄存器组,共4个寄存器组。
之后的16个字节20H~2FH,共128位,为位地址区,位地址规模为00H~7FH。
最终的80个字节30H~7FH,为通用RAM区。
详细散布如下图所示:
寄存器0组 00H~07H
寄存器1组 08H~0FH
寄存器2组 10H~17H
寄存器3组 18H~1FH
位地址区 20H~2FH
通用RAM区 30H~7FH
2.特别功用寄存器(片内RAM)
共21字节,散布于80H~FFH中,仅有21个有用的字节地址。
有11个特别功用寄存器能够进行位寻址,位地址规模也为80H~FFH,但只要83个有用的位地址。
其他无效地址单元是不能被拜访的。
3.程序存储器(片内ROM,可外扩)
64KB,字节地址规模0000H~FFFFH,其间片内只要4KB的程序存储器(0000H~0FFFH),假如不能满足要求,能够扩展60KB的片外程序存储器。
程序存储器中的某些地址被固定地用于特定程序的进口地址:
0000H 复位操作后的程序进口
0003H 外部中止0(INT0)服务程序进口
000BH 定时器0中止(T0)服务程序进口
0013H 外部中止1(INT1)服务程序进口
001BH 定时器1中止(T1)服务程序进口
0023H 串行I/O中止(RI/TI)服务程序进口
通常在这些进口地址开端的二、三个字节的地址单元中寄存一条搬运指令,用于跳转到中止服务程序,假如中止服务程序满足短,或许不会占用到下一个特定程序的进口(比如从001BH开端接连寄存,不会占用到0023H地址单元),则不需要用搬运指令,直接在进口地址处写中止服务程序。
4.外部数据存储器(片外,经过接口电路与单片机相连)
最大容量可达64KB。
片外RAM与片内RAM的差异:片外RAM不能进行仓库操作;片内RAM操作时无读写信号发生,片外RAM读写操作时有读写信号(RD*,WR*)发生。
内部数据存储器和特别功用寄存器一致编址,程序存储器和外部数据存储器均独自编址,因而89C51存储器具有三套独立编址的存储空间。
89C51的仓库坐落片内RAM中,最大空间为128B,向地址增大的方向增加,操作过程为先加后压、先弹后减。