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

          新聞中心

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

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

          作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
          GOTO 程序無條件跳轉(zhuǎn)到指定的地址

          語法形式:GOTO m

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

          操作數(shù):m為11位立即數(shù)指定的目標(biāo)地址

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

          執(zhí)行過程:

          m→PC【10:0】

          PCLATH【4:3】→PC【12:11】

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

          說明:程序無條件立即強行跳轉(zhuǎn)到目的地址處繼續(xù)執(zhí)行。目的地址由本指令內(nèi)含的11位地址碼和特殊寄存器PCLATH中的【4:3】一起構(gòu)成完整的13位地址。

          指令范例:

          ORG 0x000 ;偽指令指定程序的起始地址

          GOTO Main ;程序跳轉(zhuǎn)到標(biāo)號指定的位置處繼續(xù)執(zhí)行

          MOVLW W寄存器賦立即數(shù)

          語法形式:MOVLW k

          操作數(shù):k為8位立即數(shù)

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

          執(zhí)行過程:k→W

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

          說明:該指令對W寄存器賦一個初值。任何其他數(shù)據(jù)寄存器如果要賦一個立即數(shù)值,必須通過W寄存器傳送。

          指令范例:

          MOVLW 0x55 ;【W(wǎng)】=0x55

          MOVWF Tmp ;【Tmp】=【W(wǎng)】=0x55

          ADDLW W寄存器和8位立即數(shù)相加

          語法形式:ADDLW k

          操作數(shù):k為8位立即數(shù)

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

          執(zhí)行過程:【W(wǎng)】+k→W

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

          說明:W寄存器的值和8位立即數(shù)相加,結(jié)果放入W寄存器內(nèi)

          指令范例:

          MOVLW 0xAA ;W=0xAA

          ADDLW 0x11 ;W=0xAA+0x11=0xBB

          SUBLW 立即數(shù)減去W寄存器

          語法形式:SUBLW k

          操作數(shù):k為8位立即數(shù)

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

          執(zhí)行過程:k-【W(wǎng)】→W

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

          說明:必須注意W寄存器在這條指令中是減數(shù)

          如果k=W,相減結(jié)果為0,則Z=1

          如果k>W,沒有借位發(fā)生,則C=1

          如果k

          PIC單片機內(nèi)部這條減法指令的執(zhí)行是先對W寄存器求補碼,然后和被減數(shù)k相加,所以在判斷是否有借位標(biāo)志時要千萬小心

          指令范例:

          MOVLW 0x23 ;W=0x23

          SUBLW 0x32 ;W=0x32-0x23=0x0f,k>W所以C=1

          IORLW W寄存器和立即數(shù)做邏輯或操作

          語法形式:IORLW k

          操作數(shù):k為8位立即數(shù)

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

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

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

          說明:W寄存器和8位立即數(shù)相或,結(jié)果放入W寄存器內(nèi)。按照邏輯或有1出1的法則,此指令可以把W寄存器的任意位設(shè)置成數(shù)據(jù)1

          指令范例:

          IORLW b‘00001111’ ;W寄存器低4位置1

          ANDLW W寄存器和立即數(shù)做邏輯與操作

          語法形式:ANDLW k

          操作數(shù):k為8位立即數(shù)

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

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

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

          說明:W寄存器和8位立即數(shù)相與,結(jié)果放入W寄存器內(nèi)。按照邏輯與有0出0的法則,可以把W寄存器的任意位置清0

          指令范例:

          ANDLW b‘00001111’ ;W寄存器高4位清0

          XORLW W寄存器和立即數(shù)做邏輯異或操作

          語法形式:XORLW k

          操作數(shù):k為8位立即數(shù)

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

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

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

          說明:W寄存器和8位立即數(shù)異或,結(jié)果放入W寄存器內(nèi)。按照邏輯異或的法則,任何數(shù)和1異或,結(jié)果為其反碼;任何數(shù)和其自身異或,結(jié)果為0。所以該指令可以把W寄存器的任意位數(shù)反轉(zhuǎn),或者判斷W寄存器的內(nèi)容是否為特定值

          指令范例:

          例1:任意數(shù)據(jù)按位取反

          XORLW b‘11111111’ ;取W寄存器8位反碼

          例2:判斷W寄存器內(nèi)容是否為特定值

          XORLW 0x34 ;判斷W=0x34?

          BTFSC STATUS,Z ;W不等于0x34,則跳過下條指令

          GOTO W34 ;W等于0x34,轉(zhuǎn)去執(zhí)行相關(guān)操作



          關(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); })();