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