<em id="aeask"></em>

  • <span id="aeask"></span>

  • <tbody id="aeask"><noscript id="aeask"></noscript></tbody>
    <th id="aeask"><p id="aeask"></p></th>

      <th id="aeask"><pre id="aeask"><video id="aeask"></video></pre></th>

        專注電子技術學習與研究
        當前位置:單片機教程網 >> 基礎教程 >> 瀏覽文章

        51單片機指令表

        作者:佚名   來源:本站原創   點擊數:  更新時間:2011年10月02日   【字體:

        此表主要是為了方便大家查閱每條指令的作用,寫法以及字節數和周期數,建議大家保存為書簽。

        助記符
        指令說明
        字節數
        周期數
        (數據傳遞類指令)
        MOV
        A,Rn
        寄存器傳送到累加器
        1
        1
        MOV
        A,direct
        直接地址傳送到累加器
        2
        1
        MOV
        A,@Ri
        累加器傳送到外部RAM(8 地址)
        1
        1
        MOV
        A,#data
        立即數傳送到累加器
        2
        1
        MOV
        Rn,A
        累加器傳送到寄存器
        1
        1
        MOV
        Rn,direct
        直接地址傳送到寄存器
        2
        2
        MOV
        Rn,#data
        累加器傳送到直接地址
        2
        1
        MOV
        direct,Rn
        寄存器傳送到直接地址
        2
        1
        MOV
        direct,direct
        直接地址傳送到直接地址
        3
        2
        MOV
        direct,A
        累加器傳送到直接地址
        2
        1
        MOV
        direct,@Ri
        間接RAM 傳送到直接地址
        2
        2
        MOV
        direct,#data
        立即數傳送到直接地址
        3
        2
        MOV
        @Ri,A
        直接地址傳送到直接地址
        1
        2
        MOV
        @Ri,direct
        直接地址傳送到間接RAM
        2
        1
        MOV
        @Ri,#data
        立即數傳送到間接RAM
        2
        2
        MOV
        DPTR,#data16
        16 位常數加載到數據指針
        3
        1
        MOVC
        A,@A+DPTR
        代碼字節傳送到累加器
        1
        2
        MOVC
        A,@A+PC
        代碼字節傳送到累加器
        1
        2
        MOVX
        A,@Ri
        外部RAM(8 地址)傳送到累加器
        1
        2
        MOVX
        A,@DPTR
        外部RAM(16 地址)傳送到累加器
        1
        2
        MOVX
        @Ri,A
        累加器傳送到外部RAM(8 地址)
        1
        2
        MOVX
        @DPTR,A
        累加器傳送到外部RAM(16 地址)
        1
        2
        PUSH
        direct
        直接地址壓入堆棧
        2
        2
        POP
        direct
        直接地址彈出堆棧
        2
        2
        XCH
        A,Rn
        寄存器和累加器交換
        1
        1
        XCH
        A, direct
        直接地址和累加器交換
        2
        1
        XCH
        A, @Ri
        間接RAM 和累加器交換
        1
        1
        XCHD
        A, @Ri
        間接RAM 和累加器交換低4 位字節
        1
        1
        (算術運算類指令)
        INC
        A
        累加器加1
        1
        1
        INC
        Rn
        寄存器加1
        1
        1
        INC
        direct
        直接地址加1
        2
        1
        INC
        @Ri
        間接RAM 加1
        1
        1
        INC
        DPTR
        數據指針加1
        1
        2
        DEC
        A
        累加器減1
        1
        1
        DEC
        Rn
        寄存器減1
        1
        1
        DEC
        direct
        直接地址減1
        2
        2
        DEC
        @Ri
        間接RAM 減1
        1
        1
        MUL
        AB
        累加器和B 寄存器相乘
        1
        4
        DIV
        AB
        累加器除以B 寄存器
        1
        4
        DA
        A
        累加器十進制調整
        1
        1
        ADD
        A,Rn
        寄存器與累加器求和
        1
        1
        ADD
        A,direct
        直接地址與累加器求和
        2
        1
        ADD
        A,@Ri
        間接RAM 與累加器求和
        1
        1
        ADD
        A,#data
        立即數與累加器求和
        2
        1
        ADDC
        A,Rn
        寄存器與累加器求和(帶進位)
        1
        1
        ADDC
        A,direct
        直接地址與累加器求和(帶進位)
        2
        1
        ADDC
        A,@Ri
        間接RAM 與累加器求和(帶進位)
        1
        1
        ADDC
        A,#data
        立即數與累加器求和(帶進位)
        2
        1
        SUBB
        A,Rn
        累加器減去寄存器(帶借位)
        1
        1
        SUBB
        A,direct
        累加器減去直接地址(帶借位)
        2
        1
        SUBB
        A,@Ri
        累加器減去間接RAM(帶借位)
        1
        1
        SUBB
        A,#data
        累加器減去立即數(帶借位)
        2
        1
        (邏輯運算類指令)
        ANL
        A,Rn
        寄存器“與”到累加器
        1
        1
        ANL
        A,direct
        直接地址“與”到累加器
        2
        1
        ANL
        A,@Ri
        間接RAM“與”到累加器
        1
        1
        ANL
        A,#data
        立即數“與”到累加器
        2
        1
        ANL
        direct,A
        累加器“與”到直接地址
        2
        1
        ANL
        direct, #data
        立即數“與”到直接地址
        3
        2
        ORL
        A,Rn
        寄存器“或”到累加器
        1
        2
        ORL
        A,direct
        直接地址“或”到累加器
        2
        1
        ORL
        A,@Ri
        間接RAM“或”到累加器
        1
        1
        ORL
        A,#data
        立即數“或”到累加器
        2
        1
        ORL
        direct,A
        累加器“或”到直接地址
        2
        1
        ORL
        direct, #data
        立即數“或”到直接地址
        3
        1
        XRL
        A,Rn
        寄存器“異或”到累加器
        1
        2
        XRL
        A,direct
        直接地址“異或”到累加器
        2
        1
        XRL
        A,@Ri
        間接RAM“異或”到累加器
        1
        1
        XRL
        A,#data
        立即數“異或”到累加器
        2
        1
        XRL
        direct,A
        累加器“異或”到直接地址
        2
        1
        XRL
        direct, #data
        立即數“異或”到直接地址
        3
        1
        CLR
        A
        累加器清零
        1
        2
        CPL
        A
        累加器求反
        1
        1
        RL
        A
        累加器循環左移
        1
        1
        RLC
        A
        帶進位累加器循環左移
        1
        1
        RR
        A
        累加器循環右移
        1
        1
        RRC
        A
        帶進位累加器循環右移
        1
        1
        SWAP
        A
        累加器高、低4 位交換
        1
        1
        (控制轉移類指令)
         
        JMP
        @A+DPTR
        相對DPTR 的無條件間接轉移
        1
        2
        JZ
        rel
        累加器為0 則轉移
        2
        2
        JNZ
        rel
        累加器為1 則轉移
        2
        2
        CJNE
        A,direct,rel
        比較直接地址和累加器,不相等轉移
        3
        2
        CJNE
        A,#data,rel
        比較立即數和累加器,不相等轉移
        3
        2
        CJNE
        Rn,#data,rel
        比較寄存器和立即數,不相等轉移
        2
        2
        CJNE
        @Ri,#data,rel
        比較立即數和間接RAM,不相等轉移
        3
        2
        DJNZ
        Rn,rel
        寄存器減1,不為0 則轉移
        3
        2
        DJNZ
        direct,rel
        直接地址減1,不為0 則轉移
        3
        2
        NOP
         
        空操作,用于短暫延時
        1
        1
        ACALL
        add11
        絕對調用子程序
        2
        2
        LCALL
        add16
        長調用子程序
        3
        2
        RET
         
        從子程序返回
        1
        2
        RETI
         
        從中斷服務子程序返回
        1
        2
        AJMP
        add11
        無條件絕對轉移
        2
        2
        LJMP
        add16
        無條件長轉移
        3
        2
        SJMP
        rel
        無條件相對轉移
        2
        2
        (布爾指令)
         
        CLR
        C
        清進位位
        1
        1
        CLR
        bit
        清直接尋址位
        2
        1
        SETB
        C
        置位進位位
        1
        1
        SETB
        bit
        置位直接尋址位
        2
        1
        CPL
        C
        取反進位位
        1
        1
        CPL
        bit
        取反直接尋址位
        2
        1
        ANL
        C,bit
        直接尋址位“與”到進位位
        2
        2
        ANL
        C,/bit
        直接尋址位的反碼“與”到進位位
        2
        2
        ORL
        C,bit
        直接尋址位“或”到進位位
        2
        2
        ORL
        C,/bit
        直接尋址位的反碼“或”到進位位
        2
        2
        MOV
        C,bit
        直接尋址位傳送到進位位
        2
        1
        MOV
        bit, C
        進位位位傳送到直接尋址
        2
        2
        JC
        rel
        如果進位位為1 則轉移
        2
        2
        JNC
        rel
        如果進位位為0 則轉移
        2
        2
        JB
        bit,rel
        如果直接尋址位為1 則轉移
        3
        2
        JNB
        bit,rel
        如果直接尋址位為0 則轉移
        3
        2
        JBC
        bit,rel
        直接尋址位為1 則轉移并清除該位
        2
        2

         

         

         

        (偽指令)
        ORG
        指明程序的開始位置
         
        DB
        定義數據表
         
        DW
        定義16 位的地址表
         
        EQU
        給一個表達式或一個字符串起名
         
        DATA
        給一個8 位的內部RAM 起名
         
        XDATA
        給一個8 位的外部RAM 起名
         
        BIT
        給一個可位尋址的位單元起名
         
        END
        指出源程序到此為止
         

         

        (指令中的符號標識)
        Rn
        工作寄存器R0-R7
        Ri
        工作寄存器R0 和R1
        @Ri
        間接尋址的8 位RAM 單元地址(00H-FFH)
        #data8
        8 位常數
        #data16
        16 位常數
        addr16
        16 位目標地址,能轉移或調用到64KROM 的任何地方
        addr11
        11 位目標地址,在下條指令的2K 范圍內轉移或調用
        Rel
        8 位偏移量,用于SJMP 和所有條件轉移指令,范圍-128~+127
        Bit
        片內RAM 中的可尋址位和SFR 的可尋址位
        Direct
        直接地址,范圍片內RAM 單元(00H-7FH)和80H-FFH
        $
        指本條指令的起始位置
        關閉窗口
        上一篇:Keil教程(1)

        相關文章

        北京匀瞬国际贸易有限公司