51单片机汇编指令集(附记忆方法)_第1页
51单片机汇编指令集(附记忆方法)_第2页
51单片机汇编指令集(附记忆方法)_第3页
51单片机汇编指令集(附记忆方法)_第4页
51单片机汇编指令集(附记忆方法)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、51单片机汇编指令集一、数据传送类指令(7种助记符)MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;MOVC(MoveCode)读取程序存储器数据表格的数据传送;MOVX(MoveExternalRAM)对外部RAM的数据传送;XCH(Exchange)字节交换;XCHD(Exchangelow-orderDigit)低半字节交换;PUSH(PushontoStack)入栈;POP(PopfromStack)出栈;二、算术运算类指令(8种助记符)ADD(Addition)加法;ADDC(AddwithCarry)带进位加法;SUBB(Subtractwit

2、hBorrow)带借位减法;DA(DecimalAdjust)十进制调整;INC(Increment)加1;DEC(Decrement)减1;MUL(Multiplication、Multiply)乘法;DIV(Division、Divide)除法;三、逻辑运算类指令(10种助记符)ANL(ANDLogic)逻辑与;ORL(ORLogic)逻辑或;XRL(Exclusive-ORLogic)逻辑异或;CLR(Clear)清零;CPL(Complement)取反;RL(Rotateleft)循环左移;RLC(RotateLeftthroughttheCarryflag)带进位循环左移;RR(Ro

3、tateRight)循环右移;RRC(RotateRightthroughttheCarryflag)带进位循环右移;SWAP(Swap)低4位与高4位交换;四、控制转移类指令(17种助记符)ACALL(AbsolutesubroutineCall)子程序绝对调用;LCALL(LongsubroutineCall)子程序长调用;RET(Returnfromsubroutine)子程序返回;RETI(ReturnfromInterruption)中断返回;SJMP(ShortJump)短转移;AJMP(AbsoluteJump)绝对转移;LJMP(LongJump)长转移;CJNE(Compar

4、eJumpifNotEqual)比较不相等则转移;DJNZ(DecrementJumpifNotZero)减1后不为0则转移;JZ(JumpifZero)结果为0则转移;JNZ(JumpifNotZero)结果不为0则转移;JC(JumpiftheCarryflagisset)有进位则转移;JNC(JumpifNotCarry)无进位则转移;JB(JumpiftheBitisset)位为1则转移;JNB(JumpiftheBitisNotset)位为0则转移;JBC(JumpiftheBitissetandClearthebit)位为1则转移,并清除该位NOP(NoOperation)空操作;

5、五、位操作指令(1种助记符)CLR位清零;SETB(SetBit)位置1。8种常用伪指令1ORG16位地址;此指令用在原程序或数据块的开始,指明此语句后面目标程序或数据块存放的起始地址。2 .标号:DB字节数据项表;将项表中的字节数据存放到从标号开始的连续字节单元中。例如:SEG:DB88H,100,“7”,“C”3 .标号:DW双字节数据项表;定义16位地址表,16地址按低位地址存低位字节,高位地址存高位字节。例如:TAB:DW1234H,7BH4. 名字EQU表达式或名字二表达式;用与给一个表达式赋值或给字符串起名字。之后名字可用做程序地址,数据地址或立即数地址使用。名字必须是一字母开头的

6、字母数字串。例如:COUNT=10或SPACEEQU10H5. 名字DATA直接字节地址;给8位内部RAM单元起个名字,名字必须是一字母开头的字母数字串。同一单元可起多个名字。例如:ERRORDATA80H6. 名字XDATA直接字节地址;给8位外部RAM起个名字,名字规定同DATA伪指令。例如:IO_PORTXDATA0CF04H7. 名字BIT位指令;给一可位寻址的位单元起个名字,规定同DATA伪指令。例如:SWTBIT30H8. 标号:END;指出源程序到此结束,汇编对其后的程序语句不予理睬。源程序只在主程序最后使用一个END。指令集(111条)助记符说明字节周期代码1.数据传送指令(3

7、0条)MOVA,Rn寄存器送A11E8EFMOVA,data直接字节送A21E5MOVA,Ri间接RAM送A11E6-E7MOVA,#data立接数送A2174MOVRn,AA送寄存器11F8-FFMOVRn,data直接数送寄存器22A8-AFMOVRn,#data立即数送寄存器21787FMOVdata,AA送直接字节21F5MOVdata,Rn奇存器送直接字节21888FMOVdata,data直接字节送直接字节3285MOVdata,Ri间接Rn送直接字节2286;87MOVdata,#data立即数送直接字节3275MOVRi,AA送间接Rn12F6;F7MOVRi,data直接字节

