找回密码
 立即注册
查看: 527|回复: 10

关于STC32G寄存器堆结构图的疑问

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:356
  • 最近打卡:2025-05-07 00:44:40

35

主题

189

回帖

853

积分

高级会员

积分
853
发表于 2024-3-21 11:23:39 | 显示全部楼层 |阅读模式
大家好,这个寄存器堆结构图的疑问的帖子不知道发在哪个板块,先发在这里,版主若感到不合适,请给转到其他的板块,谢谢。

在STC32G的说明书10.2.2章节中有下面图:在这个图中,我们可以看到寄存器组 0-寄存器组 3占用了00H到1FH的地址,图中也说明了寄存器组,通过PSW 中的 RS0和RS1进行选择。这是不是传统51中的R0~R7?
10.2.2.png
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:356
  • 最近打卡:2025-05-07 00:44:40

35

主题

189

回帖

853

积分

高级会员

积分
853
发表于 2024-3-21 11:24:21 | 显示全部楼层
本帖最后由 newlined 于 2024-3-21 11:33 编辑

如果是的话:请看10.3.1 寄存器堆结构图:这个图中也说明了寄存器组 0~3由位置 0 到 7 的寄存器堆实际上由四个可切换组组成,每个组有 8 个寄存器,如下图所示。这四个组使用片上内存的前 32 个字节,并且始终可在存储地址空间的 00:0000H ~ 00:001FH 的位置访问。通过 PSW 寄存器的 RS1 和 RS0 位选择四个组中的一个进行访问。这一组寄存器和首贴的寄存器组是不是一回事?在这张图中,R8到R15是不是对应的首贴中的20到27的位置?也就是说如果我修改了R8数据,地址20(位变量的地址)的内容是不是也会随着改变?谢谢
10.3.1.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:356
  • 最近打卡:2025-05-07 00:44:40

35

主题

189

回帖

853

积分

高级会员

积分
853
发表于 2024-3-21 11:35:25 | 显示全部楼层
有此疑问是因为我在CAN的例程的基础上,编写一个程序,发现我定义的一个位变量,我没有操作它,不知道为什么自己改变了数值。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-07 03:58:34

24

主题

517

回帖

1014

积分

荣誉版主

积分
1014
发表于 2024-3-21 12:15:18 | 显示全部楼层
这部分内容,我看了十遍以上。
说一下我的理解:R0---R7部分,是RAM与寄存器堆共有,方便数据交换。
R8以上---R63,是寄存器堆的寄存器,不会出现在RAM中。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-07 03:58:34

24

主题

517

回帖

1014

积分

荣誉版主

积分
1014
发表于 2024-3-21 12:21:23 | 显示全部楼层
切换寄存器组 0~3,用到的00---1FH空间,是真正的RAM空间,兼容8051.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:356
  • 最近打卡:2025-05-07 00:44:40

35

主题

189

回帖

853

积分

高级会员

积分
853
发表于 2024-3-21 13:35:53 | 显示全部楼层
社区*** 发表于 2024-3-21 12:15
这部分内容,我看了十遍以上。
说一下我的理解:R0---R7部分,是RAN与寄存器堆共有,方便数据交换。
R8以上 ...

谢谢您的回复,看来是我的程序哪个地方出问题了,我再找找看。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:356
  • 最近打卡:2025-05-07 00:44:40

35

主题

189

回帖

853

积分

高级会员

积分
853
发表于 2024-3-21 13:36:48 | 显示全部楼层
社区*** 发表于 2024-3-21 12:21
切换寄存器组 0~3,用到的00---1FH空间,是真正的RAM空间,兼容8051.

谢谢您的回复,我也觉得应该是同一组寄存器。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:356
  • 最近打卡:2025-05-07 00:44:40

35

主题

189

回帖

853

积分

高级会员

积分
853
发表于 2024-3-21 16:42:06 | 显示全部楼层
社区*** 发表于 2024-3-21 12:15
这部分内容,我看了十遍以上。
说一下我的理解:R0---R7部分,是RAN与寄存器堆共有,方便数据交换。
R8以上 ...

我找到了寄存器被修改的原因了,非常感谢。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:437
  • 最近打卡:2025-05-07 13:06:10

33

主题

2355

回帖

4876

积分

论坛元老

积分
4876
发表于 2024-3-23 14:39:48 | 显示全部楼层
newl*** 发表于 2024-3-21 16:42
我找到了寄存器被修改的原因了,非常感谢。

所以是啥愿意导致变量被改变呢0.0
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:356
  • 最近打卡:2025-05-07 00:44:40

35

主题

189

回帖

853

积分

高级会员

积分
853
发表于 2024-3-25 15:37:45 | 显示全部楼层
_奶*** 发表于 2024-3-23 14:39
所以是啥愿意导致变量被改变呢0.0

咳,巨汗,正常状态下,这个变量应该是0,有特殊事件发生,就置位1,所以我应该上电初始化时,应该初始化为0,但是我上电初始化时,初始化成了1。。。。。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-7 14:23 , Processed in 0.133555 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表