mcs_51的指令表

  • 格式:doc
  • 大小:234.00 KB
  • 文档页数:4

是信念让能者无疆

1

MCS-51 单片机指令表(共111条指令)

表D.1 8位数据传送指令

表D.2 16位数据的传送类指令

助记符 功能说明 寻址范围 字节数 机器周期

MOV DPTR,#data16 16位立即数地址送入数据指针寄存器 0000H~FFFFH 3 2

表D.3 外部数据传送类指令

助记符 功能说明 寻址范围 字节数 机器周期

MOVX A, @Ri 外部RAM(8位地址)送入累加器 00H~FFH 1 2

@DPTR 外部RAM(16位地址)送入累加器 0000H~FFFFH 1 2

MOVX @Ri, A 累加器送入外部RAM(8位地址) 00H~FFH 1 2

MOVX @DPTR, A 累加器送入外部RAM(16位地址) 0000H~FFFFH 1 2

表D.4 交换和查表指令

助记符 功能说明 寻址范围 字节数 机器周期

SWAP A 累加器高四位与低四位的数据交换 A 1 1

XCHD A,@Ri 间接RAM与累加器进行低半字节交换 (R0~R7) , 00H~FFH 1 1

XCH A, Rn 寄存器与累加器交换 (R0~R7) , 00H~FFH 1 1

Direct 直接地址单元内容与累加器内容交换 00H~FFH 2 1

@Ri 间接RAM内容与累加器内容交换 (R0~R7) , 00H~FFH 1 1

MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入A 0000H~FFFFH 1 2

MOVC A,@A+PC 以PC为基地址变址寻址单元中的数据送入A PC向下00H~FFH 1 2

注:PC←PC+1 , A ←A+PC 助记符 功能说明 寻址范围 字节数 机器周期

MOV A, Rn 寄存器内容送入累加器A R0~R7 1 1

direct 直接地址单元中的数据送入累加器 00H~FFH 2 1

@Ri 间接RAM中的数据送入累加器 (R0~R7) , 00H~FFH 1 1

#data8 8位立即数送入累加器 #00H~#FFH 2 1

MOV Rn, A 累加器内容送入寄存器 R0~R7 1 1

direct 直接地址单元中的数据送入寄存器 00H~FFH 2 2

#data8 8位立即数送入寄存器 #00H~#FFH 2 1

MOV direct, A 累加器内容送入直接地址单元 00H~FFH 2 1

Rn 寄存器内容送入直接地址单元 R0~R7 2 2

direct 直接地址单元中的数据送入直接地址单元 00H~FFH 3 2

@Ri 间接RAM中的数据送入直接地址单元 (R0~R7) , 00H~FFH 2 2

#data8 8位立即数送入直接地址单元 #00H~#FFH 3 2

MOV @Ri A 累加器内容送入间接RAM单元 (R0~R1), 00H~FFH 1 1

Direct 直接地址单元中的数据送入间接RAM单元 (R0~R1), 00H~FFH 2 2

#data8 8位立即数送入间接RAM单元 #00H~#FFH 2 1 是信念让能者无疆

2

表D.5 算术操作类指令

助记符 功能说明 对标志位的影响 字节数 机器周期

C AC OV P

ADD A, Rn 寄存器内容加到累加器 Y Y Y Y 1 1

Direct 直接地址单元内容加到累加器 Y Y Y Y 2 1

@Ri 间接RAM中的内容加到累加器 Y Y Y Y 1 1

#data8 8位立即数加到累加器 Y Y Y Y 2 1

ADDC A, Rn 寄存器内容带进位加到累加器 Y Y Y Y 1 1

direct 直接地址单元内容带进位加到累加器 Y Y Y Y 2 1

@Ri 间接RAM内容带进位加到累加器 Y Y Y Y 1 1

#data8 8位立即数带进位加到累加器 Y Y Y Y 2 1

INC A 累加器内容加1 Y 1 1

Rn 寄存器内容加1 1

1

@Ri 间接RAM内容加1 2 1

direct 直接地址单元中内容加1 1 1

DPTR DPTR加1 1 2

DA A 累加器内容进行十进制转换 Y Y Y Y 1 1

SUBB A, Rn 累加器内容带借减寄存器内容 Y Y Y Y 1 1

direct 累加器内容带借位减直接地址单元 Y Y Y Y 2 1

