wuzhengmin 发表于 2025-12-8 10:35:55

看看下图的拼接关系:

wuzhengmin 发表于 2025-12-8 10:36:36

注意,对以下16-----31这16个寄存器,STC规约了不允许8位访问只能16位访问。R0---R15既可以8位也可以16位访问,R16---R31只能双字16位访问。



就是说,下图中的寄存器,只能以16位来访问:

wuzhengmin 发表于 2025-12-8 10:45:21

当然R0—R3可以拼出DR0,R0 是最高字节,R3是最低字节。
16位寄存器的编号是偶数,能被2整除,0,2,4,6,8…….
32位寄存器的编号是偶数的2倍,编号能能被4整除。
   而R58---R63是4位1拼变成DR56当DPX扩展的数据指针,而R60---R63是4位1拼变成SPX当扩展的堆栈指针。


wuzhengmin 发表于 2025-12-8 12:07:14

本来四组0—组3的寄存器和存储器是无关的,可是8051是紧凑结构,它把寄存器的变化体现在存储器里:“在存储器地址空间可以访问组0~组3,对应的存储器地址是00H—07H,08H---0FH,10H----17H。18H----1FH。”

wuzhengmin 发表于 2025-12-8 12:07:56

紧凑结构都是这样:

wuzhengmin 发表于 2025-12-8 12:22:51

看看映射关系:

要看懂上图的数据映射关系,上面的关系一定要保留。在EDATA的区域里,是固定分配给传统51以便保持兼容性一致。

wuzhengmin 发表于 2025-12-8 12:25:37

下图是传统8051的通过状态值PSW的RS1RS0选择寄存器的对应存储器映射地址范围表

wuzhengmin 发表于 2025-12-8 12:29:45

与STC15/STC8系列增强型8051单片机一样,寄存器RO-R7仍然划分为四个组,每组依然包含8个寄存器

wuzhengmin 发表于 2025-12-8 12:31:14

字寄存器(16位)是两个字节寄存器的组合,双字寄存器(32位)是4个字节寄存器的组合

wuzhengmin 发表于 2025-12-8 12:31:49

这样纯理论,难理解,演示一下:

页: 27 28 29 30 31 32 33 34 35 36 [37] 38 39 40 41 42 43 44 45 46
查看完整版本: 跟着何宾老师学习STC32位8051单片机原理及应用-STC32G12K128