找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2347|回复: 17
打印 上一主题 下一主题
收起左侧

51单片机寄存器片外间接寻址的问题(汇编语言)

[复制链接]
跳转到指定楼层
楼主
在第7行之前,R0的值已经等于20H,A的值已经等于DDH。
第7行 MOVX @R0,A 表示将A的值赋给R0的值所指向的片外RAM的存储单元
但为什么第7行代码在执行完以后,片外RAM的20H的值并没有发生变化呢?

51hei截图_20221109133740.png (70.9 KB, 下载次数: 62)

51hei截图_20221109133740.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2022-11-15 17:09 | 只看该作者
你看下X:FF20位置,应该已经改变了。
回复

使用道具 举报

板凳
ID:624769 发表于 2022-11-15 19:09 | 只看该作者
再往下走一步。
回复

使用道具 举报

地板
ID:1003481 发表于 2022-11-16 08:43 | 只看该作者
Hephaestus 发表于 2022-11-15 17:09
你看下X:FF20位置,应该已经改变了。

X:FF20H查不了,是一片空白。不知道是为什么,我用的Keil 4仿真的
回复

使用道具 举报

5#
ID:1003481 发表于 2022-11-16 08:44 | 只看该作者

往下继续走,X:0020H还是没变
回复

使用道具 举报

6#
ID:384109 发表于 2022-11-16 09:03 | 只看该作者
是否有实物外部存储器,软件仿真的话不一定能有结果
回复

使用道具 举报

7#
ID:1003481 发表于 2022-11-16 10:07 | 只看该作者
如图,用DPTR指向片外内存就可以正确读写,但R0、R1不行
回复

使用道具 举报

8#
ID:1003481 发表于 2022-11-16 10:07 | 只看该作者
人中狼 发表于 2022-11-16 09:03
是否有实物外部存储器,软件仿真的话不一定能有结果

用DPTR可以完成操作,但是R0、R1不行。不知道为啥会这样子
回复

使用道具 举报

9#
ID:1003481 发表于 2022-11-16 10:31 来自手机 | 只看该作者
如果代码没问题的话我就不去深究了,因为我只是理论学习
回复

使用道具 举报

10#
ID:624769 发表于 2022-11-16 11:34 | 只看该作者
MagicKrse 发表于 2022-11-16 10:31
如果代码没问题的话我就不去深究了,因为我只是理论学习

不深究就学不会啊……
你 页定义了么?
只要定义了页,就能正常写入啊。如图:




回复

使用道具 举报

11#
ID:883242 发表于 2022-11-16 13:23 | 只看该作者
这个页地址是标准51没有的,查你用的单片机具体型号的手册吧。
回复

使用道具 举报

12#
ID:123289 发表于 2022-11-16 13:45 | 只看该作者
外XRAM地址是16位,含盖0000H-FFFFH。
DPTR是16位,所以用DPTR寻址,你一定能理解。
但R0是8位,你为何没有提出疑问呢?
还是没有认真读CPU手册,51系统规定,用@R0对XRAM寻址时,高8位隐含在P2中。
去核对一下:P2R0合成的地址看看,是不是也。
或者先将P2清0,再做一次。

劝君认真读一下手册,它是你精通单片机成为高手的必由之路!
回复

使用道具 举报

13#
ID:1003481 发表于 2022-11-16 14:25 | 只看该作者
答案正如楼上各位所说。
我错误的将R0、R1的寻址和DPTR的内容联系起来了。
我原以为DPTR的高8位(DPH)只要是00H就不会影响工作寄存器片外寻址的地址指向,
我错误的认为:工作寄存器片外寻址时其指向的地址=DPH+R0.
而实际上:P2的值才是地址总线的高8位,工作寄存器片外寻址时其指向的地址=P2+R0,而工作寄存器片外寻址时是不受DPH的影响的。
感谢上面的朋友们的解答!
回复

使用道具 举报

14#
ID:77589 发表于 2022-11-16 17:52 | 只看该作者
yzwzfyz 发表于 2022-11-16 13:45
外XRAM地址是16位,含盖0000H-FFFFH。
DPTR是16位,所以用DPTR寻址,你一定能理解。
但R0是8位,你为何没 ...

这才是正解!!!!!!
回复

使用道具 举报

15#
ID:983641 发表于 2022-11-25 17:02 | 只看该作者
P2是什么?
回复

使用道具 举报

16#
ID:368534 发表于 2022-11-29 11:29 | 只看该作者
查idata,不是xdata。
回复

使用道具 举报

17#
ID:883242 发表于 2022-11-29 21:26 | 只看该作者
xdqfc 发表于 2022-11-29 11:29
查idata,不是xdata。

楼主已经解决问题了,你还在说这些错误的结论用意何在?

xdata用movx指令访问
idata用mov @Ri (i=0 or 1)指令访问

你仔细看看楼主的代码!
回复

使用道具 举报

18#
ID:368534 发表于 2022-11-30 11:13 | 只看该作者
Hephaestus 发表于 2022-11-29 21:26
楼主已经解决问题了,你还在说这些错误的结论用意何在?

xdata用movx指令访问

我能有什么用意??没有仔细看到他的代码而已。你急什么啊?
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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