现在我们MCS-251指令集有268条指令
同时能操作的寄存器也扩展到16个(原来8051只有8个)
剩下的寄存器可以根据需要,配对组成16位和32位寄存器,WR 或者DR
可以仔细研究下图:
这样我们有16个16位的寄存器
8个32位寄存器,还有2个特殊的16位寄存器充当DPX和SPX
0---15这16个寄存器可以8位来访问,也可以用字(16位)来访问,当然也可以双字(32位)来访问
其他高位的16个寄存器,都是按字(16位)或者双字(32位)来访问
注:(1)R10就是8051单片机中的寄存B
(2)寄存器R11就是8051单片机中的累加器 ACC,也称为 A
扩展的数据指针和堆栈指针:
最大是24位的寻址空间
这样,再看寄存器文件,就没有那么头大了吧?
下次再介绍专用寄存器:
这些纯理论的,很难真懂,所以第13集要回炉再学一次!
下次开始学习第14集!
第十四集 32位单片机处理器核的内部结构二
先看看传统8051:
传统8051:
这4组32个8位寄存器,在程序状态字寄存器PSW中的RS1RS0的2个位的控制下,来选择使用那一组寄存器。注意传统的8051这32个寄存器不能同时使用。
CUP在寄存器PSW中的RS1RS0的2个位的控制下,1次只能看到8个寄存器。
2 寄存器的合并:
R0和R1合并----》WR0 ,注意这2个下角标0,是有对应关系的:注意放的顺序是R0是高8位,R1是低8位。当然WR2也是这样,R2放高8位,R3放低8位
看这里我们应该理解,STC能把32位机做出来,也不是很容易的!
新的单片机低位的8个寄存器R0—R7和传统的8051是完全兼容的,R8 ---R15是STC增加的。上图中底色是灰的部分表示完全兼容传统8051.在此基础上R8 ---R15是STC增加的,在MCS-251指令集架构下规约了,R0—R7依然通过程序状态字寄存器PSW中的RS1RS0的2个位的控制下分组使用或者分时复用。STC新增加的R8 ---R15这8个可字节访问的寄存器,那么在传统按组复用的32个寄存器的基础上,再加上这8个,就有40个可字节访问的寄存器。每一时刻CPU看到的是由RS0和RS1决定的那一组寄存器。