8、送间接Rn11A6;A7MOVRi,#data立即数送间接Rn2276;77MOVDPTR,#data1616位常数送数据指针3190MOVC,bit直接位送进位位21A2MOVbit,C进位位送直接位2292MOVCA,A+DPTRA+DPTR寻址程序存贮字节送A3293MOVCA,A+PCA+PC寻址程序存贮字节送A1283MOVXA,Ri外部数据送A(8位地址)12E2;E3MOVXA,DPTR外部数据送A(16位地址)12E0MOVXRi,AA送外部数据(8位地址)12F2;F3MOVXDPTR,AA送外部数据(16位地址)12F0PUSHdata直接字节进栈道,SP加122C0POP

9、data直接字节出栈,SP减122D0XCHA,Rn寄存器与A交换11C8CFXCHA,data直接字节与A父换21C5XCHA,Ri间接Rn与A交换11C6;C7XCHDA,Ri间接Rn与A低半字节父换11D6;D72逻辑运算指令(35条)ANLA,Rn寄存器与到A11585FANLA,data直接字节与到A2155ANLA,Ri间接RAM与到A1156;57ANLA,#data立即数与到A2154ANLdata,AA与到直接字节2152ANLdata,#data立即数与到直接字节3253ANLC,bit直接位与到进位位2282ANLC,/bit直接位的反码与到进位位22B0ORLA,Rn寄

10、存器或到A11484FORLA,data直接字节或到A2145ORLA,Ri间接RAM或到A1146;47ORLA,#data立即数或到A2144ORLdata,AA或到直接字节2142ORLdata,#data立即数或到直接字节3243ORLC,bit直接位或到进位位2272ORLC,/bit直接位的反码或到进位位22A0XRLA,Rn寄存器异或到A11686FXRLA,data直接字节异或到A2165XRLA,Ri间接RAM异或到A1166;67XRLA,#data立即数异或到A2164XRLdata,AA异或到直接字节2162XRLdata,#data立即数异或到直接字节3263SETB

11、C进位位置111D3SETBbit直接位置121D2CLRAA清011E4CLRC进位位清011C3CLRbit直接位清021C2CPLAA求反码11F4CPLC进位位取反11B3CPLbit直接位取反21B2RLAA循环左移一位1123RLCAA带进位左移一位1133RRAA右移一位1103RRCAA带进位右移一位1113SWAPAA半字节父换11C43算术运算指令(24条)ADDA,Rn寄存器加到A11282FADDA,data直接字节加到A2125ADDA,Ri间接RAM加到A1126;27ADDA,#data立即数加到A2124ADDCA,Rn寄存器带进位加到A11383FADDCA,

12、data直接字节带进位加到A2135ADDCA,Ri间接RAM带进位加到A1136;37ADDCA,#data立即数带进位加到A2134SUBBA,Rn从A中减去寄存器和进位11989FSUBBA,data从A中减去直接字节和进位2195SUBBA,Ri从A中减去间接RAM和进位1196;97SUBBA,#data从A中减去立即数和进位2194INCAA加11104INCRn寄存器加111080FINCdata直接字节加12105-6-INCRi间接RAM加11106;07INCDPTR数据指针加112A3DECAA减11114DECRn寄存器减111181FDECdata直接字节减12115

13、DECRi间接RAM减11116;17MULABA乘B14A4DIVABA被B除1484DAAA十进制调整11D44转移指令(22条)AJMPaddr11绝对转移22*1LJMPaddr16长转移3202SJMPrel短转移2280JMPA+DPTR相对于DPTR间接转移1273JZrel若A=0则转移2260JNZrel若AH0则转移2270JCrel若C=1则转移2240JNCrel若CH1则转移2250JBbit,rel若直接位=1则转移3220JNBbit,rel若直接位=0则转移3230JBCbit,rel若直接位=1则转移且清除3210CJNEA,data,rel直接数与A比较,不

