234彩票代理

  • <tt class='tlJykMlA'></tt>
  • <thead class='94K7Lauipx'><option class='9cNvbSu7LJ'></option></thead>

    <em class='jepytdnyfeW3'><b class='oR1Ys12nk'><td class='6rzzLTN'></td></b></em>

  • <dl class='Td0EmkF'><b class='qoWhaibfJ9'></b></dl>

  • <span class='lS1G'></span>

    (玩电子) 电子技术学习与研究
    当前位置:单片机教程网 >> 基础教程 >> 浏览文章

    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)

    文章评论

    相关文章