求助间接寻址问题

[复制链接]
 楼主| fly_bear 发表于 2008-7-11 10:39 | 显示全部楼层 |阅读模式
我用F877A编一段程序,需要在体2中存储一段数据,地址是从120h开始,我想用间接寻址来写,可是在赋值定义时,该怎样赋值呢?是data0&nbsp;equ&nbsp;120h&nbsp;还是&nbsp;data0&nbsp;equ&nbsp;20h?&nbsp;在间接寻址的时候,是不是这样写:bsf&nbsp;status,7&nbsp;&nbsp;&nbsp;&nbsp;movlw&nbsp;data0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movwf&nbsp;fsr&nbsp;?还请各位帮帮分析一下,谢谢了&nbsp;<br />
zhaoyu2005 发表于 2008-7-11 17:35 | 显示全部楼层

汇编的间接寻址忘了怎么写

不管在哪个存储区,都要减去页地址,其实该区的寻址也是从0开始的,但是记得进行页切换就行了
xieyuanbin 发表于 2008-7-12 16:17 | 显示全部楼层

汇编中要注意存储体的切换.

间接寻址,低7&nbsp;BIT&nbsp;地址在FSR的低7位中,另外两个BANK地址由两个特殊位IRP-FSR(7)决定,FSR(7)即是FSR的第7位,IRP在STATUS中,所以要寻址data0&nbsp;=&nbsp;0x120,程序要这样写:<br />DATA0&nbsp;EQU&nbsp;0X120<br /><br /><br /><br />MOVLW&nbsp;LOW(DATA0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;取DATA0的低字节,即0X20<br />MOVWF&nbsp;FSR<br />BSF&nbsp;&nbsp;&nbsp;STATUS,IRP<br />MOVF&nbsp;&nbsp;INDF,W<br />此时W中的值即是DATA0地址指向单元的值.
 楼主| fly_bear 发表于 2008-7-14 09:39 | 显示全部楼层

谢谢

十分感谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

15

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部