数据存储器(ram)用于存储数据或中间运行结果,cpu通过执行指令对ram中的数据进行读写。mcs51系列单片机片内有256b的ram,片外ram可扩展到64kb。访问片内ram用mov指令,访问片外ram与扩展的i/o芯片用movx指令。每个ram单元都编有地址,cpu对某ram单元执行读写指令时,先要根据该ram单元的地址找到该单元,才能对其进行读写操作。在指令中,该ram单元属于操作数部分,寻找该ram单元的地址就是寻找操作数的地址。寻找操作数地址的方式叫寻址方式。指令中表达操作数地址的方式有7种不同方式,因而寻址方式有7种不同方式。ram的配置如图2-4。
片内ram:片内ram的结构比较复杂,有工作区、位寻址区、通用区及特殊功能寄存器区等。寻址方式也不相同,有直接寻址,也有间接寻址,还有的两种方式均可以。片内ram总的寻址范围是00h~ffh。
00h~1fh之间的32字节被称为工作寄存器区。这个工作区由4个小区组成,分别为0区、1区、2区和3区。每个小区有8个寄存器,这8个寄存器分别命名为r0、r1、…、r7。4个小区中的寄存器名称是完全相同的。由于单片机在某时刻只能工作在其中一个小区中,所以不同小区的寄存器,有相同的名字也不会产生混淆。工作区之间的切换,是通过程序状态寄存器(psw)中的rs1、rs0置位和清零实现的。
20h~2fh之间的16字节是位寻址区。它们既可以以字节被寻址,也可以对字节中的任意位进行寻址。其位地址分配见表23。位地址分配的规律是:20h~2fh的16字节,共128位。这128位对应的位地址是从00h~7fh,起点是20h的d0位对应00h位地址,其他位地址依次递增对应。位寻址区的用途:一是作为mcs-51系列单片机微处理器子系统的外ram区;二是在编程时,作为某状态标志位使用,这一点,其他系列单片机大部分没有,这也是mcs-51系列单片机优秀的一点,给编程提供了很大方便。
30h~7fh是通用ram区,只能以字节寻址,通用暂存数据,一般堆栈也设在该区域内。80h~ffh内有两部分内容:一是通用ram区(52子系列附加ram区),二是sfr(特殊功能寄存器)区。它们占用相同逻辑地址,但物理地址是分开的。区别的方法是:访问通用ram区时,使用寄存器间接寻址方式;访问sfr区时,使用直接寻址方式,两者不可混用。
图2-4 ram的配置(www.xing528.com)
表2-3 位寻址区的位地址分配
(续)
片外ram可寻址空间,是指mcs-51系列单片机对片外扩展ram的最大寻址能力(64kb),也就是片外可扩展ram的最大数。片外扩展的ram与片内ram不是统一编址的,逻辑上、物理上都是独立的两个空间。在数据传送上,访问片内ram用mov指令,访问片外ram用movx指令。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。