《第三章8051单片机指令系统》由会员分享,可在线阅读,更多相关《第三章8051单片机指令系统(77页珍藏版)》请在金锄头文库上搜索。
1、第第三三章章 8051单片机指令系统单片机指令系统3.1MCS-51指令系统的分类、指令系统的分类、格式及一般说明格式及一般说明3.2寻址方式寻址方式学习目的及要求学习目的及要求熟悉指令、指令系统、机器语言、及汇编语熟悉指令、指令系统、机器语言、及汇编语言的概念;言的概念;熟悉熟悉8051汇编语言指令的格式;汇编语言指令的格式;掌握掌握8051的七种寻址方式,并能实际应用;的七种寻址方式,并能实际应用;MCS-51单片机指令系统有如下特点:单片机指令系统有如下特点:(1)指令执行时间快。)指令执行时间快。(2)指令短,约有一半的指令为单字节指令。)指令短,约有一半的指令为单字节指令。(3)用用
2、一一条条指指令令即即可可实实现现2个个一一字字节节的的相相乘乘或或相除。相除。(4)具有丰富的位操作指令。)具有丰富的位操作指令。(5)可直接用传送指令实现端口的输入输出操)可直接用传送指令实现端口的输入输出操作。作。3.1MCS-51指令系统的分类、格式及一般说明指令系统的分类、格式及一般说明3.1.1指令分类指令分类3.1.2指令格式指令格式返回本章首页3.1.1指令分类指令分类按按指指令令功功能能,MCS-51指指令令系系统统分分为为数数据据传传递递与与交交换换、算算术术运运算算、逻逻辑辑运运算算、程程序序转转移移、布尔处理操作、布尔处理操作、CPU控制等控制等6类。类。布尔处理操作类指
3、令又称位操作指令。布尔处理操作类指令又称位操作指令。返回本节3.1.2指令格式指令格式在在MCS-51指指令令中中,一一般般指指令令主主要要由由操操作作码码、操操作作数数组成。组成。指令格式为:指令格式为:操作码操作码目的操作数目的操作数,源操作数,源操作数指令应具有以下功能:指令应具有以下功能:(1)操操作作码码指指明明执执行行什什么么性性质质和和类类型型的的操操作作。例例如如,数的传送、加法、减法等。数的传送、加法、减法等。(2)操操作作数数指指明明操操作作的的数数本本身身或或者者是是操操作作数数所所在在的的地地址。址。(3)指定操作结果存放的地址。)指定操作结果存放的地址。返回本节805
4、1指令系统中,有单字节、双字节或三字节指令指令系统中,有单字节、双字节或三字节指令1.单字节指令单字节指令:单字节指令中的单字节指令中的8位二进制代码既包含操位二进制代码既包含操作码的信息作码的信息,又包含操作数的信息。共又包含操作数的信息。共49条。条。2.双字节指令:双字节指令:用一个字节表示操作码,另一个字节表用一个字节表示操作码,另一个字节表示操作数或操作数所在的地址。共有条。示操作数或操作数所在的地址。共有条。3.三字节指令:三字节指令:一个字节操作码,两个字节操作数。共一个字节操作码,两个字节操作数。共有条。有条。单片机共有条指令。单片机共有条指令。3.2寻址方式寻址方式寻址方式:
5、就是寻找指令中操作数或操作数所在地址的方法。寻址方式:就是寻找指令中操作数或操作数所在地址的方法。8051共有七中寻址方式。共有七中寻址方式。3.2.1立即寻址立即寻址3.2.2直接寻址直接寻址3.2.3寄存器寻址寄存器寻址3.2.4寄存器间接寻址寄存器间接寻址3.2.5变址寻址变址寻址3.2.6相对寻址相对寻址3.2.7位寻址位寻址3.2.8寻址空间及符号注释寻址空间及符号注释返回本章首页3.2.1立即数寻址立即数寻址指指令令中中直直接接给给出出操操作作数数的的寻寻址址方方式式。立立即即操操作作数数用用前前面加有面加有#号的号的8位或位或16位数来表示。位数来表示。例如:例如:MOVA,#6
6、0H;A60HMOVDPTR,#3400H;DPTR3400HMOV 30H,#40H ;30H单元单元40H上上述述三三条条指指令令执执行行完完后后,累累加加器器A中中数数据据为为立立即即数数据据60H,DPTR寄寄存存器器中中数数据据为为3400H,30H单单元元中中数数据为立即数据为立即数40H。返回本节3.2.2直接寻址直接寻址指指令令中中直直接接给给出出操操作作数数地地址址的的寻寻址址方方式式,能能进进行行直直接接寻寻址址的的存存储储空空间间有有SFR寄寄存存器器和和片片内内RAM的的128个单元。个单元。例如:例如:MOVA,P1;A(P1)把把SFR中中P1口的内容送口的内容送A
7、。MOVA,30H;A(30H)注意解释字段中加括号和不加括号的区别!注意解释字段中加括号和不加括号的区别!30H为直接给出的内部为直接给出的内部RAM的地址。的地址。返回本节3.2.3寄存器寻址寄存器寻址以以通通用用寄寄存存器器的的内内容容为为操操作作数数的的寻寻址址方方式式。通用寄存器指通用寄存器指A、B、DPTR以及以及R0R7。例如:例如:MOVA,R0;A(R0)CLR A;A0INC DPTR;DPTRDPTR+1ADD A,R5;A(A)+(R5)返回本节3.2.4寄存器间接寻址寄存器间接寻址以以寄寄存存器器中中内内容容为为地地址址,以以该该地地址址中中内内容容为为操操作作数数的
8、的寻寻址址方方式式。间间接接寻寻址址的的存存储储器器空空间间包括内部数据包括内部数据RAM和外部数据和外部数据RAM。能能用用于于寄寄存存器器间间接接寻寻址址的的寄寄存存器器有有R0,R1,DPTR,SP。其其中中R0、R1必必须须是是工工作作寄寄存存器器组中的寄存器。组中的寄存器。SP仅用于堆栈操作。仅用于堆栈操作。例如:例如:MOVR0,A;内部内部RAM(R0)A其指令操作过程示意图如图其指令操作过程示意图如图3-1所示。所示。又如:又如:MOVXDPTR,A;外部外部RAM(DPTR)A其指令操作过程示意图如其指令操作过程示意图如图图3-所示。所示。片内RAM30HR034HA30H3
9、4H图3-1 MOV R0,A间接寻址示意图片外RAM2000HDPTR30HA2000H30H图图-MOVXDPTR,A间接寻址示意图间接寻址示意图返回本节3.2.5变址寻址变址寻址是是基基址址寄寄存存器器(A)+变变址址寄寄存存器器(PC或或DPTR)的的间间接接寻寻址址。变变址址寻寻址址只只能能对对程程序序存存储储器器中中数数据据进进行行操操作作。由由于于程程序序存存储储器器是是只只读读的的,因因此此变变址址寻寻址址只只有有读读操操作作而而无无写写操操作作,在在指指令令符符号号上上采采用用MOVC的的形形式(如图式(如图3-4所示)。所示)。例如:例如:MOVCA,A+DPTR;A(A+
10、DPTR)又又如:如:MOVCA,A+PC;A(A+PC)这种寻址方式多用于查表操作这种寻址方式多用于查表操作。图3-4 变址寻址示意图程序存储器2000HDPTR64H(10H)A2010H64H10H2000H返回本节3.2.6相对寻址相对寻址以以当当前前程程序序计计数数器器PC的的内内容容为为基基础础,加加上上指指令令给给出出的的一一字字节节补补码码数数(偏偏移移量量)形形成成新新的的PC值的寻址方式。值的寻址方式。相相对对寻寻址址用用于于修修改改PC值值,主主要要用用于于实实现现程程序序的分支转移。的分支转移。例如,例如,SJMP08H;PCPC+2+08H指令操作示意图如图指令操作示
11、意图如图3-5所示。所示。程序存储器(2000H)200AHSJMP200AH08H2000H+208HPC2000H图3-5 相对寻址示意图返回本节3.2.7位寻址位寻址位寻址只能对有位地址的单元作位寻址操作。位寻址只能对有位地址的单元作位寻址操作。位位寻寻址址其其实实是是一一种种直直接接寻寻址址方方式式,不不过过其其地地址是位地址。址是位地址。例如:例如:SETB10H;将;将10H位置位置1。若若22H单单元元中中存存放放着着数数据据40H,22H单单元元的的D0位的位地址为位的位地址为10H,执行上述指令后执行上述指令后(22H)=41H。又如:又如:MOV32H,C;32H进位位进位
12、位CORLC,32H;CC32H返回本节3.2.8寻址空间及符号注释寻址空间及符号注释1.1.寻址空间寻址空间: :每种寻址方式可涉及的存储器空间每种寻址方式可涉及的存储器空间寻址方式寻址方式源操作数寻址空间源操作数寻址空间立即数寻址立即数寻址程序存储器程序存储器ROM直接寻址直接寻址片内片内RAM低低128B、SFR寄存器寻址寄存器寻址工作寄存器工作寄存器R0-R7、A、B、C、DPTR寄存器间接寻址寄存器间接寻址片内片内RAM低低128BR0、R1片外片外RAMR0、R1、DPTR变址寻址变址寻址程序存储器程序存储器A+PC、A+DPTR相对寻址相对寻址程序存储器程序存储器256B范围(范
13、围(PC+偏移量)偏移量)位寻址位寻址片内片内RAM的的20H2FH字节地址、部分字节地址、部分SFR例如:例如:MOVA,#55H;究竟属于立即寻址还是寄存器寻址呢?究竟属于立即寻址还是寄存器寻址呢?这要看以哪个操作数为参照系了。我们一般这要看以哪个操作数为参照系了。我们一般所说的寻址方式是指源操作数,所以此例为所说的寻址方式是指源操作数,所以此例为立即数寻址。立即数寻址。2.寻址方式中常用符号注释寻址方式中常用符号注释Rn当前选中的寄存器区中的当前选中的寄存器区中的8个工作寄存器个工作寄存器R0R7(n=07)。)。Ri当前选中的寄存器区中的当前选中的寄存器区中的2个工作寄存器(间个工作寄
14、存器(间接寻址寄存器)接寻址寄存器)R0、R1(i=0,1)。)。direct8位的内部数据存储器单元中的地址。位的内部数据存储器单元中的地址。#data包含在指令中的包含在指令中的8位常数。位常数。#data16包含在指令中的包含在指令中的16位常数。位常数。addr1616位目的地址。位目的地址。addr1111位目的地址。位目的地址。rel8位带符号的偏移字节,简称偏移量。位带符号的偏移字节,简称偏移量。DPTR数据指针,可用作数据指针,可用作16位地址寄存器。位地址寄存器。bit内部内部RAM或专用寄存器中的直接寻址位。或专用寄存器中的直接寻址位。A累加器。累加器。B专用寄存器,用于乘
15、法和除法指令中。专用寄存器,用于乘法和除法指令中。C进位标志或进位位,或布尔处理机中的累加器。进位标志或进位位,或布尔处理机中的累加器。$用用于于表表示示程程序序计计数数器器的的当当前前值值。常常出出现现在在转转移移指指令中,例如:令中,例如:SJMP$表示循环等待。表示循环等待。间间址址寄寄存存器器或或基基址址寄寄存存器器的的前前缀缀,如如Ri,DPTR。/位位操操作作数数的的前前缀缀,表表示示对对该该位位操操作作数数取取反,如反,如/bit。片内片内RAM的直接地址或寄存器。的直接地址或寄存器。()由由寻址的单元中的内容。寻址的单元中的内容。箭箭头头左左边边的的内内容容被被箭箭头头右右边边
16、的的内内容容所所代替。代替。返回本节课堂作业课堂作业:P67:1、4、7课后作业课后作业:P67:2、3、5 谢谢 谢谢 大大 家家 再再 见!见!3.3MCS-51单片机的指令系统单片机的指令系统学习目的及要求学习目的及要求熟悉各类指令的功能、操作的对象和结果及熟悉各类指令的功能、操作的对象和结果及指令执行后对指令执行后对PSW各个位的影响。各个位的影响。8051指令系统的特点:不同的存储空间寻址指令系统的特点:不同的存储空间寻址方式不同,适用的指令不同。方式不同,适用的指令不同。3.3.1数据传送类指令数据传送类指令3.3.2算术运算类指令算术运算类指令3.3.3逻辑运算类指令逻辑运算类指
17、令3.3.4控制程序转移类指令控制程序转移类指令3.3.5调用子程序及返回指令调用子程序及返回指令3.3.6位操作指令位操作指令3.3.7空操作指令空操作指令返回本章首页3.3.1数据传送类指令数据传送类指令数数据据传传送送类类指指令令共共28条条,是是将将源源操操作作数数送送到到目的操作数。目的操作数。指指令令执执行行后后,源源操操作作数数不不变变,目目的的操操作作数数被被源操作数取代。源操作数取代。数数据据传传送送类类指指令令用用到到的的助助记记符符有有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8种。种。源操作数可采用寄存器、寄存器间接、直接、源操作数可采用寄
18、存器、寄存器间接、直接、立即、变址立即、变址5种寻址方式寻址;种寻址方式寻址;目的操作数可以采用寄存器、寄存器间接、目的操作数可以采用寄存器、寄存器间接、直接寻址直接寻址3种寻址方式。种寻址方式。数据传送指令是一种最基本最常用的操作数据传送指令是一种最基本最常用的操作,在在通常的程序中占有极大的比例。通常的程序中占有极大的比例。1以以A为目的操作数为目的操作数MOVA,Rn;ARnMOVA,direct ;A(direct)MOVA,Ri;A(Ri)MOVA,#data ;A#data上上述述指指令令是是将将源源操操作作数数指指定定的的内内容容送送到到累累加加器器A中。中。上述操作只影响上述操
19、作只影响PSW的的P标志位。标志位。2以Rn为目的操作数MOVRn,A;RnAMOVRn,direct;Rn(direct)MOVRn,#data;Rn#data上上述述指指令令是是将将源源操操作作数数指指定定的的内内容容送送到到当当前前工工作作寄寄存存器器组组R0R7中的某个寄存器。中的某个寄存器。例如:设例如:设(A)=78H,(,(R5)=47H,(,(70)=F2H。MOVR5,A;R5(A),(,(R5)=78HMOVR5,70H;R5(70H),(,(R5)=F2HMOVR5,#A3H;R5A3,(,(R5)=A3H注:注:8051指令系统中没有指令系统中没有“MOVRn,Rn”传
20、送指令。传送指令。3以直接地址为目的操作数以直接地址为目的操作数MOVdirect,A;direct(A)MOVdirect,Rn;direct(Rn)MOVdirect,direct;目的;目的direct(源(源direct)MOVdirect,Ri ;direct((Ri))MOVdirect,#data;direct#data上上述述指指令令是是将将源源操操作作数数指指定定的的内内容容送送到到由由直直接接地地址址direct所所指出的片内存储单元中指出的片内存储单元中。4以间接地址为目的操作数MOVRi,A;(;(Ri)AMOVRi,direct;(;(Ri)(direct)MOVRi
21、,#data;(;(Ri)#data例如:设(例如:设(30H)=6FH,R1=40H,MOVR1,30H,结结果果30H单单元元中中数数据据取取出出送送入入R1间间接接寻寻址址的的40H单元,(单元,(40H)=6FH。5以以DPTR为目的操作数为目的操作数MOVDPTR,#data16;DPTR#data16例如例如执行执行MOVDPTR,#2000H后,后,(DPTR)=2000H。DPH20H,DPL00H这是唯一的这是唯一的16位立即数传送指令,把位立即数传送指令,把16位常数位常数送入送入DPTR。6访问外部数据访问外部数据RAM在在8051指指令令系系统统中中,访访问问片片外外R
22、AM只只能能用用寄寄存存器器间间接接寻址,与累加器寻址,与累加器A配合,共四条指令。配合,共四条指令。MOVXA,Ri;A(Ri)MOVXRi,A;(;(Ri)A寻址范围是片外寻址范围是片外256BRAM。MOVXA,DPTR;A(DPTR)MOVXDPTR,A;(;(DPTR)A寻址范围是片外寻址范围是片外64KBRAM。7读程序存储器(读程序存储器(查表指令查表指令)注:数据表格放在注:数据表格放在程序存储器程序存储器中(只有两条指令)。中(只有两条指令)。近程查表指令(近程查表指令(256B)MOVCA,A+PC;A(A)+(PC)只能查找指令所在地址以后只能查找指令所在地址以后256B
23、范围内的常数或代码。范围内的常数或代码。远程查表指令(远程查表指令(64KB)MOVCA,A+DPTR ;A(A)+(DPTR)查表范围可达查表范围可达ROM的的64KB空间。空间。例如:在程序存储器中,数据表格为例如:在程序存储器中,数据表格为1010H:02H1011H:04H1012H:06H1013H:08H执行程序执行程序1000H:MOVA,#0DH;A0DH,偏移量,偏移量1002H:MOVCA,A+PC;A(0DH+1003H)1003H:MOVR0,A;R0HA结果为(结果为(A)=02H,(,(R0)=02H,(,(PC)=1004H又如:在程序存储器中,数据表格为又如:在
24、程序存储器中,数据表格为7010H:02H7011H:04H7012H:06H7013H:08H执行程序执行程序1000H:MOVA,#10H;A10H,偏移量,偏移量1002H:MOVDPTR,#7000H;DPTR7000H1003H:MOVCA,A+DPTR;A(10H+7000H)结果为(结果为(A)=02H8数据交换数据交换l l字节交换字节交换XCHA,Rn ;ARnXCHA,direct;A(direct)XCHA,Ri;A(Ri)l l半字节交换半字节交换XCHDA,Ri;A03(Ri)03低低4位互换,高位互换,高4位不变。位不变。SWAPA;A A0 03 3AA4 47
25、7(高低两半字节交换)高低两半字节交换)注:上述交换指令的目的操作数为累加器注:上述交换指令的目的操作数为累加器A。9堆栈操作所所谓谓堆堆栈栈是是在在片片内内RAM中中按按“先先进进后后出出,后后进进先先出出”原原则则设设置置的的专专用用存存储储区区。数数据据的的进进栈栈出出栈栈由由指指针针SP统一管理。统一管理。堆栈的操作有如下两条专用指令:堆栈的操作有如下两条专用指令:PUSHdirect;SP(SP+1),(),(SP)(direct)POPdirect;(;(direct)(SP),),SPSP-1PUSH是进栈(或称为压入操作)指令。指令执行过是进栈(或称为压入操作)指令。指令执行过
26、程如图程如图3-7所示。所示。POP是是出栈(或称为弹出操作)指令。指令执行过程出栈(或称为弹出操作)指令。指令执行过程如图如图3-8所示所示片内RAM30H11H10HSP片内RAM50H40H11H10HSP40H30H片内RAM50H40H11H10H50HSP30H片内RAM40H11H10H34HSP30H34H34H执行前执行前执行PUSH指令后执行POP指令后图3-7 指令PUSH操作示意图图3-8 指令POP操作示意图【例例3.1】将片内将片内RAM30H单元与单元与40H单元中的内单元中的内容互换。容互换。方法方法1(直接地址传送法):(直接地址传送法):MOV31H,30H
27、MOV30H,40HMOV40H,31HSJMP$方法方法2(间接地址传送法):(间接地址传送法):MOVR0,#40HMOVR1,#30HMOVA,R0MOVB,R1MOVR1,AMOVR0,BSJMP$方法方法3(字节交换传送法):(字节交换传送法):MOVA,30HXCHA,40HMOV30H,ASJMP$方法方法4(堆栈传送法):(堆栈传送法):PUSH30HPUSH40HPOP 30HPOP 40HSJMP$返回本节课堂作业课堂作业:P67:8、9、10、11、12、13课后作业课后作业:P67:6 返回本节 谢谢 谢谢 大大 家家 再再 见!见!3.3.2算术运算类指令算术运算类指
28、令8051算算术术运运算算指指令令包包括括加加、减减、乘乘、除除基基本本四则运算。四则运算。算算术术运运算算结结果果将将使使进进位位CY、半半进进位位AC、溢溢出出位位OV三三个个标标志志位位置置位位或或复复位位,只只有有加加1和和减减1指令不影响这些标志位。指令不影响这些标志位。加加、减减、乘乘、除除及及十十进进制制调调整整指指令令,目目的的操操作数均为累加器作数均为累加器A。1加法指令(四条)加法指令(四条)ADDA,Rn;AA+RnADDA,direct;AA+(direct)ADDA,Ri;AA+(Ri)ADDA,#data;AA+#data例如:设(例如:设(A)=03CH,(,(R
29、0)=0AAH,执行指令执行指令ADDC,R0后,后,A=6DH。(A):):11000011+(R0):):10101010101101101标志位标志位CY=1,AC=02带进位加指令(四条)带进位加指令(四条)ADDCA,Rn;AA+Rn+CADDCA,direct;AA+(direct)+CADDCA,Ri ;AA+(Ri)+CADDCA,#data ;AA+#data+CC为来自为来自PSW状态寄存器中的进位位状态寄存器中的进位位C。功能:把源操作数指出的内容和进位标志位功能:把源操作数指出的内容和进位标志位CY都加到累加器都加到累加器A中,结果存放在中,结果存放在A中。中。例如:设
30、(例如:设(A)=03CH,(,(R0)=0AAH,CY=1,执行指令,执行指令ADDC,R0后,后,A=6EH。(A):):11000011+(CY):):0000000111000100+(R0):):1010101001101110标志位标志位CY=1,AC=03带借位减指令带借位减指令SUBBA,Rn;AA-Rn-CSUBBA,direct ;AA-(direct)-CSUBBA,Ri;AA-(Ri)-CSUBBA,#data ;AA-#dataC功功能能:从从累累加加器器A中中减减去去源源操操作作数数指指出出的的内内容容和和进进位位标标志志位位CY的的值值累累加加器器A中中,差差存存
31、放放在在累加器累加器A中。中。例例 如如 , 设设 ( A) =0C9H, ( R2) =20H,(20H)=54H,CY=1,执行指令执行指令SUBB,R2后,后,A=74H。(A):):11001001(CY):):0000000111001000(R2):):0101010001110100标志位标志位CY=0,AC=04乘法指令(一条)乘法指令(一条)MULAB ;BAABA和和B中中各各存存放放一一个个8位位无无符符号号数数,指指令令执执行行后,后,16位乘积的位乘积的高高8位在位在B中,中,低低8位存位存A中。中。例如例如:(A)=30H,(B)=60H;执行执行MULAB后,后,
32、A=00H,B=12H。5除法指令除法指令DIVAB ;AB商在商在A中,余数在中,余数在B中中A和和B中中各各存存放放一一个个8位位无无符符号号数数,A放放被被除除数数,B放放除除数数。指指令令执执行行后后,A中中存存放放商商,B中中存存入入余余数数。若若B=00H,则则指指令令执执行行后后OV=1,A与与B不变。不变。例如例如:(A)=30H,(B)=07H;执行执行DIVAB后,后,A=06H,B=06H。6加加1指令指令(5条条)INCA;AA+1INCRn;RnRn+1INCdirect ;(;(direct)(direct)+1INCRi;(;(Ri)(Ri)+1INCDPTR;D
33、PTRDPTR+1功功能能:将将操操作作数数所所指指定定的的单单元元加加,其其操操作作不不影影响响PSW;若若原原单单元元内内容容为为FFH,加加1后后溢溢出出为为00H,也不影响,也不影响PSW。例如,(例如,(30H)=22H,执行,执行INC30H后,后,(30H)=23H。7减减1指令指令DECA;AA-1DECRn;RnRn-1DECdirect;direct(direct)-1DECRi ;(;(Ri)(Ri)-1功能:将操作数所指定的单元减,其操作功能:将操作数所指定的单元减,其操作不影响不影响PSW;若原单元内容为;若原单元内容为00H,减,减1后溢后溢出为出为FFH,也不影响
34、,也不影响PSW。例如:例如:R0=30H,(,(30H)=22H,执行执行DECR0后,(后,(30H)=21H。8十进制调整指令十进制调整指令DAA;把把A中中按按二二进进制制相相加加的的结结果果调调整整成成按按BCD码相加的结果码相加的结果例例如如,A=65BCD,B=78BCD,C=0,执执行行下下列列语语句句ADD A,BDAA后,后,A=43BCD,C=1。【例例3.2】试试把把存存放放在在R1R2和和R3R4中中的的两两个个16位位数数相相加加,结结果果存存于于R5R6中中。解解:参参考考程序如下:程序如下:MOVA,R2;取第一个数的低取第一个数的低8位位ADDA,R4;两数的
35、两数的低低8位相加位相加MOVR6,A;保存和的低保存和的低8位位MOVA,R1;取第一个数的高;取第一个数的高8位位ADDCA,R3;两两数数的的高高8位位相相加加,并把低并把低8位相加时的进位位加进来位相加时的进位位加进来MOVR5,A;把把相相加加的的高高8位位存存入入R5寄存器中寄存器中SJMP$返回本节课堂作业课堂作业:P67:8、9、10、11、12、13课后作业课后作业:P67:6谢谢 谢谢 大大 家家 再再 见!见!3.3.3逻辑运算指令逻辑运算指令1清零与取反指令清零与取反指令2移位指令移位指令3“与与”操作指令操作指令4“或或”操作指令操作指令5“异或异或”操作指令操作指令
36、返回本节3.3.4程序转移类指令程序转移类指令1无条件转移指令无条件转移指令l l绝对(短)转移指令绝对(短)转移指令AJMP addr11;PC100addr11l l长转移指令长转移指令LJMP addr16;PCaddr16l l短(相对)转移指令短(相对)转移指令SJMP rel;PCPC+2+rell l间接转移指令间接转移指令JMPA+DPTR;PCA+DPTR2条件转移指令条件转移指令l l累加器为零(非零)转移指令累加器为零(非零)转移指令l l减减1非零转移指令非零转移指令l l两数不等转移指令两数不等转移指令l l相对偏移量相对偏移量rel的求法的求法0000H07FFH0
37、800H0FFFH1000H17FFH1800H1FFFH2000H27FFH2800H2FFFH3000H37FFH3800H3FFFH4000H47FFH4800H4FFFH5000H57FFH5800H5FFFH6000H67FFH6800H6FFFH7000H77FFH7800H7FFFH8000H87FFH8800H8FFFH9000H97FFH9800H9FFFHA000HA7FFHA800HAFFFHB000HB7FFHB800HBFFFHC000HC7FFHC800HCFFFHD000HD7FFHD800HDFFFHE000HE7FFHE800HEFFFHF000HF7FFHF
38、800HFFFFH表3-1 程序存储器空间32个2K地址范围返回本节3.3.5调用子程序及返回指令调用子程序及返回指令1调用子程序指令调用子程序指令LCALLaddr16;PCPC+3,SPSP+1,(,(SP)PC710;SPSP+1,(SP)PC158,PCaddr16ACALLaddr11;PCPC+2,SPSP+1,(,(SP)PC70;SPSP+1,(,(SP)PC158,PC100addr112返回指令返回指令RET;PC158(SP),),SPSP-1;PC70(SP),),SPSP-1RETI;PC158(SP),),SPSP-1;PC70(SP),),SPSP-1返回本节3.
39、3.6位操作指令位操作指令1位数据传送指令位数据传送指令MOV C,bit;C(bit)MOV bit,C;bitC2位状态修改指令位状态修改指令CLRC;C0CLRbit;(;(bit)0CPLC;CCPLbit;(;(bit)(bit)SETB C;C1SETB bit;(;(bit)13位逻辑运算指令位逻辑运算指令ANL C,bit;CC(bit)ANL C,/bit;CC(bit)ORL C,bit;CC(bit)ORL C,/bit;CC(bit)4位转移指令位转移指令JCrel;若若C=1,则转移(则转移(PCPC+2+rel););否则程序顺序执行否则程序顺序执行JNC rel;
40、若若C=0,则转移(则转移(PCPC+2+rel););否则程序顺序执否则程序顺序执JBbit,rel;若若(bit)=1,则转移(则转移(PCPC+3+rel););否则程序顺序执行否则程序顺序执行JNB bit,rel;若若(bit)=0,则转移(则转移(PCPC+3+rel););否则程序顺序执行否则程序顺序执行JBC bit,rel;若若(bit)=1,则则PCPC+3+rel,(bit)0;否否则则程程序序顺顺序序执行执行功功能能:分分别别检检测测指指定定位位是是1还还是是0,若若条条件件符符合合,则则CPU转转向向指指定定的的目目标标地地址址去去执执行行程程序序;否否则,顺序执行下条指令。则,顺序执行下条指令。返回本节3.3.7空操作指令空操作指令NOP;PCPC+1这这是是一一条条单单字字节节指指令令。执执行行时时,不不作作任任何何操操作作(即即空空操操作作),仅仅将将程程序序计计数数器器PC的的内内容容加加1,使使CPU指指向向下下一一条条指指令令继继续续执执行行程程序序。这这条条指指令令常常用用来来产产生生一一个个机机器器周周期期的的时时间间延延迟。迟。返回本节本章到此结束,本章到此结束,谢谢您的光临!谢谢您的光临!结束放映返回本章首页THANKYOUVERYMUCH!