第1页MCS—51单片机指令汇总指令名称和助记符十六进制代码指令功能POVACCY字节周期ACAALaddrll(绝对调用指令)01HPC←(PC+1)SP←(SP)+1(SP)←(PC)7—0SP←(SP)+1SP←(PC)15—8PC10--0←addr10--0NNNN22ADDA,Rn(寄存器加指令)28H—2FHA←(A)+(Rn)YYYY11ADDA,direct(直接寻址加指令)25HA←(A)+(direct)YYYY21ADDA,@Ri(间接寻址加指令)26H—2FHA←(A)+((Ri))YYYY11ADDA,#data(立即数加指令)24HA←(A)+dataYYYY21ADDCA,Rn(寄存器带进位加指令)38H—3FHA←(A)+(Rn)+(CY)YYYY11ADDCA,direct(直接寻址带进位加指令)35HA←(A)+(direct)+(CY)YYYY21ADDCA,@Ri(间接寻址带进位加指令)36H—37HA←(A)+((Ri))+(CY)YYYY11ADDCA,#data(立即数带进位加指令)34HA←(A)+data+(CY)YYYY21AJMPaddr11(绝对转移指令)PC←(PC)+2PC10--0←addr11NNNN22ANLA,Rn(寄存器逻辑与指令)58H—5FHA←(A)∩(Rn)YNNN11ANLA,direct(直接寻址逻辑与指令)55HA←(A)∩(direct)YNNN21ANLA,@Ri(间接寻址逻辑与指令)56H—57HA←(A)∩((Ri))NNN11ANLA,#data(立即数逻辑与指令)54HA←(A)∩dataYNNN21ANLdirect,A(累加器逻辑与指令)52HDirect←(A)∩(direct)NNNN21ANLdirect,#data(逻辑与指令)53HDirect←(direct)∩dataNNNN32ANLC,bit(位逻辑与指令)82HCY←(CY)∩(bit)NNNY22ANLC,/bit(位逻辑与指令)B0HCY←(CY)∩(/bit)NNNY22CJNEA,direct,rel(数值比较转移指令)B5H若(A)=(direct),则PC←(PC)+3,CY←0;若(A)(direct),则PC←(PC)+3+rel,CY←0;若CY(direct),则PC←(PC)+3+rel,CY←1NNNN32CJNEA,#data,rel(数值比较转移指令)B4H若(A)=data,则PC←(PC)+3,CY←0;Adata,则PC←(PC)+3+rel,CY←0;若(A)data,则PC←(PC)+3+rel,CY←1NNNN32第2页指令名称和助记符十六进制代码指令功能POVACCY字节周期CJNERn,#data,rel(数值比较转移指令)B8H—BFH若(Rn)=data,则PC←(PC)+3,CY←0,若(Rn)data,则PC←(PC)+3+rel,CY←0;若(Rn)data,则PC←(PC)+3+rel,CY←1NNNN32CJNE@Ri,#data,rel(数值比较转移指令)B6H—B7H若((Ri))=data,则PC←(PC)+3,CY←0;若((Ri))data,则PC=(PC)+3,CY←0;若((Ri))data,则PC←(PC)+3+rel,CY←1NNNN32CLRA(累加器清“0”指令)E4HA←0YNNN11CLRC(进位标志清“0”指令)C3HCY←0NNNY11CLRbit(直接寻址位清“0”指令)C2HBit←0NNNN21CPLA(累加器取反指令)F4HA←(/A)NNNN11CLPC(进位标志取反指令)B3HC←(/C)NNNY11CLPbit(直接寻址位取反指令)B2HBit←(/bit)NNNN21DAA(十进制调整指令)D4H对A中的数据进行十进制调整YNYY11DECA(累加器减1指令)14HA←(A)-1YNNN11DECRn(寄存器减1指令)18H—1FHRn←(Rn)-1NNNN11DECdirect(直接寻址减1指令)15HDirect←(direct)-1NNNN21DEC@Ri(间接寻址减1指令)16H—17H(Ri)←((Ri))-1NNNN11DIVAB(无符号数除指令)84HA←(A)/(B)的商B←(A)/(B)的余数YYYY14DJNZRn,rel(寄存器减1条件转移指令)D8H—DFHRn=(Rn)-1,若(Rn)≠0,则PC←(PC)+2+rel;若(Rn)=0,则PC=(PC)+2NNNN22DJNZdirect,rel(直接寻址单元减1条件转移指令)D5HDirect=(direct)-1若(direct)≠0,则PC←(PC)+3+rel;若(direct)=0则PC←(PC)+3NNNN32INCA(累加器加1指令)04HA=(A)+1YNNN11INCRn(寄存器加1指令)08H—0FHRn←(Rn)+1NNNN11INCdirect(直接寻址单元加1指令)05HDirect←(direct)+1NNNN21INC@Ri(间接寻址单元加1指令)06H—07H(Ri)←((Ri))+1NNNN11INCDPTR(16位数据指针加1指令)A3HDPTR←(DPTR)+1NNNN12JBbit,rel(位条件转移指令)20H若(bit)=1则PC←(PC)+3+rel;若(bit)≠1则PC←(PC)+3NNNN32第3页指令名称和助记符十六进制代码指令功能POVACCY字节周期JBCbit,rel(位条件转移清0指令)10H若(bit)=1则PC←(PC)+3+rel,bit←0;若(bit)≠1则PC←(PC)+3NNNN32JCrel(累加位条件转移指令)40H若(C)=1则PC←(PC)+2+rel;若(C)≠1则PC←(PC)+2NNNN22JMP@A+DPTR(无条件间接转移指令)73HPC←(PC)+(DPTR)NNNN12JNBbit,rel(位条件转移指令)30H若(bit)=0则PC←(PC)+3+rel;若(bit)≠0则PC←(PC)+3NNNN32JNCrel(累加器条件转移指令)50H若(C)=0则PC←(PC)+2+rel;若(C)≠0则PC←(PC)+2NNNN22JNZrel(判0转移指令)70H若(A)≠0则PC←(PC)+2+rel;若(A)=0则PC←(PC)+2NNNN22JZrel(判0转移指令)60H若(A)=0则PC←(PC)+2+rel;若(A)≠0则PC←(PC)+2NNNN22LCALLaddr16(长调用指令)12HPC←(PC+3)SP←(SP)+1(SP)←(PC)7—0SP←(SP)+1SP←(PC)15—8PC←addr16NNNN32LJMPaddr16(长转移指令)02HPC←addr16NNNN32MOVA,Rn(寄存器数据传送指令)E8H—EFHA←(Rn)YNNN11MOVA,dirrect(直接寻址数据传送指令)E5HA←(dirrect)YNNN21MOVA,@Ri(间接寻址数据传送指令)E6H—E7HA←((Ri))YNNN11MOVA,#data(立即数据传送指令)74HA←dataYNNN21MOVRn,A(累加器数据传送指令)F8H—FFHRn←(A)NNNN11MOVRn,direct(直接寻址数据传送指令)A8F—AFHRn←(direct)NNNN22MOVRn,#data(立即数据传送指令)78H—7FHA←dataNNNN21MOVdirect,A(累加器数据传送指令)F5HDirect←(A)NNNN21MOVdirect,Rn(寄存器数据传送指令)88H—8FHDirect←(Rn)NNNN22MOVdirect2,dirrect1(直接寻址85HDirect2←(dirrect1)NNNN32第4页数据传送指令)指令名称和助记符十六进制代码指令功能POVACCY字节周期MOVdirect,@Ri(间接寻址数据传送指令)86H—87HDirect←(Ri)NNNN22MOVdirect,#data(立即数据传送指令)75HDirect←dataNNNN32MOV@Ri,A(累加器数据传送指令)F6H—F7H(Ri)←(A)NNNN11MOV@Ri,dirrect(直接寻址数据传送指令)A6H—A7H(Ri)←(dirrect)NNNN22MOV@Ri,data(立即数据传送指令)76H—77H(Ri)←dataNNNN21MOVC,bit(位数据传送指令)A2HC←(bit)NNNY21MOVbit,C(累加位数据传送指令)92HBit←(C)NNNN22MOVDPTR,#data16(十六位数据传送指令)90HDPH←data15—8DPL←data7--0NNNN32MOVCA,@A+DPTR(程序存储器读指令)93HA←((A)+(DPTR))YNNN12MOVCA,@+PC(程序存储器读指令)83HA←((A)+(PC))YNNN12MOVXA,@Ri(寄存器间接寻址外部RAM读指令)E2H—E3HA←((Ri))YNNN12MOVXA,@DPTR(数据指针间接寻址外部RAM读指令)E0HA←((DPTR))YNNN12MOVX@Ri,A(寄存器间接寻址外部RAM读指令)F2H—F3H(Ri)←(A)NNNN12MOVX@DPTR,A(数据指针间接寻址外部RAM读指令)F0H(DPTR)←(A)NNNN12MULAB(乘指令)A4HAB←(A)×(B)YYNY14NOP(空指令)00HPC←(PC)+1NNNN11ORLA,Rn(逻辑或指令)48H—4FHA←(A)∪(Rn)YNNN11ORLA,dirrect(逻辑或指令)45HA←(A)∪(dirrect)YNNN21ORLA,@Ri(逻辑或指令)46H—47HA←(A)∪((Ri))YNNN11ORLA,#data(逻辑或指令)44HA←(A)∪dataYNNN21OLRdirrect,A(逻辑或指令)42Hdirrect←(dirrect)∪(A)NNNN21OLRdirrect,#data(逻辑或指令)43Hdirrect←(dirrect)∪dataNNNN32OLRC,bit(位逻辑或指令)72HC←(C)∪(bit)NNNY22OLRC,/bit(位逻辑或指令)A0HC←(C)∪(/bit)NNNY22POPdirect(出栈指令)D0HDdirect←(SP)SP←(SP)-1NNNN22PUSHdirect(进栈指令)C0HSP←(SP)+1(SP)←DdirectNNNN22RET(子程序返回指令)22HPC15--8←((SP))SP←(SP)-1PC7--0←((SP))NNNN12第5页SP←(SP)-1指令名称和助记符十六进制代码指令功能POVACCY字节周期RETI(中断返回指令)32HPC15--8←((SP))SP←(SP)-1PC7--0←((SP))SP←(SP)-1NNNN12RLA(循环左移指令)23HAn+1←(An)A0←(A7)NNNN11RLCA(带进位循环左移指令)33HAn+1←(An)A0←(C)C←(A7)YNNY11RRA(循环右移)03HAn←(An+1)A7←(A0)NNNN11RRCA(带进位循环右移指令)13HAn←(An+1)A7←(C)C←(A0)YNNY11SETBC(进位标志置位指令)D3HC←1NNNY11SETBbit(直接寻址位置位指令)D2HBit←1NNNN21SJMPrel(短转移指令)80HPC←(PC)+2PC←(PC)+relNNNN22SUBBA,Rn(寄存器寻址带进位减指令)98H—9FHA←(A)-(Rn)-(C)YYYY11SUBBA,direct(直接寻址带进位减指令)95HA←(A)-(direct)-(C)YYYY21SUBBA,@Ri(间接寻址带进位减指令