@Ri 累加器内容带借位减间接RAM内容 Y Y Y Y 1 1

#data8 累加器内容带借位减8位立即数 Y Y Y Y 2 1

DEC A 累加器内容减1 Y 1 1

Rn 寄存器内容减1 1 1

direct 直接地址按单元内容减1 2 1

@Ri 间接RAM 内容减1 1 1

MUL AB A乘以B 0 Y Y 1 4

DIV A除以B 0 Y Y 1 4

表D.6 逻辑运算类指令

助记符 功能说明 寻址范围 字节数 机器周期

CLR A 累加器清零 A 1 1

CPL A 累加器内容求反 A 1 1

ANL A , Rn 累加器内容与寄存器内容相与 (R0~R7) , 00H~FFH 1 1

Direct 累加器内容与直接地址单元内容相与 00H~FFH 2 1

@Ri 累加器内容与间接RAM内容相与 (R0~R7) , 00H~FFH 1 1

#data8 累加器内容与8位立即数相与 #00H~#FFH 2 1

ANL direct, A 直接地址单元内容与累加器相与 00H~FFH 2 1

#data8 直接地址单元内容与8位立即数相与 #00H~#FFH 3 2

ORL A, Rn 累加器内容与寄存器内容相或 (R0~R7) , 00H~FFH 1 1

Direct 累加器内容与直接地址单元内容相或 00H~FFH 2 1

@Ri 累加器内容与间接RAM内容相或 (R0~R7) , 00H~FFH 1 1

#data8 累加器内容与8位立即数相或 #00H~#FFH 2 1

ORL direct, A 直接地址单元内容与累加器相或 00H~FFH 2 1

#data8 直接地址单元内容与8位立即数相或 #00H~#FFH 3 2

是信念让能者无疆

3

续表

助记符 功能说明 寻址范围 字节数 机器周期

XRL A, Rn 累加器内容与寄存器内容相异或 (R0~R7) , 00H~FFH 1 1

Direct 累加器内容与直接地址单元内容相异或 00H~FFH 2 1

@Ri 累加器内容与间接RAM内容相异或 (R0~R7) , 00H~FFH 1 1

#data8 累加器内容与8位立即数相异或 #00H~#FFH 2 1

XRL direct, A 直接地址单元内容与累加器相异或 00H~FFH 2 1

#data8 直接地址单元内容与8位立即数相异或 #00H~#FFH 3 2

表D.7 循环移位类指令

助记符 功能说明 对标志位的影响 字节数 机器周期

C AC OV P

RL A 累加器内容循环左移 1 1

RLC A 累加器内容带进位循环左移 Y Y 1 1

RR A 累加器内容循环右移 1 1

RRC A 累加器内容带进位循环右移 Y Y 1 1

表D.8 转移类指令(无条件转移指令和条件转移指令)

助记符 功能说明 寻址范围 字节数 机器周期

LJMP addr16 长转移 0000H~FFFFH 3 2

AJMP addr11 绝对短转移 0000H~FFFFH 2 2

SJMP addr11 rel 相对转移 80H~7FH 2 2

JMP @A+DPTR 相对于DPTR的间接转移 0000H~FFFFH 1 2

JZ rel 累加器内容为零转移 -80H~7FH 2 2

JNZ rel 累加器内容非零转移 -80H~7FH 2

2

CJNE A, Direct,rel 累加器内容与直接地址内容单元比较,不等则转移 (A)<(direct),则C置1,否则C置0 3 2

#data8,rel 累加器内容与8位立即数比较,不等则转移 (A)

CJNE Rn, #data8,rel 寄存器内容与8位立即数比较,不等则转移 (Rn)

CJNE @Ri, 间接RAM单元内容与8位立即数比较,内容不等则转移 ((Ri))

DJNZ Rn, rel 寄存器内容减1,非零转移 不影响状态标志位 3 2

DJNZ direct 直接地址单元内容减1,非零转移 不影响状态标志位 3 2

表D.9 其他转移类指令(子程序调用和返回指令,空操作指令)

助记符 功能说明 字节数 机器周期

ACALL addr11 绝对短调用子程序 2 2

LCALL addr16 长调用子程序 3 2

RET 子程序返回 1 2

RETI 中断返回 1 2

PUSH direct 直接地址单元中的数据压入堆栈 2 2

POP direct 堆栈中的数据弹出到到直接地址单元 2 2

NOP 空操作 1 1