agu)。单片机类的指令仅单独通过x存储器的agu单元进行操作,把整个存储器作为一个线性的数据空间进行寻址。而dsp类指令的乘法累加器(mac)是通过x和y的agu共同操作的,这样就将数据地址空间分成相对独立的两部分。不过,这样的x和y的数据空间边界是任意的,且是由芯片自身特性决定的。数据空间存储器高位的32kb,通过定义8位程序空间可见页面寄存器psvpag(program space visibility page),任意的16位程序字边界中随意地被映射到的程序空间低位(用户空间),这样就使得任何指令能够像访问数据空间一样访问程序空间。不过,采用这种方式访问的执行时间比一般的访问方式要多一个周期。而且,只有每条指令字的低16位才可以使用这种方法访问。pic16f87x系列单片机的数据存储器分成多个存储区。每个存储区由通用寄存器和专用寄存器两部分组成。存储区之间的选择是通过定义状态寄存器status的rp0和rp1位进行的,每个存储体最多只能达到128字节。