<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC中檔單片機匯編指令詳解(2)

          PIC中檔單片機匯編指令詳解(2)

          作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
          DECF 數(shù)據(jù)寄存器的內(nèi)容遞減1

          語法形式:DECF f,d

          本文引用地址:http://www.ex-cimer.com/article/201611/318561.htm

          操作數(shù):f為數(shù)據(jù)寄存器的低7位地址(0x00~0x7F)

          d為目的寄存器的低7位地址(0x00~0x7F)

          當(dāng)d=f時,結(jié)果放在f數(shù)據(jù)寄存器,f數(shù)據(jù)寄存器自減1

          當(dāng)d=W時,結(jié)果放在W寄存器中,W寄存器內(nèi)容自減1

          執(zhí)行時間:一個指令周期

          執(zhí)行過程:【f】-1→d

          狀態(tài)標(biāo)志影響:Z

          說明:該指令對數(shù)據(jù)寄存器的內(nèi)容做減1運算。如果減1后的結(jié)果為0,則置位0標(biāo)志寄存器Z

          指令范例:

          CLRF Count ;Count=0x00

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

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

          INCF 數(shù)據(jù)寄存器的內(nèi)容遞增1

          語法形式:INCF f,d

          操作數(shù):f為數(shù)據(jù)寄存器的低7位地址(0x00~0x7F)

          d為目的寄存器的低7位地址(0x00~0x7F)

          當(dāng)d=f時,結(jié)果放在f數(shù)據(jù)寄存器,f數(shù)據(jù)寄存器自增1

          當(dāng)d=W時,結(jié)果放在W寄存器中,W寄存器內(nèi)容自增1

          執(zhí)行時間:一個指令周期

          執(zhí)行過程:【f】+1→d

          狀態(tài)標(biāo)志影響:Z

          說明:該指令對數(shù)據(jù)寄存器的內(nèi)容增加1。如果增加后的結(jié)果為0,則置位0標(biāo)志寄存器Z

          指令范例:

          CLRF Count ;Count=0x00

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

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

          IORWF 數(shù)據(jù)寄存器f和W寄存器做邏輯或操作

          語法形式:IORWF f,d

          操作數(shù):f為數(shù)據(jù)寄存器的低7位地址(0x00~0x7F)

          d為目的寄存器的低7位地址(0x00~0x7F)

          當(dāng)d=f時,結(jié)果放在f數(shù)據(jù)寄存器,W寄存器的內(nèi)容不變

          當(dāng)d=W時,結(jié)果放在W寄存器中,f數(shù)據(jù)寄存器的內(nèi)容不變

          執(zhí)行時間:一個指令周期

          執(zhí)行過程:【f】|【W(wǎng)】→d

          狀態(tài)標(biāo)志影響:Z

          說明:數(shù)據(jù)寄存器內(nèi)容和W寄存器的內(nèi)容邏輯或,結(jié)果按照d的指定位置存放,按照邏輯或有1出1的規(guī)則,使用該命令可以將任意位設(shè)置為1

          指令范例:

          MOVLW b’00001111’ ;將W寄存器的低4位設(shè)置為1

          IORWF PORTB,f ;將PORTB的低4位設(shè)置為1,不影響高4位

          ANDWF 數(shù)據(jù)寄存器f和W寄存器做邏輯與操作

          語法形式:ANDWF f,d

          操作數(shù):f為數(shù)據(jù)寄存器的低7位地址(0x00~0x7F)

          d為目的寄存器的低7位地址(0x00~0x7F)

          當(dāng)d=f時,結(jié)果放在f數(shù)據(jù)寄存器,W寄存器的內(nèi)容不變

          當(dāng)d=W時,結(jié)果放在W寄存器中,f數(shù)據(jù)寄存器的內(nèi)容不變

          執(zhí)行時間:一個指令周期

          執(zhí)行過程:【f】&【W(wǎng)】→d

          狀態(tài)標(biāo)志影響:Z

          說明:數(shù)據(jù)寄存器內(nèi)容和W寄存器的內(nèi)容邏輯與,結(jié)果按照d的指定位置存放。按照邏輯與有0出0的規(guī)則,使用該命令可以將任意位設(shè)置為0。利用其影響標(biāo)志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標(biāo)志寄存器就置1

          ;此指令的操作結(jié)果放在W寄存器中,不會影響原寄存器的值

          XORWF 數(shù)據(jù)寄存器內(nèi)容和W寄存器內(nèi)容做邏輯異或操作

          語法形式:XORWF f,d

          操作數(shù):f為數(shù)據(jù)寄存器的低7位地址(0x00~0x7F)

          d為目的寄存器的低7位地址(0x00~0x7F)

          當(dāng)d=f時,結(jié)果放在f數(shù)據(jù)寄存器,W寄存器的內(nèi)容不變

          當(dāng)d=W時,結(jié)果放在W寄存器中,f數(shù)據(jù)寄存器的內(nèi)容不變

          執(zhí)行時間:一個指令周期

          執(zhí)行過程:【f】^【W(wǎng)】→d

          狀態(tài)標(biāo)志影響:Z

          說明:數(shù)據(jù)寄存器內(nèi)容和W寄存器的內(nèi)容邏輯異或,結(jié)果按照d的指定位置存放。按照邏輯異或的規(guī)則,任何數(shù)(0或1)和1異或,結(jié)果為反碼;任何數(shù)和其本身異或,結(jié)果為0。所以此指令可以把寄存器的任意位數(shù)據(jù)反轉(zhuǎn)(0變1,1變0),或者判斷寄存器的內(nèi)容是否為一特定值。

          指令范例:

          例1:寄存器任意位數(shù)據(jù)反轉(zhuǎn)

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

          XORWF PORTB,f ;PORTB的高6位不變,低2位數(shù)據(jù)反轉(zhuǎn)

          例2:判斷寄存器的內(nèi)容是不是特定值

          MOVLW 0xAA ;W=0xAA(可以是任意值)

          XORWF PORTC,W ;如果PORTC=0xAA,則Z標(biāo)志就為1

          ;此指令的操作結(jié)果放在W寄存器中,不會影響原寄存器的值



          關(guān)鍵詞: PIC中檔單片機匯編指

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();