8XC5X/8XC5XX2系列单片机存储器结构FFFFHFFFFHFFH外部ROM特殊功能高128字节技寄存器内部RAM外部数据80H存储器7FH西安电片内ROM外部ROM4~32KB低128字节EA=0内部RAMEA-1钣社O0H0000H0000H安电子科技大学(a)FFFFHFFFFH西安电子FFH外部ROM特殊功能1000H寄存器外部数据80H存储器OFFFH7FH片内ROM外部ROM4KB4KB内部RAM科技EA=0EA=1OOHO000H0000H(b)
❖ 8XC5X/8XC5XX2系列单片机存储器结构
关于哈佛体系结构与普林斯顿体系结构·哈佛体系结构的程序存储器与数据存储器都拥有自己独立的总线和寻址空间(典型的如DSP,T的C5000系列)普林斯顿体系结构的程序存储器与数据存诸器统一编址,公用一组总线;(x86,PC机)·MCS-51:准哈佛体系结构,因为总线分时复用
关于哈佛体系结构与普林斯顿体系结构 • 哈佛体系结构的程序存储器与数据存储器都拥有自己独立的 总线和寻址空间(典型的如DSP,TI的C5000系列) • 普林斯顿体系结构的程序存储器与数据存储器统一编址,公 用一组总线;(x86,PC机) • MCS-51:准哈佛体系结构,因为总线分时复用
*2.2.1片内数据存储器1.片内RAM及其寻址方式对于8XC51、8XC31芯片来说,内部RAM的容量为128字节(00H~7FH):对于8XC52/54/58芯片来说,片内RAM容量为256字节(00H~0FFH)。根据用途可将内部RAM划分为工作寄存器区、位寻址区和用户数据存储器区(可作用户RAM或堆栈区),如表2-4所示。对于低128字节(00H~7FH)内部RAM,可使用直接寻址方式或寄存器间接寻址方式读写,如:MOV30H,40H;将内部RAM40H单元内容写入内部RAM30H单元MOV30H,#35H:将立即数35H写入内部RAM30H单元MOV@RO,#35H:通过寄存器间接寻址方式将立即数35H写入由R0指定的内部RAM单元中
❖ 2.2.1 片内数据存储器 1. 片内RAM及其寻址方式 对于8XC51、8XC31芯片来说,内部RAM的容量为128字 节(00H~7FH);对于8XC52/54/58芯片来说,片内RAM容量 为256 字节(00H~0FFH)。根据用途可将内部RAM划分为工作 寄存器区、位寻址区和用户数据存储器区(可作用户RAM或堆栈 区),如表2-4所示。 对于低128字节(00H~7FH)内部RAM,可使用直接寻址方 式或寄存器间接寻址方式读写,如: MOV 30H,40H ;将内部RAM 40H单元内容写入内部 RAM 30H单元 MOV 30H,#35H ;将立即数35H写入内部RAM 30H单元 MOV @R0,#35H ; 通过寄存器间接寻址方式将立即数 35H写入由R0指定的内部RAM单元中
如果上述第三条指令执行前R0内容为3OH,则第+二条和第三条指令执行结果相同,均为把立即数35H写入内部RAM30H单元中。由于高128字节(80H~FFH)RAM地址编码与特殊功能寄存器地址重叠,因此,只能用寄存器间接寻址方式访问高128字节内部RAM,如:MOVRO,#8OH;内部RAM地址送间接寻址寄存器ROMOV A, @RO;通过间接寻址方式,将80H单元内容送累加器A(读)MOV@RO,A;通过间接寻址方式,将累加器A内容送80H单元(写)
❖ 如果上述第三条指令执行前R0内容为30H,则第 二条和第三条指令执行结果相同,均为把立即数35H 写入内部RAM 30H单元中。 由于高128字节(80H~FFH)RAM地址编码与特 殊功能寄存器地址重叠,因此,只能用寄存器间接寻 址方式访问高128字节内部RAM,如: MOV R0,#80H ;内部RAM地址送间接寻址 寄存器R0 MOV A,@R0 ;通过间接寻址方式,将 80H单元内容 送累加器A(读) MOV @R0, A ;通过间接寻址方式,将累 加器A内容 送80H单元(写)
(1)工作寄存器区。该区域容量为32个字节,分X为四个区,每区8个字节,对应R0~R7寄存器名。因此,R0的物理地址可能是00H,也可能是08H、10H或18H:同理,R1的物理地址可能是01H,也可能是09H、11H或19H。任何时候都只能选择四个工作寄存器区中的一个区作为当前工作寄存器区,当前工作寄存器区由程序状态字寄存器PSW的b4(RS1)、b3(RSO)位确定,具体情况如下:
❖ (1) 工作寄存器区。该区域容量为32个字节,分 为四个区,每区8个字节,对应R0~R7寄存器名。因 此,R0的物理地址可能是00H,也可能是08H、10H 或18H;同理,R1的物理地址可能是01H,也可能是 09H、11H或19H。 任何时候都只能选择四个工作寄 存器区中的一个区作为当前工作寄存器区,当前工作 寄存器区由程序状态字寄存器PSW的b4(RS1)、 b3(RS0)位确定,具体情况如下: