51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > ◆学习MCU > 详细内容
[基础篇]十、单片机指令(三)
阅读次数:3319  字体大小: 【】 【】【

作者:平凡单片机

2 、累加器 A 与片外 RAM 之间的数据传递类指令

MOVX A,@Ri

MOVX @Ri,A

MOVX A,@DPTR

MOVX @DPTR,A

说明:

1 )在 51 中,与外部存储器 RAM 打交道的只可以是 A 累加器。所有需要送入外部 RAM 的数据必需要通过 A 送去,而所有要读入的外部 RAM 中的数据也必需通过 A 读入。在此我们可以看出内外部 RAM 的区别了,内部 RAM 间可以直接进行数据的传递,而外部则不行,比如,要将外部 RAM 中某一单元(设为 0100H 单元的数据)送入另一个单元(设为 0200H 单元),也必须先将 0100H 单元中的内容读入 A ,然后再送到 0200H 单元中去。

  1. 要读或写外部的 RAM ,当然也必须要知道 RAM 的地址,在后两条指令中,地址是被直接放在 DPTR 中的。而前两条指令,由于 Ri (即 R0 或 R1 )只是一个 8 位的寄存器,所以只提供低 8 位地址。因为有时扩展的外部 RAM 的数量比较少,少于或等于 256 个,就只需要提供 8 位地址就够了。
  2. 使用时应当首先将要读或写的地址送入 DPTR 或 Ri 中,然后再用读写命令。

例:将外部 RAM 中 100H 单元中的内容送入外部 RAM 中 200H 单元中。

MOV DPTR , #0100H

MOVX A , @DPTR

MOV DPTR,#0200H

MOVX @DPTR,A

  1. 程序存储器向累加器 A 传送指令

MOVC A , @A+DPTR

本指令是将 ROM 中的数送入 A 中。本指令也被称为查表指令,常用此指令来查一个已做好在 ROM 中的表格

说明:

  1. 此条指令引出一个新的寻址方法:变址寻址。本指令是要在 ROM 的一个地址单元中找出数据,显然必须知道这个单元的地址,这个单元的地址是这样确定的:在执行本指令立脚点 DPTR 中有一个数, A 中有一个数,执行指令时,将 A 和 DPTR 中的数加起为,就成为要查找的单元的地址。
  2. 查找到的结果被放在 A 中,因此,本条指令执行前后, A 中的值不一定相同。

例:有一个数在 R0 中,要求用查表的方法确定它的平方值(此数的取值范围是 0-5 )

MOV DPTR , #TABLE

MOV A , R0

MOVC A , @A+DPTR

.

.

TABLE: DB 0,1,4,9,16,25

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号