新浪博客

关于MCS-51的 MOVX A,@DPTR 和 MOVX @DPTR,A指令

2015-02-10 12:49阅读:
首先要区别好这两个指令MOV 和 MOVX的基本用法。
访问内部RAM时用的是MOV (片内数据存储地址范围:00H~FFH)
访问外部RAM时用的是MOVX (片外数据存储地址范围:0000H~FFFFH)
(别把这两个指令与ROM的操作指令弄混淆了)

接下来看三条指令差不多就可以明白这两个指令的大概意思了

MOV DPTR,#1600H

这个的指令的意思是把#1600H这个16位立即数放到DPTR这个16为寄存器中(本质就是定义一个片外地址)
(其实这个指令的想完成的操作是先把地址1600H放到DPTR中,然后在通过 MOVX A,@DPTR 把地址1600H地址中的内容读取到A寄存器当中,我想应该是这样子的 关于MCS-51的 <wbr>MOVX <wbr>A,@DPTR <wbr>和 <wbr>MOVX <wbr>@DPTR,A指令

MOVX A,@DPTR

把DPTR中的内容对应的地址中的内容读取到A寄存器中
(寄存器间接寻址)

MOVX @DPTR,A

把A寄存器中的内容赋值给DPTR中的内容对应的地址中
(寄存器
寻址)

到此应该是差不多弄明白这两个指令的大概意思

但是要特别注意第一个指令 MOV DPTR,#1600H 的意思,一开始是怀疑这个指令是不是有问题,后来才看明白,如果不是用这个指令,那怎么样定义一个16位的片外地址呢!?

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

还有另外一个:

MOVX A,@R0 和 MOVX A,@DPTR有何区别


主要是区别在于对外输出地址的方式上

MOVX A,@R0 只是占用P0口,输出R0中的8位地址
MOVX A,@DPTR 要占用P0、P2口,输出DPTR中的16位地址


关于MCS-51的 <wbr>MOVX <wbr>A,@DPTR <wbr>和 <wbr>MOVX <wbr>@DPTR,A指令 关于MCS-51的 <wbr>MOVX <wbr>A,@DPTR <wbr>和 <wbr>MOVX <wbr>@DPTR,A指令 关于MCS-51的 <wbr>MOVX <wbr>A,@DPTR <wbr>和 <wbr>MOVX <wbr>@DPTR,A指令

我的更多文章

下载客户端阅读体验更佳

APP专享