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

[复制链接]
4711|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

这段程序实现什么呢?
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

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