首页专业论文技术应用政策标准解决方案常用资料经验交流教育培训企业技术专家访谈电力期刊
您现在的位置:北极星电力网 > 技术频道 > 专业论文 > 单片机指令汇总

单片机指令汇总

北极星电力网技术频道    作者:3   2007/12/21 16:22:46   

 关键词:  单片机

Rn:表示当前寄存器区的8个工作寄存器R0~R7Ri:表示当前寄存器区的R0或R1,可作地址指针即间址寄存器(i=0或1)@:为间接寄存器或基址寄存器的前缀.Direct:表示8位内部数据存储单元的地址.它可以是内部RAM的单元地址0~127.特殊功能寄存器SFR的地址(128~255)或名称,A:累加器ACC.B:.特殊功能寄存器B,用于MUL和DIV指令中.C:进位位Cy.#data:表示包含在指令中的单字节(8位)立即数.如果用16位进制表示,后缀字母为”H”,数据范围00~0FFH,不得一字母开头;如果用16进制表示无须任何后缀,但必须在0~255之间.#data16:表示包含在指令中的双字节(16位)立即数.Adda16:表示16位的目的地址.用于LCALL和LJMP指令中,目的地址范围是从0000H~FFFFH的整个64KB存储地址空间.Adda11:表示11位的目的地址.用于ACALL和AJMP的指令中,目的地址必须和下一条指令第一个字节同处一页.Rel:表示8位带符号的相对偏移量.用语SJMP和所有的条件转移指令中.偏移量相对于下一条指令的第一个字节计算,在-128~ 127范围内取值.DPTR:为数据指针,可用作16位的地址寄存器./:加在位操作的前面,表示对该位进行非运算.bit:表示内部可寻址位或特殊功能寄存器中的直接寻址位.“(x):寄存器或地址单元中的内容.((x)):有x见解寻址的单元中的内容.<-:表示将箭头右边的内容传送至箭头的左边.$:当前指令的地址.单片机指令系统(一)内部数据传送指令(1)以累加器A为目的的传送指令:MOVA,#data;(A)<-dataMOVA,direct;(A)<-(direct)MOVA,Rn;(A)<-(Rn)MOVA,@Ri;(A)<-((Ri))(2)以通用寄存器Rn为目的的传送指令:MOVRn,A;(Rn)<-(A)MOVRn,direct;(Rn)<(direct)-MOVRn,#data:;(Rn)<-(data)(3)以直接地址为目的的传送指令:MOVdirect,A;(direct)<-(A)MOVdirect,Rn;(direct)<-(Rn)MOVdirect,direct2;(direct)<-(direct2)MOVdirect,@Ri;(direct)<-((Rn))MOVdirect,#data;(direct)<-data(4)以寄存器间接地址为目的的传送指令:MOV@Ri,A;((Ri))<-(A)MOV@Ri,direct;((Ri))<-(direct)MOV@Ri,#data;((Ri))<-data(二)数据指针赋值指令(16位数据传送指令)MOVDPTR,#data16;(三)片外数据传送指令MOVXA,@Ri;(A)<-((Ri))片外MOVXA,@DPTR;(A)<-((DPTR))片外MOVX@Ri,A;((Ri))片外<-(A)MOVX@DPTR,A;((DPTR))片外<-(A)(四)ROM数据访问指令(查表指令)MOVCA,@A DPTR;(A)<-((A) (DPTR))romMOVCA,@A PC;(PC)<-(PC) 1,(A)<-((A) (PC))rom(五)堆栈操作指令PUSHdirect;(SP)<-(SP) 1,(SP)<-(direct)堆栈指针先加1,将数据压入栈顶POPdirect;(direct)<-(SP),(SP)<-(SP)-1将数据从栈顶弹出存入direct,SP再减1(六)数据交换指令(1)整字节(8位)交换指令:XCHA,Rn;A和Rn中的数互换XCHA,direct;A和direct单元中的数互换XCHA,@Ri;A和Ri间址单元中的数互换(2)半字节交换指令:XCHDA,@Ri;A的低4位Ri间接单元的低4位互换,高4位不动(3)累加器高低半字节交换指令:SWAPA,;A的高4位(D7~D4)和低4位(D3~D0)互换(七)加法指令(1)不带Cy加法指令:ADDA,Rn;(A)<-(A) (Rn)ADDA,direct;(A)<-(A) (direct)ADDA,@Ri;(A)<-(A) ((Ri))ADDA,#data;(A)<-(A) data(2)带进位加法指令:ADDCA,Rn;(A)<-(A) Cy (Rn)ADDCA,direct;(A)<-(A) Cy (direct)ADDCA,@Ri;(A)<-(A) Cy ((Ri))ADDCA,#data;(A)<-(A) Cy data(3)加1指令:INCA,;(A)<-(A) 1INCRn;(Rn)<-(Rn) 1INC@Ri;((Ri))<-((Ri)) 1INCdirect;(direct)<-(direct) 1INCDPTR;(FPTR)<-(DPTR) 1(八)减法指令(1)带进位减法指令:SUBBA,Rn;(A)<-(A)-Cy-(Rn)SUBBA,direct;(A)<-(A)-Cy-(direct)SUBBA,@Ri;(A)<-(A)-Cy-((Ri))SUBBA,#data;(A)<-(A)-Cy-data(2)减1指令:DECA;(A)<-(A)-1DECdirect;(direct)<-(durect)-1DECRn;(Rn)<-(Rn)-1DEC@Ri;((Ri))<-((Ri))-1(九)乘除指令(1)乘法指令MULAB;(B)(A)<-(A)*(B)指令功能是把累加器A和特殊功能寄存器B中两个8位无符号整数相乘,并把积的高8位字节存入B寄存器,低8位字节存入累加器A.(2)除法指令DIVAB;A/B,商存入A,余数存入B指令的功能是把累加器A中的8位无符号整数除以寄存器B中的8位无符号整数商的整数部分存入累加器A中,余数保留在B中.(十)十进制调整指令DAA(十一)逻辑运算指令(1)逻辑与运算指令:ANLA,Rn;(A)<-(A)∧(Rn)ANLA,direct;(A)<-(A)∧(direct)ANLA,@Ri;(A)<-(A)∧((Ri))ANLA,#data;(A)<-(A)∧dataANLdirect,A;(direct)<-(A)∧(direct)ANLdirect,#data;(direct<-(direct)∧data(2)逻辑或运算指令:ORLA,Rn;(A)<-(A)∨(Rn)ORLA,direct;(A)<-(A)∨(direct)ORLA,@Ri;(A)<-(A)∨((Ri))ORLA,#data;(A)<-(A)∨dataORLdirect,A;(direct)<-(A)∨(direct)ORLdirect,#data;(direct)<-(direct)∨data(3)逻辑异或运算指令:XRLA,Rn;(A)<-(A)⊙(Rn)XRLA,direct;(A)<-(A)⊙(direct)XRLA,@Ri;(A)<-(A)⊙((Ri))XRLA,#data;(A)<-(A)⊙dataXRLdirect,A;(direct)<-(A)⊙(direct)XRLdirect,#data;(direct)<-(direct)⊙data(4)累加器清0和去反指令CLRA;(A)<-0(累加器清0指令)CLRA;(A)<-(A)(累加器取反指令)(5)累加器移位指令:不带进位Cy循环左移:RLA;Dn 1<-Dn,D0<-D7D7D6D5D4D3D2D1D0不带进位Cy循环右移:RRA:Dn 1->Dn,D0<-D7D7D6D5D4D3D2D1D0带进位Cy循环左移:RLCA;Cy<-D7,Dn 1<-Dn,D0<-CyD7D6D5D4D3D2D1D0带进位Cy循环右移:RRCA;Cy->D7,Dn 1->Dn,D0->Cy(十二)控制转移指令[1]无条件转移指令:(1)长转移指令LJMPaddr16;(PC)<-addr16(2)绝对转移指令AJMPaddr11;(PC)<-(PC) 2,(PC)10~0<-addr11(3)短转移指令SJMPrel;(PC)<-(PC) 2 rel(4)变址寻址转移指令JMP@A DPTR;(PC)<-(A) (DPTR)[2]条件转移指令:(1)累加器判0转移指令:JZrel;如果(A)=0,跳转到目标语句,否则顺序执行JNZrel;如果(A)≠0,跳转到目标语句,否则顺序执行(2)比较转移指令:CJNZA,#data,rel;如果(A)≠data,则跳转到目标语句,否则程序顺序执行CJNZAdirect,rel;如果(A)≠(direct),则跳转到目标语句,否则程序顺序执行CJNZRn#data,rel;如果(A)≠data,则跳转到目标语句,否则程序顺序执行CJNZ@Ri#data,rel;如果(A)≠data,则跳转到目标语句,否则程序顺序执行(3)循环控制转移指令:DJNZRn,rel;(Rn)先减1,如减1后(Rn)≠0,则跳转到目标语句;否则顺序执行DJNZfirect,rel;(direct)先减1,如减1后(direct)≠0,则跳转到目标语句;否则顺序执行(十三)子程序调用和返回指令(1)绝对调用指令:ACALLaddr11(2)长调用指令:LCALLaddr16(3)返回指令:RET子程序返回RETI中断服务程序返回(十四)空操作指令NOP空操作指令是一条特殊指令,单片机在执行该指令时不进行任何操作,只是消耗1个机器周期的时间,所以该指令长用于延时程序.软件陷阱程序等(十五)位操作类指令(1)位传送指令:MOVC,bit;(Cy)<-(bit),bit位的状态不变MOVbit,C;(bit)<-(Cy),Cy位的状态不变(2)位置位和复位指令:SETBC;(Cy)<-1SETBbit;(bit)<-1CLRC;(Cy)<-0CLRbit;(bit)<-0(3)位运算指令:ANLC,bit;(Cy)<-(Cy)∧(bit),Cy位和bit位相与,结果赋给CyANLC,/bit;(Cy)<-(Cy)∧(bit),Cy位和bit位相与,结果赋给CyORLC,bit;(Cy)<-(Cy)∨(bit),Cy位和bit位相或,结果赋给CyORLC,/bit;(Cy)<-(Cy)∨(bit),Cy位和bit位相或,结果赋给CyCPLC;(Cy)<-(Cy),Cy位取反CPLbit;(bit)<-(bit),bit位取反(4)位测试转移指令:(1)以Cy位状态为条件的转移指令JCrel;如果Cy位=1,跳转到目标语句,否则顺序执行JNCrel;如果Cy位=0,跳转到目标语句,否则顺序执行(2)以指定位状态为条件的转移指令:JBbit,rel;如果bit=1,跳转到目标语句,否则顺序执行JNBbit,rel;如果bit=0,跳转到目标语句,否则顺序执行JBCbit,rel;如果bit=1,跳转到目标语句,同时将bit位清0;否则顺序执行

来源:佚名
友情链接
北极星工程招聘网北极星电气招聘网北极星火电招聘网北极星风电招聘网北极星水电招聘网北极星环保招聘网北极星光伏招聘网北极星节能招聘网招标信息分类电子资料百年建筑网PLC编程培训

广告直拨:   媒体合作/投稿:陈女士 13693626116

关于北极星 | 广告服务 | 会员服务 | 媒体报道 | 营销方案 | 成功案例 | 招聘服务 | 加入我们 | 网站地图 | 联系我们 | 排行

京ICP证080169号京ICP备09003304号-2京公网安备11010502034458号电子公告服务专项备案

网络文化经营许可证 [2019] 5229-579号广播电视节目制作经营许可证 (京) 字第13229号出版物经营许可证新出发京批字第直200384号人力资源服务许可证1101052014340号

Copyright © 2022 Bjx.com.cn All Rights Reserved. 北京火山动力网络技术有限公司 版权所有