<samp id="2irls"><ruby id="2irls"></ruby></samp>
  • <samp id="2irls"><li id="2irls"></li></samp>
      <th id="2irls"><delect id="2irls"></delect></th>

          <th id="2irls"><delect id="2irls"></delect></th>

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

            51單片機指令表

            作者:佚名   來源:本站原創   點擊數:x  更新時間: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)

            文章評論

            相關文章

            香港马会全年资枓大全