1. 在AT89S51单片机的片内数据存储器中,地址为00H~1FH的32个单元是四组通用工作寄存器区,每个区包含8B的工作寄存器,编号为R7~R0;
  1. 同一时刻,只有一组工作寄存器区作为当前的工作寄存器区被使用;
  2. 无论当前使用的是哪一组工作寄存器区,其编号都是R7~R0,各个编号对应的字节地址取决于当前的工作寄存器区的区号
  3. 当前工作寄存器组的区号由程序状态字寄存器PSW中的RS1、RS0决定,用户可通过改变这两位值来切换选择当前的工作寄存器组;
  4. RS1、RS0、当前的工作寄存器区的区号、当前的工作寄存器区的地址范围,各编号对应的字节地址的地址关系如下表所示:
  5. RS1值可能是0或1,RS0的值也可能是0或1,将RS1作为高位,RS0作为低位,则可以组合成四个二进制数00、01、10和11,将其转换成十进制数,即为当前的工作寄存器区的区号;
  6. 假设当前的工作寄存器区的区号为x,则其字节地址的范围为8x~8x+7;
  7. 假设当前的工作寄存器区的区号为x,则Rn的字节地址为:8x+n,n=0...7;