公文素材库 首页

51单片机指令总结

时间:2019-05-29 07:17:42 网站:公文素材库

51单片机指令总结

A,Rn,@Rn,dir,#data,@DPTR

1.内部RAM与SFR的传送指令MOVdir为目的操作数:A,Rn,@Ri,dir,#dataA为目的操作数:Rn,@Ri,dir,#dataRn为目的操作数:A,dir,#data@Ri为目的操作数:A,dir,#dataDPTR为目的操作数:#data

2.外部RAM只能与A进行数据传送,只能通过寄存器间接寻址,只有传送类指令,并用MOVX表示MOVXA,@RiMOVXA,@DPTRMOVX@Ri,AMOVX@DPTR,A

3.ROM只能与A进行数据传送,只能通过变址寻址,只有读操作,并用MOVC表示MOVCA,@A+PCMOVCA,@A+DPTR

4.交换指令XCH

只能以A为目的操作数:Rn,@Ri,dir

低半字节交换指令XCHDA,Rn

高、低半字节交换指令SWAPA

5.加减指令ADD,ADDC,SUBB

只能以A为目的操作数:Rn,@Ri,dir,#data

逻辑运算指令ANL,ORL,XRLA为目的操作数:Rn,@Ri,dir,#datadir为目的操作数:A,#data

加1指令INC

目的操作数:A,Rn,@Ri,dir,DPTR

减1指令DEC

目的操作数:A,Rn,@Ri,dir

零转移JZ非零转移JNZ减一非零转移DJNZ目的操作数为Rn或dirCJNE

A为目的操作数:#data、dirRn为目的操作数:#data@Ri为目的操作数:#data

扩展阅读:51单片机汇编指令总结

数据传输指令

一.片内RAM数据传输指令

1.以累加器A为目的操作数的指令:MOVA,RnMOVA,directMOVA,@RiMOVA,#data

2.以寄存器Rn为目的操作数的指令:MOVRn,AMOVRn,directMOVRn,data

3.以直接地址为目的操作数的指令:MOVdirect,AMOVdirect,RnMOVdirect1,derect2MOVdirect,@RiMOVdirect,#data

4.间接地址为目的操作数的指令:MOV@Ri,AMOV@Ri,directMOV@Ri,#data5.十六位数据传送指令:MOVDPTR,#data16

二.累加器A与片外RAM数据传送指令:MOVXA,@RiMOVXA,@DPTRMOVX@Ri,AMOVX@DPTR,A三.查表寻址:MOVCA,@A+DPTR(先PC←(PC)+1,后A←((A)+(DPTR)))+MOVCA,@A+PC(先PC←(PC)+1,后A←((A)+(PC)))四.交换指令:

1.字节交换指令:

XCHA,RnXCHA,directXCHA,@Ri

2.半字节交换指令:XCHDA,@Ri3.累加器半字节交换指令:SWAPA五.栈操作指令:1.PUSH(入栈指令)PUSHdirect2.POP(出栈指令)POPdirect

算术运算指令:

一.加法减法指令:

1.加法指令:

ADDA,RnADDA,directADDA,@RiADDA,#data2.带进位加法指令:

ADDCA,RnA←(A)+(Rn)+CYADDCA,directA←(A)+(direct)+CYADDCA,@RiA←(A)+((Ri))+CYADDCA,#dataA←(A)+(data)+CY3.带借位减法指令:

SUBBA,RnA←(A)-CY-(Rn)SUBBA,directA←(A)-CY-(direct)SUBBA,@RiA←(A)-CY-((Ri))SUBBA,#dataA←(A)-CY-#data二.乘法除法指令:

1.乘法指令:

MULABBA←(A)×(B)高字节放在B中,低字节放在A中2.除法指令:

DIVABA←(A)÷(B)的商,(B)←(A)÷(B)的余数三.加1减1指令:

1.加1指令:

INCAA←(A)+1INCRnRn←(Rn)+1

INCdirectdirect←(direct)+1INC@Ri(Ri)←((Ri))+1INCDPTRDPTR←(DPTR)+12.减1指令:DECADECRnDECdirectDEC@Ri四.十进制调制指令:

DAA调整累加器A的内容为BCD码

逻辑操作指令:

一.逻辑与、或、异或指令:1.逻辑与指令:ANLA,RnANLA,directANLA,@RiANLA,#data2.逻辑或这令:ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#data3.逻辑异或指令:XRLA,RnXRLA,directXRLA,@RiXRLA,#dataXRLdirect,AXRLdirect,#data二.清零、取反指令:1.累加器A清零指令:CRLA2.累加器A取反指令:CPLA

三.循环位移指令:1.累加器A循环左移指令:RLA2.累加器A循环右移指令:RRA3.累加器A连同进位位循环左移指令:RLCA4.累加器A连同进位位循环右移指令:RRCA控制转移指令:

一.无条件转移指令:

1.绝对转移指令:

AJMPaddr11(先PC+2,然后将addr11的低十位传给PC,PC的高六位不变)

2.长转移指令:

LJMPaddr16(用addr16的值替换PC的值)3.相对转移(短转移)指令:

SJMPrel(带符号的偏移字节数)(PC+2,再加rel赋值给PC)4.间接转移指令:

JMP@A+DPTR(A)+(DPTR)→(PC)

二.条件转移指令:

1.累加器判零转移指令:

JZrel先PC+2;后判断,A为0时转移,PC+rel赋值给PC;否则顺序执行

JNZrel先PC+2,后判断,A不为0时转移,PC+rel赋值给PC;否则顺序执

2.比较转移指令:CJNE目的操作数,源操作数,relCJNEA,direct,rel先PC+3传回PC,再比较目的操作数和原操作数CJNEA,#data,rel目>源时,程序转移,PC+rel传回PC且CY=0CJNERn,#data,rel目=源时,程序顺序执行CJNE@Ri,#data,rel目ORLC,bitORLC,bit

三.位清零、置一、取反指令:

1.位清零指令:

CLRCCLRbit2.位置一指令:

SETBCSTEBbi3.位取反指令:

CPLCCPLbit

这类指令的功能执行的结果不影响标志位,当直接寻址位地址为端口P0~P3中的某一位时,具有“读-改-写”的功能。

四.位条件转移指令:

1.位累加器C判断转移指令

JCrel先pc+2后判断,(C)=1时,则PC+rel赋值给PC,反之顺序执行JNCrel先pc+2后判断,(C)=0时,则PC+rel赋值给PC,反之顺序执行2.判位变量转移指令:

JBbit,rel先PC+3,判断,若(bit)=1,PC+rel赋值给PC,反之顺序

往下执行

JNBbit,rel先PC+3,判断,若(bit)=0,PC+rel赋值给PC,反之顺

序往下执行

3.判位变量转移指令:

JBCbit,rel先PC+3,判断,若(bit)=0,PC+rel赋值给PC,且bit

←0,反之顺序往下执行

友情提示:本文中关于《51单片机指令总结》给出的范例仅供您参考拓展思维使用,51单片机指令总结:该篇文章建议您自主创作。

  来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


51单片机指令总结
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/673065.html
相关阅读
最近更新
推荐专题