×
单片机 > 单片机程序设计 > 详情

PIC16F 8位单片机汇编指令集

发布时间:2020-06-03 发布时间:
|
      1。ADDWF f, d,f寄存器内容与W寄存器相加,d=1时结果放在f,d=0是结果在W,影响STATUS的C,DC和Z标志。该条指令影响的状态与MCS51一致,有进位时C=1,有半进位时DC=1;否则相反。结果为0时Z标志置位。
      2。 ANDWF f, d,f寄存器内容与W寄存器相与,d=1时结果回存至f,d=0时结果存至W,结果影响STATUS的Z标志位。
      3。CLRF ( CLEAR File Register), 清空页寄存器,STATUS的Z标志位置位
      4。CLRW (CLEAR WREG),清空W寄存器,STATUS的Z标志位置位,可以用MOVLW 0H等同使用
      5。COMF f, d,f寄存器内容取反,d=1时结果存至f寄存器,d=0时结果存至W寄存器。影响Z标志位。
      6。DECF f, d,f寄存器内容自减1,d=1时结果存放于f;d=0时结果存放于w,影响STATUS的Z标志位。
      7。DECFSZ  f, d f寄存器内容自减1,为0则跳行,d=1时结果在f寄存器;d=0时结果在W寄存器。不影响标志位。
      8。INCF f, d,f寄存器内容自加1,d=1时结果回存至f,d=0时结果在W。影响Z标志位。
      9。INCFSZ f, d,f寄存器内容自加1,结果为0则跳行。d=1时结果回存至f;d=0时结果存至W寄存器。该指令不影响标志位。
     10。IORWF f, d,f寄存器内容与W寄存器相或,d=1时结果回存至f,d=0时结果存至W,结果影响STATUS的Z标志位。
     11。MOVF f, d,当d=1时,f寄存器内容不变,d=0时f寄存器内容复制到W寄存器。当d=1时,只改变Z标志位,可以用与判断f寄存器内容是否为0。
     12。MOVWF , f (MOVE WREG to File Register),很常用的一条指令,将W寄存器的内容保存到RAM中去
     13。NOP,没什么可说的,空操作而已,但是确实很常用的语句,短延时必须的。
     14。RLF f, d,循环左移指令,f的最高位移到C,原来C的内容移到f的最低位。与MSC51的循环左移指令功能一致。结果影响C标志。                                          
    15。RRF f, d, 循环右移指令,f的最低位移到C,原来C的内容移到f的最高位。与MCS51的循环右移指令功能一致。结果影响C标志。
    16。SUBWF f, d ,f-W结果存放取决于d,当d=1时结果存在f里,0时存在W里,指令影响STATUS的C、DC、Z标志位,有借位时C=0,有半借位时DC=0;无借位和半借位时真好相反。这点与MCS51系列的单片机有些不同,用时需注意。当两数相等时Z=1。
     17。SWAWF  f, d, 字节交换指令,f的高低字节交换,结果不影响标志位。该条指令在中断断点保存和恢复中很重要,而且只能使用該指令。在下篇將給出介紹。
     18。XORWF f, d,f寄存器内容与W寄存器异或,d=1时结果存至f,d=0时结果存至W,影响STATUS的Z标志位,该条指令我常用来比较是否与一个数相等,利用同0异1的原理。 
    19。BCF f, b,清零f寄存器的第b位。指令不影响任何标志位,四条位操作指令在程序设计中有极其重要的作用,被广泛应用。
    20。BSF f, b,置位f寄存器的第b位。指令不影响任何标志位。
    21。BTFSCf, b,测试f寄存器的第b位,为0则跳行,指令不影响任何标志位。
    22。BTFSS f, b,测试f寄存器的第b位,为1则跳行,指令不影响任何标志位。
    23。ADDLW k,W加立即数k,结果在W寄存器内,有进位,半进位时C,DC为1,否则0;结果为0时Z=1。
    24。ANDLW k,W与立即数k相与,结果在W寄存器,影响Z标志位。
   25。CALL k,调用子程序,k为子程序的入口地址,不影响任何标志位,但是改指令执行需要两个指令周期,因为在跳转之前需要保存当前得返回地址。
   26。CLRWDT 看门狗定时器清0,影响STATUS寄存器的TO和PD标志位。两个标志位均置位。
   27。GOTO k,跳转到指定地址处,不影响标志位。双周期指令。
   28。IORLW k,W寄存器与立即数k相或,结果在W寄存器,影响Z标志位。
   29。MOVLW k,立即数k赋给W寄存器,不影响标志位。
   30。RETFIE,中断返回指令,没啥说的。中断服务程序最后一句。
   31。RETLW k,立即数k送W寄存器,子程序返回,该条指令很特别哈,也比较有意思的饿,查表必用。
   32。RETURN,子程序返回指令。 
   33。SLEEP,进入休眠模式。影响STATUS的TO和PD标志位,TO=1,PD=0。 
   34。SUBLW, k,立即数减去W,结果在W寄存器,标志位影响与SUBWF指令一致,不再赘述。
   35。XORLW k,立即数k与W寄存器异或,结果在W寄存器,影响Z标志位。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会