打印

PIC直接寻址和间接寻址

[复制链接]
4842|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
它山之石|  楼主 | 2013-3-19 11:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 它山之石 于 2013-3-19 14:59 编辑



如上图是间接寻址实现0X20和0X21单元的清零.用的是间接寻址的方式。

我的疑问是,用直接寻址不行么,不能直接 CLRF 0X20;CLRF 0X21;吗?为什么弄个间接的?求指点。
沙发
谈的元| | 2013-3-19 22:17 | 只看该作者
直接寻址可以,太多的清除用间接寻址循环方便

使用特权

评论回复
板凳
diweo| | 2013-3-21 19:08 | 只看该作者
在这种简单的情况下,直接寻址当然是可以的。不过,在某些情况下用间接寻址更简洁有效。
比如,这里你知道要操作的内存单元为2个,但是如果有100个呢?难道代码复制100次?或者事先不知道次数,而是由另一个变量指定呢?

使用特权

评论回复
地板
youss| | 2013-3-22 06:31 | 只看该作者
本帖最后由 youss 于 2013-3-22 06:34 编辑

你这是简单的例子, 在对多个寄存器连续取数时就该用到了,可以使程序更简洁! 下面是4个(也可有更多的应用--如将几十个串口接收数据存入寄存器...)例子:

fsr.JPG (50.72 KB )

fsr.JPG

使用特权

评论回复
5
它山之石|  楼主 | 2013-3-22 16:13 | 只看该作者
谈的元 发表于 2013-3-19 22:17
直接寻址可以,太多的清除用间接寻址循环方便

理解了 多谢指点

使用特权

评论回复
6
yewuyi| | 2013-3-23 09:42 | 只看该作者
基本所有的MCU都带间接寻址和直接寻址操作,你只要上个大学的单片机课程,按道理就不应该问这样的问题。

使用特权

评论回复
7
它山之石|  楼主 | 2013-3-25 08:34 | 只看该作者
yewuyi 发表于 2013-3-23 09:42
基本所有的MCU都带间接寻址和直接寻址操作,你只要上个大学的单片机课程,按道理就不应该问这样的问题。 ...

大学玩游戏了。Ye总。

使用特权

评论回复
8
yewuyi| | 2013-3-25 09:30 | 只看该作者
它山之石 发表于 2013-3-25 08:34
大学玩游戏了。Ye总。

还好还好,不是光OOXX就还有得救。

使用特权

评论回复
9
weixinglu| | 2013-3-25 11:11 | 只看该作者
3楼正解。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:<img src="static/image/smiley/comcom/3.gif" class="vm">

95

主题

547

帖子

4

粉丝