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

下载本文档

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

文档简介

1、-1 -51单片机汇编指令集、数据传送类指令(7种助记符)M0(英文为Move :对内部数据寄存器RAM和特殊功能寄存器SFF的数据进行 传送;MOVQMove Code)读取程序存储器数据表格的数据传送;MOVX (Move External RAM) 对外部 RAM勺数据传送;XCH (Exchange)字节交换;XCHD (Excha nge low-order Digit)低半字节交换;PUSH (Push onto Stack) 入栈;POP (Pop from Stack) 出栈;二、算术运算类指令(8种助记符)ADD(Additi on)加法;ADDC(Add with Carr

2、y) 带进位加法;SUBB(Subtract with Borrow)带借位减法;DA(Decimal Adjust)十进制调整;INC(I ncreme nt)力卩 1 ;DEC(Decreme nt)减 1 ;MUL(Multiplication 、Multiply)乘法;DIV(Division 、Divide)除法; 三、逻辑运算类指令(10种助记符)ANL(AND Logic)逻辑与;ORL(OR Logic)逻辑或;XRL(Exclusive-OR Logic)逻辑异或; CLR(Clear)清零;CPL(Compleme nt)取反;RL(Rotate left)循环左移;带进位

3、循环左移;带进位循环右移;RLC(Rotate Left throught the Carry flag)RR(Rotate Right)循环右移;RRC (Rotate Right throught the Carry flag) SWAP (Swap)低4位与高4位交换;四、控制转移类指令(17种助记符)ACALL( Absolute subrout ine Call)子程序绝对调用;LCALL (Long subrout ine Call)子程序长调用;RET (Retur n from subrout ine)子程序返回;RETI (Return from Interruption)中

4、断返回;SJMP( Short Jump )短转移;AJMP(Absolute Jump )绝对转移;LJMP( Long Jump)长转移;CJNE (Compare Jump if Not Equal) 比较不相等则转移;DJNZ (Decreme nt Jump if Not Zero)减1后不为0则转移;JZ (Jump if Zero)结果为0则转移;JNZ (Jump if Not Zero) 结果不为0则转移;JC (Jump if the Carry flag is set)有进位则转移;JNC (Jump if Not Carry)无进位则转移;JB (Jump if the

5、 Bit is set)位为1则转移;JNB (Jump if the Bit is Not set)位为0则转移;JBC(Jumpif the Bit is set and Clear the bit) 位为1则转移,并清除该位; NOP (No Operatio n)空操作;五、位操作指令(1种助记符)CLR位清零;SETB(Set Bit) 位置1 。8种常用伪指令1. ORG 16位地址;此指令用在原程序或数据块的开始,指明此语句后面目标程序或数据块存放 的起始地址。2. 标号:DB字节数据项表;将项表中的字节数据存放到从标号开始的连续字节单元中。例如:SEG DB88H, 100,“

