打印

PCI16F505汇编头文件里的寄存器F是干什么用的?

[复制链接]
4064|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kknd1573|  楼主 | 2012-11-13 00:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IFNDEF __16F505
           MESSG "Processor-header file mismatch.  Verify selected processor."
        ENDIF
;==========================================================================
;
;       Register Definitions
;
;==========================================================================
W                            EQU     H'0000'
F                            EQU     H'0001'



这个寄存器F是起什么作用的?平时程序里面要怎么使用?
比如说
DECF Test1,F
DECF Test2,F

这有什么作用?
沙发
kknd1573|  楼主 | 2012-11-13 00:22 | 只看该作者
为何 与 W 寄存器一起,在最前面定义?W是工作寄存器,好理解,但是这个F又是起什么作用的呢?很纳闷

使用特权

评论回复
板凳
1521732588| | 2012-11-13 11:07 | 只看该作者
F: file register,表示运算结果放在F寄存器里面,而不是W

使用特权

评论回复
地板
kknd1573|  楼主 | 2012-11-14 21:01 | 只看该作者
3# 1521732588

要是出现这样的语句:
LOOP2

...


MOVF     NUM_L,F
BTFSC    STATUS,Z
DECF      NUM_H,F
DECF      NUM_L,F
MOVF      NUM_L,W
IORWF    NUM_H,W
BTFSS    STATUS,Z
GOTO     LOOP2

这段程序实现什么呢?

使用特权

评论回复
5
youss| | 2012-11-15 21:44 | 只看该作者
四、指令中方向位的应用
        在PIC单片机的指令系统中,对寄存器的运算或操作指令,一般都有一个d方向位,d=0操作结果存入W,d=1则操作结果存入F寄存器,**0、1时容易出错或混淆,此时可直接用W、F来表示,在标准头文件中已定义MPASM编译器可直接识别,默认时d=1结果存入F寄存器,所以F也可以不写,但编译时将会产生Message[305]消息提示。例:
                SUBWF                byte,W                ; byte减去W  结果放入W
                DECFSZ                DAY1,F                ; DAY1寄存器递减  结果放回(F)DAY1寄存器

使用特权

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

本版积分规则

4

主题

31

帖子

0

粉丝