8051汇编语言概述一 ) 指令分类 42个助记符,33种功能,共...
- 格式:ppt
- 大小:250.00 KB
- 文档页数:50
80c51汇编语言指令80C51汇编语言是一种常用的低级程序设计语言,广泛应用于嵌入式系统中。
它是基于Intel 8051系列单片机的指令集架构,具有高效、灵活、可靠的特点。
本文将介绍80C51汇编语言的一些常用指令。
一、MOV指令MOV指令是80C51汇编语言中最基本、最常用的指令之一,用于将数据从一个寄存器或内存位置复制到另一个寄存器或内存位置。
例如,MOV A, #25H表示将立即数25H复制到A寄存器中。
二、ADD指令ADD指令用于执行两个操作数的相加运算,并将结果存储在目标操作数中。
例如,ADD A, R0表示将A寄存器和R0寄存器中的数据相加,并将结果存储在A寄存器中。
三、SUBB指令SUBB指令用于执行两个操作数的减法运算,并将结果存储在目标操作数中。
与ADD指令不同的是,SUBB指令会考虑进位位的值。
例如,SUBB A, R1表示将A寄存器中的数据减去R1寄存器中的数据,并将结果存储在A寄存器中。
四、MUL指令MUL指令用于执行两个操作数的乘法运算,并将结果存储在累加器A和可选的乘法寄存器B中。
例如,MUL AB表示将累加器A和B 中的数据相乘,并将结果存储在A和B中。
五、DIV指令DIV指令用于执行两个操作数的除法运算,并将结果存储在累加器A和可选的余数寄存器B中。
例如,DIV AB表示将累加器A和B 中的数据相除,并将商存储在A中,余数存储在B中。
六、JC、JNC指令JC指令用于在条件跳转时执行跳转操作,如果进位标志位(C)为1,则执行跳转。
JNC指令则相反,只有当进位标志位为0时才执行跳转。
七、JZ、JNZ指令JZ指令用于在条件跳转时执行跳转操作,如果零标志位(Z)为1,则执行跳转。
JNZ指令则相反,只有当零标志位为0时才执行跳转。
八、CJNE指令CJNE指令用于在条件跳转时执行跳转操作,它比较两个操作数的值,并根据比较结果来确定是否执行跳转。
如果两个操作数相等,则不执行跳转;如果不相等,则执行跳转。
8051单⽚机常⽤指令3.2.1数据传送与交换类指令共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为⽬的的操作数的指令;访问外部RAM的指令;读程序存储器的指9.堆栈操作3.2 分类指令在介绍各条分类指令之前,将指令中的操作数及注释中的符号说明如下。
Rn:当前指定的⼯作寄存器组中的Ro-R7(其中n=0,1,2,…,7)。
Ri:当前指定的⼯作寄存器组中的RO,R1(其中i=0,1)。
(Ri):Ri间址寻址指定的地址单元。
((Ri)):Ri间址寻址指定地址单元中的内容。
dir:8位直接字节地址(在⽚内RAM和SFR存储空间中)。
#data8:8位⽴即数。
#datal6:16位⽴即数。
addrl6:16位地址值。
addrll:11位地址值。
bit:位地址(在位地址空间中)。
rel:相对偏移量(⼀字节补码数)。
下⾯介绍各条分类指令的主要功能和操作,详细的指令操作说明及机器码形式可见附录。
3.2.1数据传送与交换类指令共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为⽬的的操作数的指令;访问外部RAM的指令;读程序存储器的指令;数据交换指令以及准栈操作指令。
9.堆栈操作PUSH dir ;SP⼗1-6P,(dir)⼀(SP)POP dir ;((SP))⼀dir,SP-1--P ,例1 SP=07H,(35H)=55H,指令PUSH 35H执⾏后,55H送⼊08H地址单元,SP=08H。
例2 SP=13H,(13H)= 1FH,指令POP 25H执⾏后,1FH压⼊25H地址单元,SP此时为12H。
综合例把⽚内RAM中50H地址单元中的内容与40H地址单元中的内容互换。
⽅法⼀(直接地址传送法):MOV A ,50H数据传送与交换类指令是各类指令中数量最多、使⽤最频繁的⼀类指令,编程时应能⼗分熟练地灵活运⽤3.2.2算术运算类指令共有24条指令,主要包括加、减、乘、除、增量、减量和⼗进制调整等指令。
8051指令集8051指令集序号指令格式功能简述字节数周期一、数据传送类指令1MOV A,Rn寄存器送累加器11 2MOV Rn,A累加器送寄存器11 3MOV A,@Ri内部RAM单元送累加器11 4MOV @Ri,A累加器送内部RAM单元11 5MOV A,#data立即数送累加器21 6MOV A,direct 直接寻址单元送累加器21 7MOV direct,A累加器送直接寻址单元21 8MOV Rn,#data立即数送寄存器21 9MOV direct,#data立即数送直接寻址单元32 10MOV @Ri,#data立即数送内部RAM单元21 11MOV direct,Rn寄存器送直接寻址单元22 12MOV Rn,direct直接寻址单元送寄存器22 13MOV direct,@Ri内部RAM单元送直接寻址单元22 14MOV @Ri,direct直接寻址单元送内部RAM单元22 15MOV direct2,direct1直接寻址单元送直接寻址单元32 16MOV DPTR,#data1616位立即数送数据指针32 17MOVX A,@Ri外部RAM 单元送累加器(8位地址)12 18MOVX @Ri,A累加器送外部RAM单元(8位地址)12 19MOVX A,@DPTR外部RAM单元送累加器(16位地址)12 20MOVX @DPTR,A累加器送外部RAM单元(16位地址)12 21MOVC A,@A+DPTR查表数据送累加器(DPTR为基址)12 22MOVC A,@A+PC查表数据送累加器(PC为基址)12 23XCH A,Rn累加器与寄存器交换11 24XCH A,@Ri累加器与内部RAM单元交换11 25XCHD A,direct累加器与直接寻址单元交换21 26XCHD A,@Ri累加器与内部RAM单元低4位交换11 27SWAP A累加器高4位与低4位交换11 28POP direct栈顶弹出指令直接寻址单元22 29PUSH direct直接寻址单元压入栈顶22二、算术运算类指令32ADD A,Rn累加器加寄存器11 31ADD A,@Ri累加器加内部RAM单元11 32ADD A,direct累加器加直接寻址单元21 33ADD A,#data累加器加立即数21 34ADDC A,Rn累加器加寄存器和进位标志11 35ADDC A,@Ri累加器加内部RAM单元和进位标志11 36ADDC A,#data累加器加立即数和进位标志21 37ADDC A,direct累加器加直接寻址单元和进位标志21 38INC A累加器加111 39INC Rn寄存器加11140INC direct直接寻址单元加121 41INC @Ri内部RAM单元加111 42INC DPTR数据指针加112 43DA A十进制调整11 44SUBB A,Rn累加器减寄存器和进位标志11 45SUBB A,@Ri累加器减内部RAM单元和进位标志11 46SUBB A,#data累加器减立即数和进位标志21 47SUBB A,direct累加器减直接寻址单元和进位标志21 48DEC A累加器减111 49DEC Rn寄存器减111 50DEC @Ri内部RAM单元减111 51DEC direct直接寻址单元减121 52MUL AB累加器乘寄存器B14 53DIV AB累加器除以寄存器B14三、逻辑运算类指令54ANL A,Rn累加器与寄存器11 55ANL A,@Ri累加器与内部RAM单元11 56ANL A,#data累加器与立即数21 57ANL A,direct累加器与直接寻址单元21 58ANL direct,A直接寻址单元与累加器21 59ANL direct,#data直接寻址单元与立即数31 60ORL A,Rn累加器或寄存器11 61ORL A,@Ri累加器或内部RAM单元11 62ORL A,#data累加器或立即数21 63ORL A,direct累加器或直接寻址单元21 64ORL direct,A直接寻址单元或累加器21 65ORL direct,#data直接寻址单元或立即数31 66XRL A,Rn累加器异或寄存器11 67XRL A,@Ri累加器异或内部RAM单元11 68XRL A,#data累加器异或立即数21 69XRL A,direct累加器异或直接寻址单元21 70XRL direct,A直接寻址单元异或累加器21 71XRL direct,#data直接寻址单元异或立即数32 72RL A累加器左循环移位11 73RLC A累加器连进位标志左循环移位11 74RR A累加器右循环移位11 75RRC A累加器连进位标志右循环移位11 76CPL A累加器取反11 77CLR A累加器清零11四、控制转移类指令类78ACCALL addr112KB范围内绝对调用22 79AJMP addr112KB 范围内绝对转移22 80LCALL addr162KB范围内长调用32 81LJMP addr162KB范围内长转移3282SJMP rel相对短转移22 83JMP @A+DPTR相对长转移12 84RET子程序返回12 85RET1中断返回12 86JZ rel累加器为零转移22 87JNZ rel累加器非零转移22 88CJNE A,#data,rel累加器与立即数不等转移32 89CJNE A,direct,rel累加器与直接寻址单元不等转移32 90CJNE Rn,#data,rel寄存器与立即数不等转移32 91CJNE @Ri,#data,rel RAM单元与立即数不等转移32 92DJNZ Rn,rel寄存器减1不为零转移22 93DJNZ direct,rel直接寻址单元减1不为零转移32 94NOP空操作11五、布尔操作类指令95MOV C,bit直接寻址位送C21 96MOV bit,C C送直接寻址位21 97CLR C C清零11 98CLR bit直接寻址位清零21 99CPL C C取反11 100CPL bit直接寻址位取反21 101SETB C C置位11 102SETB bit 直接寻址位置位21 103ANL C,bit C逻辑与直接寻址位22 104ANL C,/bit C逻辑与直接寻址位的反22 105ORL C,bit C逻辑或直接寻址位22 106ORL C,/bit C逻辑或直接寻址位的反22 107JC rel C为1转移22 108JNC rel C为零转移22 109JB bit,rel直接寻址位为1转移32 110JNB bit,rel直接寻址为0转移32 111JBC bit,rel直接寻址位为1转移并清该位32。
8051系列单片机汇编语言指令速查表说明:1)Ri, Rn指当前工作寄存器,i,n = 0 – 7,当前工作寄存器由程序状态字寄存器PSW的2个位RS1, RS0决定MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等。
这里介绍指令助记符及其相关符号的记忆方法。
一、助记符号的记忆方法1、表格列举法把44个指令助记符按功能分为五类,每类列表记忆。
此处从略,请读者自己总结。
2、英文还原法单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加强记忆。
例如:增量INC-Incremect 减量DNC-Decrement 短转移SJMP-Short jump长转移LJMP-Long jump 比较转移CJNE-Compare jump not equality绝对转移AJMP-Absolute jump 空操作NOP-No operation交换XCH-Exchange 加法ADD-Addition乘法MUL-Multiplication 除法DIV-Division左环移RL-Rotate left 进位左环移RLC-Rotate left carry右环移RR-Rotate right 进位右环移RRC-Rotate right carry3、功能模块记忆法单片机的44个指令助记符,按所属指令功能可分为五大类,每类又可以按功能相似原则为2~3组。
这样,化整为零,各个击破,实现快速记忆。
1)数据传送组。
2)加减运算组MOV 内部数据传送ADD 加法MOVC 程序存储器传送ADDC 带进位加法MOVX 外部数据传送SUBB 带进位减法3)逻辑运算组。
4)子程序调用组。
ANL 逻辑与LCALL 长调用ORL 逻辑或ALALL 绝对调用XRL 逻辑异或RET 子程序返回二、指令的记忆方法1、指令操作数的有关符号MCS-51的寻址方式共有七种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变址寻址、相对寻址、位寻址。
大家都知道,汇编语言指令由操作码、操作数两部分组成。
MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等。
这里先介绍指令助记符及其相关符号的记忆方法。
一、助记符号的记忆方法1 表格列举法把44个指令助记符按功能分为五类,每类列表记忆。
此处从略,请读者自己总结。
2 英文还原法单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加强记忆。
例如:增量INC-Incremect减量DNC-Decrement短转移SJMP-Short jump 长转移LJMP-Long jump比较转移CJNE-Compare jump not 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个指令助记符,按所属指令功能可分为五大类,每类又可以按功能相似原则为2~3组。
这样,化整为零,各个击破,实现快速记忆。
1)数据传送组。
2)加减运算组MOV 内部数据传送ADD 加法MOVC 程序存储器传送ADDC 带进位加法MOVX 外部数据传送SUBB 带进位减法3)逻辑运算组。
4)子程序调用组。
ANL 逻辑与LCALL 长调用ORL 逻辑或ALALL 绝对调用XRL 逻辑异或RET 子程序返回二、指令的记忆方法1 指令操作数的有关符号MCS-51的寻址方式共有六种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变址寻址、相对寻址。
我们必须掌握其表示的方法。