6、 7”,“ C”3. 标号:DW 双字节数据项表;定义16位地址表,16地址按低位地址存低位字节,高位地址存高位字节。例如:TAB DW 1234H, 7BH4 .名字EQU表达式 或名字二表达式;用与给一个表达式赋值或给字符串起名字。之后名字可用做程序地址,数据地址或立即数地址使用。名字必须是一字母开头的字母数字串。例如:COUNT=1(或 SPACE EQU 10H5 .名字DATA直接字节地址;给8位内部RAM单元起个名字,名字必须是一字母开头的字母数字串。 同一 单元可起多个名字。例如:ERROR DATA 80H6 .名字XDATA直接字节地址;给8位外部RAM起个名字,名字规定同D

7、ATA伪指令。例如:IO_PORT XDATA 0CF04H7 .名字BIT位指令;给一可位寻址的位单元起个名字,规定同 DATA伪指令。例如:SWT BIT 30H8.标号:END;指出源程序到此结束,汇编对其后的程序语句不予理睬。源程序只在主程序 最后使用一个END。指令集(111条)助记符说明字节周期代码1.数据传送指令(30条)MOV A,R n寄存器送A11E8-EFMOV A,data直接字节送A21E5MOV A,Ri间接RAM送A11E6-E7 :MOV A,#data立接数送A2174MOV Rn ,AA送奇存器11F8-FFMOV Rn ,data直接数送奇存器22A8-A

8、F :MOV Rn, #data立即数送寄存器2178-7FMOV data,AA送直接字节21F5MOV data,R n寄存器送直接字节21888F :MOV data,data直接字节送直接字节3285MOV data,Ri间接Rn送直接字节2286;87MOV data,#data立即数送直接字节3275MOV Ri,AA送间接Rn12F6;F7MOV Ri,data直接字节送间接Rn11A6;A7MOV Ri,#data立即数送间接Rn2276;77MOV DPTR,#data1616位常数送数据指针3190MOV C,bit直接位送进位位21A2MOV bit,C进位位送直接位22

9、92MOVC A,A+DPTRA+DPTF寻址程序存贮字节送A3293MOVC A,A+PCA+PC寻址程序存贮字节送A1283MOVX A,Ri外部数据送A (8位地址)12E2;E3MOVX A,DPTR外部数据送A (16位地址)12E0 MOVX Ri,AA送外部数据(8位地址)12F2;F3MOVX DPTR,AA送外部数据(16位地址)12F0PUSH data直接字节进栈道,SP加122C0:POP data直接字节出栈,SP减122D0XCH A,R n奇存器与A交换11C8- CFXCH A,data直接字节与A交换21C5:XCH A,Ri间接Rn与A交换11C6;C7 :

10、XCHD A,Ri间接Rn与A低半字节交换11D6;D72.逻辑运算指令(35条)ANL A,R n寄存器与到A1158 5FANL A,data直接字节与到A2155ANL A,Ri间接RAM与至U A1156;57ANL A,#data立即数与到A2154ANL data,AA与到直接字节2152ANL data,#data立即数与到直接字节3253ANL C,bit直接位与到进位位2282 ANL C,/bit直接位的反码与到进位位22B0ORL A,R n寄存器或到A11484FORL A,data直接字节或到A2145ORL A,Ri间接RAM或至U A1146;47ORL A,#d

11、ata立即数或到A2144ORL data,AA或到直接字节2142:ORL data,#data立即数或到直接字节3243ORL C,bit直接位或到进位位2272ORL C,/bit直接位的反码或到进位位22A0 :XRL A,R n寄存器异或到A11686FXRL A,data直接字节异或到A2165XRL A,Ri间接RAM异或到A1166;67XRL A,#data立即数异或到A2164XRL data,AA异或到直接字节2162XRL data,#data立即数异或到直接字节3263:SETB C进位位置111D3SETB bit直接位置121D2CLR AA清011E4 CLR

12、C进位位清011C3CLR bit直接位清021C2CPL AA求反码11F4 CPL C进位位取反11B3CPL bit直接位取反21B2RL AA循环左移一位1123:RLC AA带进位左移一位1133RR AA右移一位1103RRC AA带进位右移一位11131SWAP AA半字节交换11C43.算术运算指令(24条)ADD A,R n寄存器加到A1128 2FADD A,data直接字节加到A2125ADD A,Ri间接RAM加到A1126;27ADD A,#data立即数加到A2124:ADDC A,R n奇存器带进位加到A1138 3F :ADDC A,data直接字节带进位加到A

13、2135ADDC A,Ri间接RAM带进位加到A1136;37 :ADDC A,#data立即数带进位加到A2134SUBB A,R n从A中减去寄存器和进位1198 9FSUBB A,data从A中减去直接字节和进位2195SUBB A,Ri从A中减去间接RAM和进位1196;97SUBB A,#data从A中减去立即数和进位2194INC AA加11104INC Rn寄存器加11108 0FINC data直接字节加12105INC Ri间接RAM加 11106;07INC DPTR数据指针加112A3DEC AA减11114DEC Rn寄存器减11118 1FDEC data直接字节减1

14、2115DEC Ri间接RAM减11116;17MUL ABA乘B14A4DIV ABA被B除1484:DA AA十进制调整11D44.转移指令(22条)AJMP addr 11绝对转移22*1LJMP addr 16长转移3202SJMP rel短转移2280JMP A+DPTR相对于DPTR间接转移1273JZ rel若A= 0则转移2260 JNZ rel若AM 0则转移2270JC rel若C= 1则转移2240JNC rel若Cm 1则转移2250JB bit,rel若直接位=1则转移3220JNB bit,rel若直接位=0则转移3230JBC bit,rel若直接位=1则转移且清

15、除3210CJNE A,data,rel直接数与A比较,不等转移32B5CJNE A,#data,rel立即数与A比较,不等转移32B4CJNE Ri,#data,rel立即数与间接RAM匕较,不等转移32B6;B7CJNE Rn, #data,rel立即数与寄存器比较不等转移32B8 BFDJNZ Rn ,rel寄存器减1不为0转移22D8- DFDJNZ data,rel直接字节减1不为0转移32D5 ACALL addr 11绝对子程序调用22*1LCALL addr 16子程序调用3212RET子程序调用返回1222RETI中断程序调用返回1232NOP空操作1100六记忆方法MCS

16、51使用汇编语言指令,它共有 44个操作码助记符,33种功能,其操作数有# data、direct、Rn、Ri等。这里先介绍指令助记符及其相关符号的记忆方法。 一、助记符号的记忆方法1表格列举法把44个指令助记符按功能分为五类,每类列表记忆。此处从略,请读者自己总结。2英文还原法单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉 语有助于理解其助记符含义,从而加强记忆。例如:增量 INC In cremect 减量 DNC Decreme nt短转移 SJMP Short jump 长转移 LJMP Long jump 比较转移 CJNE Compare jump no

17、t equality绝对转移 AJMP Absolute jump 空操作 NOP No operation交换 XCH Exchange 加法 ADD Addition乘法 MUL Multiplication 除法 DIV Division左环移 RL Rotate left 进位左环移 RLC Rotateleft carry右环移 RR Rotate right 进位右环移 RRC Rotateright carry3功能模块记忆法单片机的44个指令助记符,按所属指令功能可分为五大类,每类又可以按功能相似原则为23组。这样,化整为零,各个击破,实现快速记忆。1 )数据传送组。2)加减运

