51单片机汇编指令总结
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,AMOV
X@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单片机汇编指令总结
单片机指令功能一览表助记符代码说明
MOVA,RnE8~EF寄存器A
MOVA,directE5dircet直接字节送AMOVA,@RiER~E7间接RAM送AMOVA,#data74data立即数送AMOVRn,AF8~FFA送寄存器
MOVRn,dircetA8~AFdircet直接字节送寄存器MOVRn,#data78~7Fdata立即数送寄存器MOVdircet,AF5dircetA送直接字节
MOVdircet,Rn88~8Fdircet寄存器送直接字节
MOVdircet1,dircet285dircet1dircet2直接字节送直接字节MOVdircet,@Ro86~87间接RAM送直接字节MOVdircet,#data75dircetdata立即数送直接字节MOV@Ri,AF6~F7A送间接RAM
MOV@Ri,#data76~77data直接字节送间接RAMMOV@Ri,#data76~77data立即数送间接RAMMOVDPTR,#data1690data15~816位常数送数据指针data7~0
MOVCA,@A+DPTR93由((A)+(DPTR))寻址的程序存贮器字节选A
汇编判断指令MOVCA,@A+PC83由((A)+(PC));寻址的程序存贮器字节送AMOVXA,@RiE2~E3送外部数据(8位地址)送AMOVXA,@DPTRE0送外部数据(16位地址)送AMOVX@Ri,AF2~F3A送外部数据(8位地址)MOVX@DPTR,AF0A送外部数据(16位地址)PUSHdircetC0dircet直接字节进栈,SP加1POPdircetD0dircet直接字节退栈,SP减1X
CHA,RnC8~CF交换A和寄存器XCHA,dircetC5dircet交换A和直接字节XCHA,@RiC6~C7交换A和间接RAMXCHA,@RiD6~D7交换A和间接RAM的低位SWAPAC
算术操作(A的二个半字节交换)ADDA,Rn28~2F寄存器加到AADDA,dircet25dircet直接字节加到AADDA,@Ri26~27间接RAM加到AADDA,#data24data立即数加到AADDA,Rn38~3F寄存器和进位位加到AADDA,dircet35dircet直接字节和进位位加到AADDA,@Ri36~37间接字节和进位位加到AADDA,data34data立即数和进位位加到AADDA,Rn98~9FA减去寄存器和进位位ADDA,dircet95dircetA减去直接字节和进位位ADDA,@Ri36~37间接RAM和进位位加到AADDA,data34data立即数和进位位加到ASUBBA,Rn98~9FA减去寄存器和进位位SUBBA,dircet95dircetA减去直接字节和进位位SUBBA,@Ri96~97A减去间接RAM和进位位SUBBA,#data94dataA减去立即数和进位位INCA04A加1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论