新聞中心

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

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

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

        語法形式:NOP

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

        操作數:無

        執行時間:一個指令周期

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

        狀態標志影響:無

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

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

        NOP ;延時,使電平穩定

        MOVWF 將W寄存器的內容傳送到數據寄存器

        語法形式:MOVWF f

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

        執行時間:一個指令周期

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

        狀態標志影響:無

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

        指令范例:

        MOVLW 0x55 ;W寄存器賦值

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

        ;此時Data=0x55

        CLRW W寄存器內容清0

        語法形式:CLRW

        操作數:無

        執行時間:一個指令周期

        執行過程:0x00→W

        1→Z

        狀態標志影響:Z

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

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

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

        CLRF 數據寄存器內容清零

        語法形式:CLRF f

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

        執行時間:一個指令周期

        執行過程:0x00→f

        1→Z

        狀態標志影響:Z

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

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

        SUBWF 將數據寄存器的內容減去W寄存器內容

        語法形式:SUBWF f,d

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

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

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

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

        執行時間:一個指令周期

        執行過程:【f】-【W】→d

        狀態標志影響:Z DC C

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

        當【f】=【W】時,相減的結果為0,則Z=1

        當【f】>【W】時,沒有借位發生,則C=1

        當【f】<【W】時,有借位發生,則C=0

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

        指令范例:

        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單片機匯編指

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 茌平县| 浦北县| 棋牌| 湖北省| 晋宁县| 定边县| 广东省| 安丘市| 长春市| 泽库县| 东阿县| 尼勒克县| 金阳县| 龙海市| 溆浦县| 蒙自县| 准格尔旗| 新干县| 桓台县| 南溪县| 额敏县| 论坛| 土默特右旗| 广州市| 台前县| 乐安县| 尤溪县| 阿尔山市| 富川| 资溪县| 乐亭县| 彝良县| 丹江口市| 浮山县| 岚皋县| 虎林市| 嘉禾县| 青川县| 牙克石市| 广水市| 吴旗县|