打印

张明峰书上的疑惑

[复制链接]
2434|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
yewuyi| | 2010-7-27 17:34 | 只看该作者
不可以去掉。

如果你使用的MPLAB,那么就没有理由编译通不过,除非你选择芯片型号和例程中的型号不一样,在汇编编译器中的寄存器命名可能不一致所至。

建议查看型号对应的头文件中的命名。

使用特权

评论回复
板凳
chen3bing|  楼主 | 2010-7-27 17:41 | 只看该作者
[localimg=180,96]1[/localimg]

使用特权

评论回复
地板
chen3bing|  楼主 | 2010-7-27 18:51 | 只看该作者
谢谢!不是寄存器的问题,而是后面w的问题。
错误提示:Error[108]   D:\PIC\TEST.ASM 19 : Illegal character (,)
而且,我查数据手册:
MOVWF Move W to f
Syntax: [ label ] MOVWF f
f代表寄存器,后面什么都没有。
我还是觉得那种写法有问题。

使用特权

评论回复
5
chen3bing|  楼主 | 2010-7-27 18:55 | 只看该作者
我把w去掉,编译就通过了。
看张明峰的书,应该是用的877A,我原来用的73,改成877A也一样。
我感到很疑惑。

使用特权

评论回复
6
NE5532| | 2010-7-27 19:06 | 只看该作者


尽信书,不如无书。MOVWF 只能以F为目标地址,随便找本数据手册都可以看到。

使用特权

评论回复
7
chen3bing|  楼主 | 2010-7-27 19:35 | 只看该作者
谢谢!

使用特权

评论回复
8
yewuyi| | 2010-7-28 08:26 | 只看该作者
6# NE5532


也别轻易以为别人这么写就是胡乱搞出来的,呵呵,俺以前用ASM写的时候,也是后面带W的。

这个可能是ASM编译器或者是别的什么地方调整后的结果,至少在5年前,我们用ASM些的时候,这些都是可以正确编译的。

使用特权

评论回复
9
machunshui| | 2010-7-28 09:48 | 只看该作者
yewuyi可能不用汇编久已,**有误。
MOVWF f                    指令码              00 0000 lfff ffff
第8位目标已经定位为1,即文件寄存器。
即使后面加目标位也不可能是w。

这可能没校对出来的一个笔误,远不是什么“尽信书无书“的问题

使用特权

评论回复
10
yewuyi| | 2010-7-28 10:44 | 只看该作者
yewuyi可能不用汇编久已,**有误。
MOVWF f                    指令码              00 0000 lfff ffff
第8位目标已经定位为1,即文件寄存器。
即使后面加目标位也不可能是w。

这可能没校对出来的一个笔误,远不 ...
machunshui 发表于 2010-7-28 09:48



LS说的极是,我没仔细看前面的movwf而记成了movf  f,(f or w)了。

使用特权

评论回复
11
NE5532| | 2010-7-28 19:44 | 只看该作者
呵呵,我从来认为DATASHEET的可信度高于书,书是怎么回事,大家都很清楚哈。

使用特权

评论回复
12
hotpower| | 2010-7-30 07:28 | 只看该作者
wf即w -->f

使用特权

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

本版积分规则

439

主题

2540

帖子

2

粉丝