新聞中心

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

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

作者: 時間:2016-11-19 來源:網(wǎng)絡 收藏
NOP 空操作指令

語法形式:NOP

本文引用地址:http://www.2s4d.com/article/201611/318563.htm

操作數(shù):無

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

執(zhí)行過程:除了消耗一個指令周期之外,無任何其他影響,所以通常被用來作為延時使用

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

說明:指令操作沒有任何操作數(shù)參與,也不影響任何寄存器的內容和狀態(tài),所以通常都是被作為延時使用的。

指令范例:BSF PORTB,0 ;PORTB的第0位輸出高電平(1)

NOP ;延時,使電平穩(wěn)定

MOVWF 將W寄存器的內容傳送到數(shù)據(jù)寄存器

語法形式:MOVWF f

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

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

執(zhí)行過程:把W寄存器的內容傳送到f數(shù)據(jù)寄存器,W寄存器的內容保持不變,類似于Copy

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

說明:該指令是對數(shù)據(jù)寄存器賦值的主要方式

指令范例:

MOVLW 0x55 ;W寄存器賦值

MOVWF Data ;W寄存器值傳送給Data

;此時Data=0x55

CLRW W寄存器內容清0

語法形式:CLRW

操作數(shù):無

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

執(zhí)行過程:0x00→W

1→Z

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

說明:該指令對W寄存器內容清零,并置位0標志Z

另外使用MOVLW 0x00也可以使W寄存器內容為0,但是這條指令不影響0標志Z

指令范例:CLRW ;W=0,Z=1

CLRF 數(shù)據(jù)寄存器內容清零

語法形式:CLRF f

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

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

執(zhí)行過程:0x00→f

1→Z

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

說明:指令對數(shù)據(jù)寄存器清零,并置位0標志Z

指令范例:CLRF TRISB ;端口B所有I/O引腳設為輸出

SUBWF 將數(shù)據(jù)寄存器的內容減去W寄存器內容

語法形式:SUBWF f,d

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

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

當d=f時,結果放在f數(shù)據(jù)寄存器,W寄存器內容不變

當d=W時,結果放在W寄存器中,數(shù)據(jù)寄存器f內容不變

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

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

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

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

當【f】=【W(wǎng)】時,相減的結果為0,則Z=1

當【f】>【W(wǎng)】時,沒有借位發(fā)生,則C=1

當【f】<【W(wǎng)】時,有借位發(fā)生,則C=0

實際上在PIC單片機中這條指令是通過先對W寄存器的內容求補碼,然后與被減數(shù)相加,所以在判斷是否有借位時和其他單片機不同,請注意

指令范例:

MOVLW 0x23 ;W=0x23

MOVWF tmp ;tmp=0x23

MOVLW 0x32 ;W=0x32

SUBWF tmp,W ;tmp-W將結果存入W中,W=0xF1,tmp=0x23

;過程:tmp=0x23,W求補碼為0xCD,所以0x23+0xCD=0xF1,又因tmp



關鍵詞: PIC單片機匯編指

評論


技術專區(qū)

關閉