找回密码
 立即注册
查看: 68|回复: 9

请教个问题:为什么是用'MOV + 字寄存器'指令间接读写STC32的XFR

[复制链接]
  • TA的每日心情
    郁闷
    2024-3-30 16:06
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    7

    主题

    17

    回帖

    215

    积分

    中级会员

    积分
    215
    发表于 2024-3-10 23:08:30 | 显示全部楼层 |阅读模式
    请教个问题:

    在学习mcu STC32的存储空间映射时,突然有个问题想不通了:
    已知,STC32的XFR位于XDATA区域的7E:0000H ~ 7E:FFFFH范围,扩展RAM位于01:0000H ~ 01:1FFFH范围,访问扩展RAM用 ‘MOVX    +  @Ri’或 'MOVX + @DPTR'等形式间接访问,而同为XDATA区域的  XFR  们用的是'MOV  +  @DRk'间接访问。


    问题:
    XFR为什么用的是'MOV  +  @DRk'形式访问,而不是'MOVX' 形式?

    STC32G12K128存储空间映射表

    STC32G12K128存储空间映射表
    知道你很急,但是你先别急
    你随时可以走,但是现在不能走
    回复 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    119

    回帖

    657

    积分

    高级会员

    积分
    657
    发表于 2024-3-10 23:47:04 | 显示全部楼层
    访问扩展RAM也可用'MOV  +  @DRk'间接访问,XFR也可用MOVX指令,只不过效率太低,要先设置DPXL为7EH
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 20:17
  • 签到天数: 173 天

    [LV.7]常住居民III

    17

    主题

    371

    回帖

    1367

    积分

    荣誉版主

    积分
    1367
    发表于 2024-3-11 09:50:42 | 显示全部楼层
    查看80251的datasheet, MOV    @DRk , Rm  的指令周期是4个时钟。STC32给出的是1个个时钟。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 20:17
  • 签到天数: 173 天

    [LV.7]常住居民III

    17

    主题

    371

    回帖

    1367

    积分

    荣誉版主

    积分
    1367
    发表于 2024-3-11 10:06:23 | 显示全部楼层
    80251的datasheet, MOV   Rm , dir8(i/o) 的读IO指令的执行周期是2+1,共3个时钟周期。
    STC32的这个指令周期是1个时钟周期。经过反复验证确认,确实是1个时钟周期。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    119

    回帖

    657

    积分

    高级会员

    积分
    657
    发表于 2024-3-11 10:53:00 | 显示全部楼层
    社区闲人 发表于 2024-3-11 09:50
    查看80251的datasheet, MOV    @DRk , Rm  的指令周期是4个时钟。STC32给出的是1个个时钟。 ...

    STC的MOV  @DRk , Rm指令周期看DRk指向的位置,如果是EDATA区域1个时钟,其他区域3个时钟
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 20:17
  • 签到天数: 173 天

    [LV.7]常住居民III

    17

    主题

    371

    回帖

    1367

    积分

    荣誉版主

    积分
    1367
    发表于 2024-3-11 11:22:25 | 显示全部楼层
    谢谢楼上网友的提醒。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-3-30 16:06
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    7

    主题

    17

    回帖

    215

    积分

    中级会员

    积分
    215
     楼主| 发表于 2024-3-11 20:16:02 | 显示全部楼层
    zxcv1973 发表于 2024-3-10 23:47
    访问扩展RAM也可用'MOV  +  @DRk'间接访问,XFR也可用MOVX指令,只不过效率太低,要先设置DPXL为7EH ...

    学习了,思路一下子打开了
    感谢指导
    知道你很急,但是你先别急
    你随时可以走,但是现在不能走
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-3-30 16:06
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    7

    主题

    17

    回帖

    215

    积分

    中级会员

    积分
    215
     楼主| 发表于 2024-3-11 20:17:17 | 显示全部楼层
    感谢楼上各位的指导,不胜感激。
    祝各位,工作顺利!
    知道你很急,但是你先别急
    你随时可以走,但是现在不能走
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-3-30 16:06
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    7

    主题

    17

    回帖

    215

    积分

    中级会员

    积分
    215
     楼主| 发表于 2024-3-12 22:41:23 | 显示全部楼层
    zxcv1973 发表于 2024-3-10 23:47
    访问扩展RAM也可用'MOV  +  @DRk'间接访问,XFR也可用MOVX指令,只不过效率太低,要先设置DPXL为7EH ...

    今天验证了一下,是这样测试读的:
    1. MOV                DPXL, #7EH
    2. MOV                DPTR, #WORD0 CHIPID7
    3. MOVX        A, @DPTR
    复制代码
    build 没问题,结果也读取正确
    想多问下,从哪里才能获取到这样的知识
    知道你很急,但是你先别急
    你随时可以走,但是现在不能走
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    119

    回帖

    657

    积分

    高级会员

    积分
    657
    发表于 2024-3-13 11:34:35 | 显示全部楼层
    BeHappy 发表于 2024-3-12 22:41
    今天验证了一下,是这样测试读的:
    build 没问题,结果也读取正确
    想多问下,从哪里才能获取到这样的知识 ...

    看何宾老师那个视频
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-20 10:39 , Processed in 0.075320 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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