51单片机汇编指令总结.doc

上传人:一*** 文档编号:12572342 上传时间:2022-04-25 格式:DOC 页数:10 大小:24KB
返回 下载 相关 举报
51单片机汇编指令总结.doc_第1页
第1页 / 共10页
51单片机汇编指令总结.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《51单片机汇编指令总结.doc》由会员分享,可在线阅读,更多相关《51单片机汇编指令总结.doc(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、51单片机汇编指令总结51单片机汇编指令总结数据传输指令一.片内RAM数据传输指令1.以累加器A为目的操作数的指令:MOVA,RnMOVA,directMOVA,RiMOVA,#data2.以寄存器Rn为目的操作数的指令:MOVRn,AMOVRn,directMOVRn,data3.以直接地址为目的操作数的指令:MOVdirect,AMOVdirect,RnMOVdirect1,derect2MOVdirect,RiMOVdirect,#data4.间接地址为目的操作数的指令:MOVRi,AMOVRi,directMOVRi,#data5.十六位数据传送指令:MOVDPTR,#data16二.

2、累加器A与片外RAM数据传送指令:MOVXA,RiMOVXA,DPTRMOVXRi,AMOVXDPTR,A三.查表寻址:MOVCA,A+DPTR(先PC(PC)+1,后A(A)+(DPTR)+MOVCA,A+PC(先PC(PC)+1,后A(A)+(PC)四.交换指令:1.字节交换指令:XCHA,RnXCHA,directXCHA,Ri2.半字节交换指令:XCHDA,Ri3.累加器半字节交换指令:SWAPA五.栈操作指令:1.PUSH(入栈指令)PUSHdirect2.POP(出栈指令)POPdirect算术运算指令:一.加法减法指令:1.加法指令:ADDA,RnADDA,directADDA,

3、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减

4、1指令:1.加1指令:INCAA(A)+1INCRnRn(Rn)+1INCdirectdirect(direct)+1INCRi(Ri)(Ri)+1INCDPTRDPTR(DPTR)+12.减1指令:DECADECRnDECdirectDECRi四.十进制调制指令:DAA调整累加器A的内容为BCD码逻辑操作指令:一.逻辑与、或、异或指令:1.逻辑与指令:ANLA,RnANLA,directANLA,RiANLA,#data2.逻辑或这令:ORLA,RnORLA,directORLA,RiORLA,#dataORLdirect,AORLdirect,#data3.逻辑异或指令:XRLA,RnXR

5、LA,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.相对转移(短转移)指令:SJMP

6、rel(带符号的偏移字节数)(PC+2,再加rel赋值给PC)4.间接转移指令:JMPA+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目=源时,程序顺序执行CJ

7、NERi,#data,rel目ORLC,bitORLC,bit三.位清零、置一、取反指令:1.位清零指令:CLRCCLRbit2.位置一指令:SETBCSTEBbi3.位取反指令:CPLCCPLbit这类指令的功能执行的结果不影响标志位,当直接寻址位地址为端口P0P3中的某一位时,具有“读-改-写”的功能。四.位条件转移指令: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+r

8、el赋值给PC,反之顺序往下执行JNBbit,rel先PC+3,判断,若(bit)=0,PC+rel赋值给PC,反之顺序往下执行3.判位变量转移指令:JBCbit,rel先PC+3,判断,若(bit)=0,PC+rel赋值给PC,且bit0,反之顺序往下执行扩展阅读:51单片机汇编指令总结单片机指令功能一览表助记符代码说明MOVA,RnE8EF寄存器AMOVA,directE5dircet直接字节送AMOVA,RiERE7间接RAM送AMOVA,#data74data立即数送AMOVRn,AF8FFA送寄存器MOVRn,dircetA8AFdircet直接字节送寄存器MOVRn,#data78

9、7Fdata立即数送寄存器MOVdircet,AF5dircetA送直接字节MOVdircet,Rn888Fdircet寄存器送直接字节MOVdircet1,dircet285dircet1dircet2直接字节送直接字节MOVdircet,Ro8687间接RAM送直接字节MOVdircet,#data75dircetdata立即数送直接字节MOVRi,AF6F7A送间接RAMMOVRi,#data7677data直接字节送间接RAMMOVRi,#data7677data立即数送间接RAMMOVDPTR,#data1690data15816位常数送数据指针data70MOVCA,A+DPTR9

10、3由(A)+(DPTR)寻址的程序存贮器字节选AMOVCA,A+PC83由(A)+(PC);寻址的程序存贮器字节送AMOVXA,RiE2E3送外部数据(8位地址)送AMOVXA,DPTRE0送外部数据(16位地址)送AMOVXRi,AF2F3A送外部数据(8位地址)MOVXDPTR,AF0A送外部数据(16位地址)PUSHdircetC0dircet直接字节进栈,SP加1POPdircetD0dircet直接字节退栈,SP减1XCHA,RnC8CF交换A和寄存器XCHA,dircetC5dircet交换A和直接字节XCHA,RiC6C7交换A和间接RAMXCHA,RiD6D7交换A和间接RAM

11、的低位SWAPAC算术操作(A的二个半字节交换)ADDA,Rn282F寄存器加到AADDA,dircet25dircet直接字节加到AADDA,Ri2627间接RAM加到AADDA,#data24data立即数加到AADDA,Rn383F寄存器和进位位加到AADDA,dircet35dircet直接字节和进位位加到AADDA,Ri3637间接字节和进位位加到AADDA,data34data立即数和进位位加到AADDA,Rn989FA减去寄存器和进位位ADDA,dircet95dircetA减去直接字节和进位位ADDA,Ri3637间接RAM和进位位加到AADDA,data34data立即数和进

12、位位加到ASUBBA,Rn989FA减去寄存器和进位位SUBBA,dircet95dircetA减去直接字节和进位位SUBBA,Ri9697A减去间接RAM和进位位SUBBA,#data94dataA减去立即数和进位位INCA04A加1INCRn080F寄存器加1INCdircet05dircet直接字节加1INCRi0607间接RAM加1DECA14A减1DECRn181F寄存器减1DECdircet15dircet直接字节减1DECRi1617间接RAM减1INCDPTRA3数据指针加1MULABA4A乘以BDIVAB84A除以BDAAD4A的十进制加法调整逻辑操作ANLA,Rn585F寄

13、存器“与”到AANLA,dircet55dircet直接字节“与”到AANLA,Ri5657间接RAm“与”到AANLA,#data54data立即数“与”到AANLdircetA52dircetA“与”到直接字节ANLdircet,#data53dircetdata立即数“与”到直接字节ORLA,Rn484F寄存器“或”到AORLA,dircet45dircet直接字节“或”到AORLA,Ri4647间接RAM“或”到AORLA,#data44data立即数“或”到AORLdircet,A42dircetA“或”到直接字节ORLdircet,#data43dircetdata立即数“或”到直

14、接字节XRLA,Rn686F寄存器“异或”到AXRLA,dircet65dircet直接字节“异或”到AXRLA,Ri6667间接RAM“异或”到AXRLA,#data64data立即数“异或”到AXRLdircetA62dircetA“异或”到直接字节XRLdircet,#data63dircetdata立即数“异或”到直接字节CLRAE4清零CPLAF4A取反RLA23A左环移RLCA33A通过进位左环移RRA03A右环移RRCA13A通过进位右环移控制程序转移ACALLaddr11*1addr(a7a0)绝对子程序调用LCALLaddr1612addr(158)长子程序调用addr(70

15、)RET22子程序调用返回RETIaddr1132中断调用返回AJMPaddr111addr(a7a6)绝对转移LJMPaddr1602addr(158)长转移addr(70)SJMPrel80rel短转移,相对转移JMPA+DPTR73相对于DPTR间接转移JZrel60relA为零转移JNZrel70relA为零转移CJNEA,dircet,relB5dircetrel直接字节与A比较,不等则转移CJNEA,#data,relB4datarel立即数与A比较,不等则转移CJNEA,Rn,#data,relB8BFdatarel立即数与寄存器比较,不等则转移CJNERi,#data,relB

16、6B7datarel立即数与间接RAM比较,不等则转移DJNZRn,relD8DFrel寄存器减1,不为零则转移DJNZdircet,relB5dircetrel直接字节减1,不为零则转移NOP00空操作*=a10a9a8l=a10a9a80布尔变量操作CLRCC3清零进位CLRbitC2清零直接位SETBCD3置位进位SETBbitD2置位直接位CPLCB3进位取反CPLbitB2直接位取反ANLC,bit82dit直接数“与”到进位ANLC,/bitB0直接位的反“与”到进位ORLC,bit72bit直接位“或”到进位ORLC,/bitA0bit直接位的反“或”到进位MOVC,bitA2b

17、it直接位送进位MOVbit,C92bit进位送直接位JCrel40rel进位位为1转移JNCrel50rel进位位为0转移JBbit,rel20bitrel直接位为1相对转移JNBbit,rel30bitrel直接位为0相对转移JBCbit,rel10bitrel直接位为1相对转移,然后清零该位1.循环移位指令(4条)RLA;累加器A中的内容左移一位RRA;累加器A中的内容右移一位RLCA;累加器A中的内容连同进位位CY左移一位RRCA;累加器A中的内容连同进位位CY右移一位2.累加器半字节交换指令(1条)SWAPA;累加器中的内容高低半字节互换3.求反指令(1条)CPLA;累加器中的内容按

18、位取反4.清零指令(1条)CLRA;0(A),累加器中的内容清05.逻辑与操作指令(6条)ANLA,data;累加器A中的内容和直接地址单元中的内容执行与逻辑操作。结果存在寄存器A中。ANLdata,#data;直接地址单元中的内容和立即数执行与逻辑操作。结果存在直接地址单元中。ANLA,#data;累加器A的内容和立即数执行与逻辑操作。结果存在累加器A中。ANLA,Rn;累加器A的内容和寄存器Rn中的内容执行与逻辑操作。结果存在累加器A中。ANLdata,A;直接地址单元中的内容和累加器A的内容执行与逻辑操作。结果存在直接地址单元中。ANLA,Ri;累加器A的内容和工作寄存器Ri指向的地址单

19、元中的内容执行与逻辑操作。结果存在累加器A中。6.逻辑或操作指令(6条)这组指令的作用是将两个单元中的内容执行逻辑或操作。如果直接地址是I/O地址,则为“读修改写”操作。ORLA,data;累加器A中的内容和直接地址单元中的内容执行逻辑或操作。结果存在寄存器A中。ORLdata,#data;直接地址单元中的内容和立即数执行逻辑或操作。结果存在直接地址单元中。ORLA,#data;累加器A的内容和立即数执行逻辑或操作。结果存在累加器A中。ORLA,Rn;累加器A的内容和寄存器Rn中的内容执行逻辑或操作。结果存在累加器A中。ORLdata,A;直接地址单元中的内容和累加器A的内容执行逻辑或操作。结

20、果存在直接地址单元中。ORLA,Ri;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑或操作。结果存在累加器A中。7.逻辑异或操作指令(6条)XRLA,data;累加器A中的内容和直接地址单元中的内容执行逻辑异或操作。结果存在寄存器A中。XRLdata,#data;直接地址单元中的内容和立即数执行逻辑异或操作。结果存在直接地址单元中。XRLA,#data;累加器A的内容和立即数执行逻辑异或操作。结果存在累加器A中。XRLA,Rn;累加器A的内容和寄存器Rn中的内容执行逻辑异或操作。结果存在累加器A中。XRLdata,A;直接地址单元中的内容和累加器A的内容执行逻辑异或操作。结果存在

21、直接地址单元中。XRLA,Ri;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑异或操作。结果存在累加器A中控制转移类指令分析1.无条件转移指令(4条)LJMPaddr16;addr16(PC),给程序计数器赋予新值(16位地址)AJMPaddr11;(PC)+2(PC),addr11(PC10-0)程序计数器赋予新值(11位地址),(PC15-11)不改变SJMPrel;(PC)+2+rel(PC)当前程序计数器先加上2再加上偏移量给程序计数器赋予新值JMPA+DPTR;(A)+(DPTR)(PC),累加器所指向地址单元的值加上数据指针的值给程序计数器赋予新值2.条件转移指令(8

22、条)JZrel;A=0,(PC)+2+rel(PC),累加器中的内容为0,则转移到偏移量所指向的地址,否则程序往下执行JNZrel;A0,(PC)+2+rel(PC),累加器中的内容不为0,则转移到偏移量所指向的地址,否则程序往下执行CJNEA,data,rel;A(data),(PC)+3+rel(PC),累加器中的内容不等于直接地址单元的内容,则转移到偏移量所指向的地址,否则程序往下执行CJNEA,#data,rel;A#data,(PC)+3+rel(PC),累加器中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行CJNERn,#data,rel;A#data,(PC)+

23、3+rel(PC),工作寄存器Rn中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行CJNERi,#data,rel;A#data,(PC)+3+rel(PC),工作寄存器Ri指向地址单元中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行布尔变量操作指令分析1.位传送指令(2条)MOVC,bit;bitCY,某位数据送CYMOVbit,C;CYbit,CY数据送某位2.位置位复位指令(4条)CLRC;0CY,清CYCLRbit;0bit,清某一位SETBC;1CY,置位CYSETBbit;1bit,置位某一位3.位运算指令(6条)ANLC,bit;(CY)(bit)CYANLC,/bit;(CY)()CYORLC,bit;(CY)(bit)CYORLC,/bit;(CY)()CYCPLC;()CYCPLbit;()bir4.位控制转移指令(5)JCrel;(CY)=1转移,(PC)+2+relPC,否则程序往下执行,(PC)+2PC。JNCrel;(CY)=0转移,(PC)+2+relPC,否则程序往下执行,(PC)+2PC。JBbit,rel;位状态为1转移。JNBbit,rel;位状态为0转移。JBCbit,rel;位状态为1转移,并使该位清“0”。第 10 页 共 10 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 汇报体会

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com