14、等转移32B5CJNEA,#data,rel立即数与A比较,不等转移32B4CJNERi,#data,rel立即数与间接RAM比较,不等转移32B6;B7CJNERn,#data,rel立即数与寄存器比较不等转移32B8BFDJNZRn,rel寄存器减1不为0转移22D8DFDJNZdata,rel直接字节减1不为0转移32D5ACALLaddr11绝对子程序调用22*1LCALLaddr16子程序调用3212RET子程序调用返回1222RETI中断程序调用返回1232NOP空操作1100六. 记忆方法MCS51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有廿data、di

15、rect、Rn、Ri等。这里先介绍指令助记符及其相关符号的记忆方法。一、助记符号的记忆方法1表格列举法把44个指令助记符按功能分为五类,每类列表记忆。此处从略,请读者自己总结。2英文还原法单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加强记忆。例如:增量INCIncremect减量DNCDecrement短转移SJMPShortjump长转移LJMPLongjump比较转移CJNEComparejumpnotequality绝对转移AJMPAbsolutejump空操作NOPNooperation交换XCHExchange加法ADDAd

16、dition乘法MULMultiplication除法DIVDivision左环移RLRotateleft进位左环移RLCRotateleftcarry右环移RRRotateright进位右环移RRCRotaterightcarry3功能模块记忆法单片机的44个指令助记符,按所属指令功能可分为五大类,每类又可以按功能相似原则为23组。这样,化整为零,各个击破,实现快速记忆。1)数据传送组。2)加减运算组MOV内部数据传送ADD加法MOVC程序存储器传送ADDC带进位加法MOVX外部数据传送SUBB带进位减法3)逻辑运算组。4)子程序调用组。ANL逻辑与LCALL长调用ORL逻辑或ALALL绝对

17、调用XRL逻辑异或RET子程序返回二、指令的记忆方法1指令操作数的有关符号MCS51的寻址方式共有六种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变址寻址、相对寻址。我们必须掌握其表示的方法。1) 立即数与直接地址。ata表示八位立即数,#data16表示是十六位立即数,data或direct表示直接地址。2) Rn(n=07)、A、B、CY、DPTR寄存器寻址变量。3) R0、R1、DPTR、SP表示寄存器间址变量。4) DPTR+A、PC+A表示变址寻址的变量。5) PC+rel(相对量)表示相对寻址变量。记住指令的助记符,掌握不同寻址方式的指令操作数的表示方法,为我们记忆汇编指令打下

18、了基础。MCS51指令虽多,但按功能可分为五类,其中数据传送类28条,算术运算类24条,逻辑操作类25条,控制转移类17条,布尔位操作类17条。在每类指令里,根据其功能,抓住其源、目的操作数的不同组合,再辅之以下方法,是完全能记住的。我们约定,可能的目的操作数按(廿data/direct/A/Rn/Ri)顺序表示。对于MOV指令,其目的操作数按A、Rn、direct、Ri的顺序书写,则可以记住MOV的15条指令。例如以累加器A为目的操作数,可写出如下4条指令。MOVA,#data/direct/A/Rn/Ri以此类推,写出其它指令。MOVRn,#data/direct/AMOVdirect,#data/direct/A/Rn/RiMOVRi,#data/direct/A2指令图示记忆法图示记忆法是把操作功能相同或相似、但其操作数不同的指令,用图形和箭头将目的、源操作数的关系表示出来的一种记忆方法。例如:由助记符MOV、MOVX、MOVC组成的送数组指令,可以用图1、2帮助记忆。由助记符CJNE形成的四条指令,也可以用图示法表示,如图3。CJNEA,廿data,relCJNEA,direct,relCJNERn,廿data,relCJNERi,廿data,rel另外,对于由(ANL、ORL、ARL)形成的18条逻辑操作指令,有关A的四条环移指令,也可以用图示法表示,请读者自行画

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论