您的位置 首页 分销

PIC中档单片机汇编指令详解(2)

DECF数据寄存器的内容递减1语法形式:DECFf,d操作数:f为数据寄存器的低7位地址(0x00~0x7F)d为目的寄存器的低7位地址(0x00~0x7F)…

DECF 数据寄存器的内容递减1

语法方式:DECF f,d

操作数:f为数据寄存器的低7位地址(0x00~0x7F)

d为意图寄存器的低7位地址(0x00~0x7F)

当d=f时,成果放在f数据寄存器,f数据寄存器自减1

当d=W时,成果放在W寄存器中,W寄存器内容自减1

履行时间:一个指令周期

履行进程:【f】-1→d

状况标志影响:Z

阐明:该指令对数据寄存器的内容做减1运算。假如减1后的成果为0,则置位0标志寄存器Z

指令典范:

CLRF Count ;Count=0x00

DECF Count,f ;Count=0x00,f=0xFF

DECF f,W ;f=0xFF,W=0xFE

INCF 数据寄存器的内容递加1

语法方式:INCF f,d

操作数:f为数据寄存器的低7位地址(0x00~0x7F)

d为意图寄存器的低7位地址(0x00~0x7F)

当d=f时,成果放在f数据寄存器,f数据寄存器自增1

当d=W时,成果放在W寄存器中,W寄存器内容自增1

履行时间:一个指令周期

履行进程:【f】+1→d

状况标志影响:Z

阐明:该指令对数据寄存器的内容添加1。假如添加后的成果为0,则置位0标志寄存器Z

指令典范:

CLRF Count ;Count=0x00

INCF Count,f ;Count=0x00,f=0x01

INCF f,W ;f=0x01,W=0x02

IORWF 数据寄存器f和W寄存器做逻辑或操作

语法方式:IORWF f,d

操作数:f为数据寄存器的低7位地址(0x00~0x7F)

d为意图寄存器的低7位地址(0x00~0x7F)

当d=f时,成果放在f数据寄存器,W寄存器的内容不变

当d=W时,成果放在W寄存器中,f数据寄存器的内容不变

履行时间:一个指令周期

履行进程:【f】|【W】→d

状况标志影响:Z

阐明:数据寄存器内容和W寄存器的内容逻辑或,成果依照d的指定方位寄存,依照逻辑或有1出1的规矩,运用该指令能够将恣意位设置为1

指令典范:

MOVLW b’00001111’ ;将W寄存器的低4位设置为1

IORWF PORTB,f ;将PORTB的低4位设置为1,不影响高4位

ANDWF 数据寄存器f和W寄存器做逻辑与操作

语法方式:ANDWF f,d

操作数:f为数据寄存器的低7位地址(0x00~0x7F)

d为意图寄存器的低7位地址(0x00~0x7F)

当d=f时,成果放在f数据寄存器,W寄存器的内容不变

当d=W时,成果放在W寄存器中,f数据寄存器的内容不变

履行时间:一个指令周期

履行进程:【f】&【W】→d

状况标志影响:Z

阐明:数据寄存器内容和W寄存器的内容逻辑与,成果依照d的指定方位寄存。依照逻辑与有0出0的规矩,运用该指令能够将恣意位设置为0。使用其影响标志Z的特性,能够判别寄存器恣意位的组合是否为全0。

指令典范:

例1:寄存器恣意位清零

MOVLW b’00001111’ ;W寄存器高4位清0(取决于0的组合)

ANDWF PORTB,f ;PORTB的高4位清0,低4位坚持不变

例2:判别寄存器恣意位组合是否全0

MOVLW b’00001111’ ;W寄存器的低4方位1(取决于1的组合)

ANDWF PORTC,W ;只需PORTC的低4位全0,则Z标志寄存器就置1

;此指令的操作成果放在W寄存器中,不会影响原寄存器的值

XORWF 数据寄存器内容和W寄存器内容做逻辑异或操作

语法方式:XORWF f,d

操作数:f为数据寄存器的低7位地址(0x00~0x7F)

d为意图寄存器的低7位地址(0x00~0x7F)

当d=f时,成果放在f数据寄存器,W寄存器的内容不变

当d=W时,成果放在W寄存器中,f数据寄存器的内容不变

履行时间:一个指令周期

履行进程:【f】^【W】→d

状况标志影响:Z

阐明:数据寄存器内容和W寄存器的内容逻辑异或,成果依照d的指定方位寄存。依照逻辑异或的规矩,任何数(0或1)和1异或,成果为反码;任何数和其自身异或,成果为0。所以此指令能够把寄存器的恣意位数据回转(0变1,1变0),或许判别寄存器的内容是否为一特定值。

指令典范:

例1:寄存器恣意位数据回转

MOVLW b’00000011’ ;W寄存器低2方位1

XORWF PORTB,f ;PORTB的高6位不变,低2位数据回转

例2:判别寄存器的内容是不是特定值

MOVLW 0xAA ;W=0xAA(能够是恣意值)

XORWF PORTC,W ;假如PORTC=0xAA,则Z标志就为1

;此指令的操作成果放在W寄存器中,不会影响原寄存器的值

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/325900.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部