打印
[51单片机]

关于MOVX A,@R0指令的寻址范围

[复制链接]
3793|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zkybuaa|  楼主 | 2013-8-15 12:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教高手指点下,MOVX A,@R0这条指令的寻址范围。
很多教科书上说,这条指令寻址片外RAM的低256字节。

比如有这样一种情况,在片外4K范围内存放着一个数据,总共需要12位寻址。
数据地址的低八位存放在R0中,数据地址的高4位,存放在P2中。
用MOVX A,@R0可以取出来这个数据吗?

比如 R1存放着高8位,R0存放着低8位,程序如下:

MOV A,R1;   
ANL A,#0FH;
ANL P2,#F0H;
ORL P2,A;
MOVX A,@R0

是可以寻址4K范围内吗?

相关帖子

沙发
lyjian| | 2013-8-15 13:20 | 只看该作者
可以

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
zkybuaa + 1 谢谢。分不多,只有1分。
板凳
ayb_ice| | 2013-8-15 13:51 | 只看该作者
高字节地址需要额外指令,有些是P2,有些是有另外的寄存器,有些固定为0,这要看具体的芯片

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
zkybuaa + 3
地板
coody| | 2013-8-15 13:54 | 只看该作者
按标准的51,可以访问所有的页,但是好多增强型都有改动,所以为了程序通用,我都不用这条指令。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
zkybuaa + 3
5
zkybuaa|  楼主 | 2013-8-17 08:05 | 只看该作者
lyjian 发表于 2013-8-15 13:20
可以

我看好多书上,都说是只是用来访问外部ram的低256字节。
也就是0x0000H - 0x00FFH。

使用特权

评论回复
6
yhn1973| | 2013-8-17 10:33 | 只看该作者
看什么芯片功能了,C8051F的是可分页访问的。其实使用R0、R1的分页访问功能还是挺有用的,比如外接LCD屏,只使用R0、R1来读写,而内存则使用DPTR读写,这样从内存往LCD中传数据时就不用频繁切换DPTR了。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
zkybuaa + 3
7
lyjian| | 2013-8-19 08:28 | 只看该作者
zkybuaa 发表于 2013-8-17 08:05
我看好多书上,都说是只是用来访问外部ram的低256字节。
也就是0x0000H - 0x00FFH。 ...

MOVX A,@R0指令是访问外部ram的低256字节,高位地址可以用P2 IO来控制
你自己上面不是已经说了吗“数据地址的低八位存放在R0中,数据地址的高4位,存放在P2中。”

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
zkybuaa + 3
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

648

帖子

0

粉丝