18、算组MOV内部数据传送 ADD加法MOVC程序存储器传送 ADDC带进位加法MOVX外部数据传送 SUBB带进位减法3) 逻辑运算组。4)子程序调用组。ANL逻辑与LCALL长调用ORL逻辑或ALALL绝对调用XRL逻辑异或RET子程序返回二、指令的记忆方法1指令操作数的有关符号MCS 51的寻址方式共有六种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变 址寻址、相对寻址。我们必须掌握其表示的方法。1) 立即数与直接地址。ata表示八位立即数,# data16表示是十六位立即数,data或direct表示直接地址。2) Rn(n=0 7)、A、B、CY、DPTR 寄存器寻址变量。3) R0

19、、R1、DPTR、SP表示寄存器间址变量。4) DPTR + A、PC + A表示变址寻址的变量。5) PC + rel (相对量)表示相对寻址变量。记住指令的助记符,掌握不同寻址方式的指令操作数的表示方法,为我们记忆汇编指令打下了基础。MCS 51指令虽多,但按功能可分为五类,其中数据传送类28条,算术运算类24条,逻辑操作类25条,控制转移类17条,布尔位 操作类17条。在每类指令里,根据其功能,抓住其源、目的操作数的不同组合,再辅之以下方法,是完全能记住的。我们约定,可能的目的操作数按(#data/direct/A/R n/Ri )顺序表示。对于MOV指令,其目的操作数按A、Rn、dir

20、ect、Ri的顺序书写,则可以记住MOV的15条指令。例如以累加器A为目的操作数,可写出如下4条指令。MOV A , # data/direct/A/Rn/Ri以此类推,写出其它指令。MOV Rn ,# data/direct/AMOV direct , # data/direct/A/Rn/RiMOV Ri , # data/direct/A2指令图示记忆法图示记忆法是把操作功能相同或相似、但其操作数不同的指令,用图形和箭头将目的、源操作数的关系表示出来的一种记忆方法。例如:由助记符 MOV、MOVX、MOVC组成的送数组指令,可以用图1、2帮助记忆。由助记符CJNE形成的四条指令,也可以用图示法表示,如图3。CJNE A, # data , rel CJNE A , direct , relCJNE Rn ,# data , rel CJNE Ri ,# 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

提交评论