<var id="bqzzv"><rp id="bqzzv"></rp></var>

    <i id="bqzzv"></i>

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

    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)

    文章評論

    相關文章

    免费完整版小说