资源描述:
《基于51 的汇编指令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2009-08-3114:0551汇编指令大全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
2、”,数据范围00~0FFH,不得一字母开头;如果用16进制表示无须任何后缀,但必须在0~255之间.#data16:表示包含在指令中的双字节(16位)立即数.Adda16:表示16位的目的地址.用于LCALL和LJMP指令中,目的地址范围是从0000H~FFFFH的整个64KB存储地址空间.Adda11:表示11位的目的地址.用于ACALL和AJMP的指令中,目的地址必须和下一条指令第一个字节同处一页.Rel:表示8位带符号的相对偏移量.用语SJMP和所有的条件转移指令中.偏移量相对于下一条指令的第一个字节计
3、算,在-128~+127范围内取值.DPTR:为数据指针,可用作16位的地址寄存器./:加在位操作的前面,表示对该位进行非运算.bit:表示内部可寻址位或特殊功能寄存器中的直接寻址位.“(x):寄存器或地址单元中的内容.((x)):有x见解寻址的单元中的内容.<-:表示将箭头右边的内容传送至箭头的左边.$:当前指令的地址.单片机指令系统(一)内部数据传送指令(1)以累加器A为目的的传送指令:MOVA,#data;(A)<-dataMOVA,direct;(A)<-(direct)MOVA,Rn;(A)<-(R
4、n)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,
5、#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))
6、片外<-(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和
7、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)<-
8、(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))+1INC