第3章-MCS-51单片机的指令系统.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 单片机 指令系统
- 资源描述:
-
单击此处编辑母版标题样式,*,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,3,章,MCS51,单片机的指令系统,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,单击此处编辑母版标题样式,第,3,章,MCS-51,单片机指令系统,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,对于任何一台计算机,如果只有硬件,而没有软件(程序)的支持是不能工作的。单片机也不例外,它必须在各种各样的程序支持下才能发挥其运算和控制功能。而程序的最基本单位就是指令。,第,3,章,MCS-51,单片机的指令系统,1,、,指令,:,是人们向计算机发的一种命令,;,一条指令对应着一种操作。,2,、,指令系统,:CPU,所能执行的全部指令的集合。,CPU,能够执行多少条指令是由,CPU,的内部结构决定的。不同的,CPU,,其指令系统不同。,3/4/2026,1,3.1,概述,3.1.1,计算机常用的编程语言,程序设计语言:,是实现人机交换信息的基本工具,分为机器语言、汇编语言和高级语言。,机器语言:,用二进制编码表示每条指令,是计算机能直接识别和执行的语言。,汇编语言:,是用助记符、符号和数字等来表示指令的程序设计语言。它与机器语言指令是一一对应的。,高级语言:,上述两种语言针对硬件,程序可读性和移植性比较差,于是开发出面向对象的高级语言。,3/4/2026,2,由于构成计算机的电子器件特性所决定,计算机只能识别二进制代码。这种以二进制代码来描述指令功能的语言,称之为,机器语言,。,优点,:,用机器码书写的程序,计算机可以直接识别和运行。,缺点,:,书写时容易,不容易记忆。,例如,:“,累加器,A,加,1”,指令用二进制数表示时,是“,00000100”,,在程序存储器中占用一个字节单元。,1,机器语言,3/4/2026,3,2,汇编语言,为了克服机器语言的缺点,人们用符号书写指令。用容易记忆的缩写符号表示机器语言指令就是,汇编语言,指令。例如,“,A,加,B”,用英语写出来是“,Add B to A”,,缩写成“,ADD A,,,B”,。这个“,ADD A,,,B”,就是汇编语言指令。我们将“,ADD”,缩写符号称为“助记符”。,优点,:,容易理解和记忆。,缺点,:,计算机不能直接识别和运行。,3/4/2026,4,两种语言指令对照:,汇编语言指令 机器语言指令,MOV A,,,#0AH 74H 0AH,ADD A,,,#14H 24H 14H,3/4/2026,5,汇编语言指令组成:,操作码助记符,操作数,括号内的部分是可选项。每个字段之间要用分隔符分隔,可以用作分隔符的符号有空格、冒号、逗号、分号等。,指令格式:,标号:,操作码,目的操作数,,源操作数,;,注释,LOOP,:,MOV A,,,3AH,;(,A,),(3AH),3.1.2,MCS-51,单片机指令格式,3/4/2026,6,1,标号,标号是语句地址的标志符号,代表该语句指令代码第一个字节的地址。,(1),标号由,1,8,个,ASCII,字符组成,且第一个字符必须是字母,其余字符可以是字母、数字或其他特定字符。,(2),不能使用该汇编语言已经定义了的符号作为标号。如指令助记符、寄存器符号名称等。,(3),标号后必须跟冒号。,3/4/2026,7,2,操作码,操作码用于规定语句执行的操作。它是汇编语句中唯一不能空缺的部分,也是语句的核心,它用指令助记符表示。,3/4/2026,8,3,操作数,操作数用于给指令的操作提供数据或地址。在一条汇编语句中操作数可能是空缺的,也可能包括一项,还可能包括两项或三项。当有多个操作数时,各操作数间以逗号分隔。,目的操作数提供操作的对象,并指出一个目标地址,表示操作结果存放单元的地址,它与操作码之间必须以一个或几个空格分隔。,源操作数指出的是一个源地址(或立即数),表示操作的对象或操作数来自何处。它与目的操作数之间要用,“,”,号隔开。,3/4/2026,9,4,注释,注释不属于汇编语句的功能部分,它只是对语句的说明。注释字段可以增加程序的可读性,有助于编程人员的阅读和维护。注释字段必须以分号“;”开头,长度不限可以换行接着书写,但换行时应注意在开头使用分号“;”。,3/4/2026,10,MCS-51,单片机共有,7,种寻址方式。,3.1.3,寻址方式及寻址空间,指出操作数所在的存储器单元地址的方式就是寻址方式。,1,、立即寻址,2,、直接寻址,3,、寄存器间接寻址(,REG,间址,),4,、,寄存器寻址(,REG,寻址,),5,、变址寻址,6,、相对寻址,7,、位寻址,3/4/2026,11,常用符号,Rn,:,(,n=0-7,),工作寄存器中的寄存器,R0,、,R1R7,之一,,Ri,:,(,i=0,、,1,),可以用于间接寻址的寄存器,R0,或,R1,direct,:位的内部数据存储器单元的地址。,片内,RAM,或,SFR,的地址(,8,位),DPTR,:以间接寻址方式出现的数据指针,3/4/2026,12,#data,:,8,位立即数,#data=#30H,得到的操作数为,30H,#data16,:,16,位立即数,#data16=#1030H,得到的操作数为,1030H,addr11,:,11,位目的地址。用于,ACALL,和,AJMP,指令中。目的地址必须与下一条指令的第一字节在同一个,2KB,程序存储器区地址空间之内。,addr16,:,16,位目的地址。用于,LCALL,和,LJMP,指令中。范围是,64KB,程序存储器空间。,3/4/2026,13,rel,:,补码形式的,8,位地址偏移量。,8,位的带符号的偏移地址。用于,SJMP,和所有的条件转移指令中。偏移范围为,-128,127,。,/,:,位操作指令中,该位求反后参与操作,不影响该位,(X),:,表示,X,寄存器的内容或地址为,X,的存储单元内容,例如:,R0,中的内容为,55H,,可以表示为(,R0,),=55H,。,(,(,X,),),:,由间接寄存器,X,所间接寻址的存储单元内容,例如:,R0,中的内容为,55H,,,RAM,区,55H,单元中的内容为,73H,,可以表示为(,R0,),=73H,。,bit,:,片内,RAM,或,SFR,的位地址,3/4/2026,14,FFH,MCS51,单片机有,7,种寻址方式。,1,、,立即寻址,1,、操作数包含在指令字节中。紧跟在操作码后面,存放于,ROM,中。,例:,MOV A,,,#,05H,;(,74H 05H,),2,、跟在指令操作码后面的数就是参加运算的数,称该操作数为立即数。,3,、此种寻址方式只适用于,ROM,区。,ROM,74H,05H,SFR,FFH,05H,A,返回,2,、,直接寻址,1,、在指令中直接给出操作数的地址,这种寻址方式就属于直接寻址方式。在这种方式中,指令的操作数部分直接是操作数的地址。,例:,MOV A,,,32H,;(,E5H,,,32H,),2,、在,MCS-51,单片机指令系统中,直接寻址方式中可以访问,2,种存储器空间,:,(1),RAM,的低,128,个字节单元,(,00H,7FH,)。,(2),特殊功能寄存器,。,特殊功能寄存器只能用直接寻址方式进行访问。,SFR,可以以名称出现,也可以以地址出现。,MOV A,P0 =MOV A,80H,FAH,RAM,FFH,06H,SFR,FFH,A,ROM,E5H,32H,06H,32H,返回,3,、,寄存器寻址,1,、在该寻址方式中,直接以寄存器的形式给出参与操作的数据。,例,:,MOV A,,,R7,;(,EFH,),2,、寄存器包括,8,个工作寄存器,R0,R7,累加器,A,寄存器,B,、数据指针,DPTR,。,FAH,RAM,FFH,22H,SFR,FFH,A,ROM,EFH,40H,R7,40H,返回,4,、,寄存器间接寻址,1,、在这种寻址方式中,寄存器的内容为不是操作数本身,而是操作数的地址。即操作数通过寄存器间接获得。,例,:,MOV A,,,R0,;(,E6H,),2,、寄存器间接寻址只能使用寄存器,R0,、,R1,作为地址指针,寻址,内部,RAM,区,的数据,;,当访问,外部,RAM,时,可使用,R0,、,R1,及,DPTR,作为地址指针。,寄存器间接寻址符号为,“,”,。,FAH,RAM,FFH,22H,SFR,FFH,A,ROM,E6H,40H,40H,22H,R0,返回,MOV A,,,R0,(内,RAM,),MOVX A,,,R0,(外,RAM,),MOVX A,,,DPTR,(外,RAM,),DPTR,本身是,16,位地址寄存器,所以可以寻址,64K,的外部,RAM,地址空间。若用,R0,和,R1,作间址寄存器,因为是,8,位,必须配合其它地址信号(,P2,),才能寻址,64K,外部,RAM,地址空间。,例如:访问外部,RAM,区,2097H,单元的内容,可以有两种方法:,(,1,)使用,DPTR,做指针,MOV DPTR,,,#2097H,MOVX A,,,DPTR,执行后,,(,2,)使用,R0,或,R1,做指针,其高,8,位地址信息由,P2,口提供。,MOV P2,,,#20H,MOV R1,,,#97H,MOVX A,,,R1,5,、基址,+,变址寄存器间接寻址(,变址寻址),这种寻址方式用于访问,程序存储器,中的数据表格,它以基址寄存器,DPTR,或,PC,的内容为基本地址,加上变址寄存器,A,的内容(地址偏移量)作为操作数的地址。,例,:,MOVC A,A+DPTR,MOVC A,A+PC,常用于查表操作。,返回,E0,A,程序存储区,2040H 93,20E0H,47,2041H ,DPH 20,DPL 00,ALU,如:,MOVC A,,,A+DPTR,设,DPTR=2000H,,,A=E0H,20E0H,47,指令代码,目的地址,rel,是有符号的,8,位二进制数,用补码表示。相对偏移在,127,128,字节单元之间。,在,MCS-51,指令系统中设有转移指令,分为直接转移和相对转移指令,在相对转移指令中采用相对寻址方式。这种寻址方式是以,PC,的内容为基本地址,加上指令中给定的偏移量作为转移地址。,6,、,相对寻址,SJMP LOOP,202AH,程序存储器,2000H,LOOP:,rel,转移指令本身字节数,202AH-2000H-2H=28H(-128,28H9,或,(AC)=1,,,则,(A),3,0,(A),3,0,+06H,;,若,(A),7,4,9,或,(Cy)=1,,,则,(A),7,4,(A),7,4,+60H,4.,十进制调整指令,该指令就是用于对,A,中,BCD,码加法运算结果进行调整。即两个压缩型,BCD,码(两个,BCD,码存放在一个字节存储单元)按照二进制数相加之后,必须经本指令调整,才能得到压缩型,BCD,码和数。,执行该指令时,判断,A,中的低,4,位是否大于,9,和辅助进位标志,AC,是否为“,1”,若两者有一个条件满足,则低,4,位加,6,操作,;,同样,A,中的高,4,位大于,9,或进位标志,Cy,为“,1”,两者有一个条件满足时,高,4,位加,6,操作。,3/4/2026,57,MOV A,56H ;(36),10,的,BCD,码为,00110110,。,ADD A,67H ;(45),10,的,BCD,码为,01000101,。,DA A,这段程序中,第一条指令将立即数,36H(BCD,码,36),送入累加器,A,;,第二条指令进行如下加,法,:,0 1 0 1 0 1 1 0 56,0 1 1 0 0 1 1 1 67,1 0 1 1 1 1 0 1 BD,0 1 1 0 0 1 1 0 66,+,+,1 0 0 1 0 0 0 1 1 123,得结果,BDH,;,第三条指令对累加器,A,进行十进制调整,高,4,、低,4,位均大于,9,因,此要加,66H,得调整的,BCD,码,123,。,3/4/2026,58,例,3-13,设有,2,个,4,位压缩,BCD,码,分别放在内部数据存储器,50H,51H,单元和,60H,61H,单元中,试编写求出两个数的和的程序,结果存放到,40H,41H,单元中,。,MOV A,,,51H,;(,A,)(,51H,),ADD A,,,61H,;(,A,)(,A,),+,(,61H,),DA A,,;,BCD,码调整,MOV 41H,,,A,MOV A,,,50H,ADDC A,,,60H,DA A,MOV 40H,,,A,3/4/2026,59,(,4,),加,1,指令,INC A,;,(A)(A)+1,INC,Rn,;,(,Rn,)(Rn)+1,INC direct,;,(direct)(direct)+1,INC ,Ri,;,(,Ri,)(Ri)+1,INC DPTR,;,(DPTR)(DPTR)+1,将指令中所指出操作数的内容加,1,,,结果仍存放于原单元中去,。若原来的内容为,0FFH,,,则加,1,后将产生溢出,使操作数的内容变成,00H,,,除“,INC A”,影响,P,外,,不影响任何标志。,对,16,位的数据指针寄存器,DPTR,执行加,1,操作,指令执行时,先对低,8,位指针,DPL,的内容加,1,,当产生溢出时就对高,8,位指针,DPH,加,1,,但不影响任何标志。,3/4/2026,60,2.,减法指令,(,1,)带借位减法指令,SUBB A,,,Rn,;,(A)(A)-(Cy)-(,Rn,),SUBB A,,,direct,;,(A)(A)-(Cy)-(direct),SUBB A,,,Ri,;,(A)(A)-(Cy)-(,Ri,),SUBB A,,,#data,;,(A),(A)-(Cy)-data,带借位减法指令的功能是将累加器,A,内容减去源地址单元内容,并减去进位位,Cy,的内容,结果放入累加器,A,中。,两个数相减时,若,D7,位有借位,则置,Cy,为,1,,否则,Cy,清,0,;若,D3,位有借位,则辅助进位,AC=1,,,否则清,AC,。若,D6,、,D7,位不同时借位,则置,OV=1,,,否则清,OV,。若,A,的结果有奇数个,1,,则置奇偶校验位,P,为,1,,否则清,0,。,3/4/2026,61,例,3-14,设累加器,A,的内容为,0C9H,,,寄存器,R2,内容为,54H,,,进位标志,Cy=1,,,执行指令:,SUBB A,,,R2,,,则,(,A,):,11001001,-,(,Cy,):,00000001,11001000,-,(,R2,):,01010100,01110100,其结果为:(,A,),=74H,,,(Cy)=0,,,(AC)=0,,,(OV)=1,3/4/2026,62,例,3-15,试编写计算,0EE33H-A0E0H,的程序,16,位减法运算也需要分两步完成:在进行低,8,位运算前应清进位位,低,8,位运算后由,Cy,保存借位;进行高,8,位运算时,借位位同时参与运算。程序如下:,CLR C,;(,Cy,),0,MOV A,,,#33H,;(,A,),33H,SUBB A,,,#0E0H,;(,A,)(,A,),-E0H,MOV 50H,,,A,;(,50H,)(,A,),MOV A,,,#0EEH,SUBB A,,,#0A0H,MOV 51H,,,A,3/4/2026,63,(,2,)减,1,指令,DEC A,;,(A)(A)-1,DEC,Rn,;,(,Rn,)(Rn)-1,DEC direct,;,(direct)(direct)-1,DEC ,Ri,;,(,Ri,)(Ri)-1,这组指令的功能是将操作数所指的单元内容减,1,,其操作不影响标志位,Cy,。,若单元原始值为,00H,,,则经过减,1,操作后变为,0FFH,,,除“,DEC A”,影响,P,外,不会影响任何标志位。,3/4/2026,64,3,乘、除法指令,MCS-51,单片机指令系统中有乘法、除法指令各一条,它们是两条执行时间最长的指令,执行时间为,4,个机器周期。,()乘法指令,MUL AB,;,(B)(A)(A)(B),乘法指令的功能是将累加器,A,和寄存器,B,的,8,位无符号整数相乘,,16,位积的低,8,位存于,A,中,高,8,位存于,B,中。如果积大于,255,(,FFH,),,则溢出标志,OV,置,1,,否则清,0,。进位标志位,Cy,总是为,0,。,3/4/2026,65,例,3-16,设(,A,),=50H,,(,B,),=0A0H,,,分析执行指令,MUL AB,后,(,A,)、(,B,)、,Cy,、,OV,和,P,分别是多少?,解:,(A)(B),为,3200H,,,则(,A,),=00H,,(,B,),=32H,,,OV=1,,,Cy=0,3/4/2026,66,()除法指令,DIV AB,;,(A)(A)/(B),商,;,(B)(A)/(B),余数,该指令的功能是将,A,中无符号整数除以,B,中无符号整数,所得到商整数部分存于,A,中,余数部分存于,B,中。标志位,Cy,和,OV,清,0,(当除数为,0,时,OV,置,1,)。,3/4/2026,67,3.5,逻辑运算类指令,1,A,操作指令,(,1,)累加器,A,的“清零”与“取反”指令,CLR,A,;,(A)#00H,CPL A,;,(A)(A),CPL A,指令对累加器的内容逐位取反,不影响标志位。,3/4/2026,68,2,),累加器,A,的内容带进位标志位循环左移指令:,RLC A,3,),累加器,A,循环右移指令:,RR A,4,),累加器,A,的内容带进位标志位循环右移指令,RRC A,1,)累加器,A,循环左移指令,RL,A,(,1,)移位指令,1,)移位操作都是对累加器,A,进行操作。,2,)移位指令常用做乘,2,或除,2,运算。,A.7 A.0,A.7 A.0,CY,A.7 A.0,CY,A.7 A.0,3/4/2026,69,例,3-17,若(,A,),=10111101B=0BDH,,,Cy=0,,,分析执行,RLC A,后,(,A,)和,Cy,的结果。,解:执行,RLC A,后,(,A,),=01111010B=7AH,,,Cy=1,。,对,RLC,、,RRC,指令,在,CY=0,时,RLC,相当于,乘,以,2,RRC,相当于,除,以,2,3/4/2026,70,ANL A,Rn,ANL A,direct,ANL A,Ri,ANL A,data,ANL direct,A,ANL direct,data,这组指令的功能是,:,将两个操作数的内容按位进行逻辑与操作,并将结果送回目的操作,数的单元中。,与,0,相与,使被修改数相应位清零,与,1,相与,使被修改数相应位保持原值不变,2.,逻辑与指令,3/4/2026,71,例,3-18,将累加器,A,中压缩,BCD,码分为两个字节,形成非压缩,BCD,码,放入,30H,和,31H,单元中。,解:由题意,将累加器,A,中的低,4,位保留,高,4,位清,0,放入,30H,;,高四位保留,低,4,位清,0,,半字节交换后存入,31H,单元中,得到非压缩,BCD,码。程序为:,MOV 40H,,,A,;,保存,A,中的内容,ANL A,,,#00001111B,;,清高,4,位,保留低,4,位,MOV 30H,,,A,MOV A,,,40H,;,取原数据,ANL A,,,#11110000B,;,保留高,4,位,清低,4,位,SWAP A,MOV 31H,,,A,3/4/2026,72,ORL A,Rn,ORL A,direct,ORL A,Ri,ORL A,data,ORL direct,A,ORL direct,data,这组指令的功能是,:,将两个操作数的内容按位进行逻辑或操作,并将结果送回目的操,作数的单元中。,与,1,相或,使被修改数相应位置,1,,与,0,相或,使被修改数相应位保持原值不变,3.,逻辑或指令,3/4/2026,73,例,3-19,将累加器,A,中的低,4,位由,P1,口的低,4,位输出,,P1,口的高,4,位不变,。,解:,ANL A,,,#00001111B,MOV 30H,,,A,;,保留,A,中的低,4,位,MOV A,,,P1,ANL A,,,#11110000B,;,P1,的高,4,位不变,ORL A,,,30H,MOV P1,,,A,3/4/2026,74,4,逻辑异或运算指令,XPL A,,,Rn,;,(,A)(A)(Rn,),XRL A,,,direct,;,(A)(A)(direct),XRL A,,,Ri,;,(,A)(A)(Ri,),XRL A,,,#data,;,(A)(A)data,XRL direct,,,A,;,(direct)(A)(direct),XRL direct,,,#data,;,(direct)(direct)data,与,1,相异或,使被修改数相应位取反,与,0,相异或,使被修改数相应位保持原值不变;,本指令可判断两个数是否相等,若相等,则异或结果为全“,0”,;否则不相等。,3/4/2026,75,3.6,控制转移类指令,1,无条件转移指令 是指当程序执行到该指令时,无条件转移到指令所提供地址处执行。无条件转移指令共有,4,条,包括长转移指令、短转移指令、绝对转移指令和散转指令。,(,1,)长转移指令,LJMP addr16,;,(PC)addr16,该指令执行后将,16,位地址(,addr16,),传送给,PC,,,从而实现程序转移到新的地址开始运行,该指令可实现,64KB,的范围内任意转移。该指令不影响标志位。,3/4/2026,76,(,2,)绝对转移指令,AJMP addr11,;,(PC)(PC)+2,,,(PC,10,0,)addr11,由,PC,15,11,信息和指令提供低,11,位地址组成,16,位转移目标地址,使程序无条件转向同一,2KB,存储空间目的地址执行。本指令不影响标志位。,3/4/2026,77,本指令的执行前:,PC,的高,5,位为:,00010,,而指令中提供的,11,位地址为:,100 0101 0110,,则指令执行后:,PC,的值为:,0001 0100 0101 0110,,即,1456H,2KB,(,高,5,位地址相同),1000H,1030H,PCPC+2=1032H,(,跳转起始地址,),1456H,AJMP 0456H,(跳转上限),17FFH,(跳转下限),3/4/2026,78,(,3,)短转移指令,SJMP,rel,;,(PC)(PC)+2,,,(PC)(PC)+,rel,指令中,rel,是一个有符号数偏移量,其范围为,-128,+127,,以补码形式给出。若,rel,是正数,则向前转移;若,rel,是负数,则向后转移。,3/4/2026,79,(,4,)散转指令,JMP A+DPTR;(PC)(A)+(DPTR),PC,DPTR,(A)+(DPTR)PC,256B,JMP A+DPTR,该指令执行时,把累加器,A,中的,8,位无符号数与,DPTR,中,16,位数相加,其中装入程序计数器,PC,,,控制程序转到目的地址执行程序。整个指令的执行过程中,不改变累加器,A,和,DPTR,的内容。,3/4/2026,80,例,3-,20,某单片机应用系统有,16,个键,对应的键码值(,00H,0FH,),存放在,R7,中,,16,个键处理程序的入口地址分别为,KEY0,,,KEY1,,,,,KEY15,。,要求按下某键,程序即转移到该键的相应处理程序执行。,解:预先在,ROM,中建立一张起始地址为,KEYG,的转移表:,AJMP KEY0,,,,,AJMP KEY15,,,利用散转指令即可实现多路分支转移处理。,MOV A,,,R7,RL A,;,由于,AJMP,指令为双字节指令,键值乘,2,倍,MOV DPTR,,,#KEYG,;,转移入口基地址送,DPTR,JMP A+DPTR,KEYG,:,AJMP KEY0,AJMP KEY1,AJMP KEY15,3/4/2026,81,2,条件转移指令,条件转移指令是当满足给定的条件时,程序转移到目的地址去执行;条件不满足则顺序执行下一条指令。条件转移指令分为累加器,A,判零转移指令、比较转移指令和循环指令。,(,1,)累加器,A,判零转移指令,JZ,rel,;,(PC)(PC)+2,当,(A)=0,,,(PC)=(PC)+,rel,,,即转移,当,(A)0,,,则程序顺序执行,JNZ,rel,;,(PC)(PC)+2,当,(A)0,,,(PC)=(PC)+,rel,,,即转移,当,(A)=0,,,则程序顺序执行,3/4/2026,82,CJNE A,direct,rel,CJNE A,data,rel,CJNE,Rn,data,rel,CJNE ,Ri,data,rel,这组指令的功能是,:,比较前面两个操作数的大小,如果它们的值不相等则转移。转移地址的计算方法与上述两条指令相同。如果第一个操作数(无符号整数)小于第二个操作数,则进位标志,Cy,置“,1”,否则清“,0”,但不影响任何操作数的内容。,(2),比较转移指令,3/4/2026,83,(3),循环控制转移指令,DJNZ,Rn,,,rel,;,(PC)(PC)+2,,,(Rn)(Rn)-1,当,(Rn)0,时,,(PC)(PC)+,rel,;,当,(,Rn,)=0,时,程序顺序执行。,DJNZ direct,,,rel,;,(PC)(PC)+3,,,(direct)(direct)-1,当,(direct)0,时,,(PC)(PC)+,rel,;,当,(direct)=0,时,程序顺序执行。,执行本指令时,将第一个操作数减,1,后判断结果是否为,0,,若为,0,,则终止循环程序段的执行,程序往下顺序执行;若不为,0,,则转移到目的地址继续执行循环程序段。用两条指令可以构成循环程序,循环次数就是第一个操作数的值。,rel,为相对偏移量。,3/4/2026,84,3.,子程序调用,为简化程序设计,经常把功能完全相同或反复使用的程序段单独编写成子程序,供主程序调用。主程序需要时通过调用指令,无条件转移到子程序处执行,子程序结束时执行返回指令,再返回到主程序继续执行。,3/4/2026,85,(,1,)长调用指令,LCALL,addr16,;,(PC)(PC)+2,,,(SP)(SP)+1,,,(SP)(PC,7,0,),;,(SP)(SP)+1,,,(SP)(PC,15,8,),;,(PC)addr16,3/4/2026,86,(,2,)绝对调用指令,ACALL addr11,;,(PC)(PC)+2,(SP)(SP)+1,,,(SP)(PC,7,0,),;,(SP)(SP)+1,,,(SP)(PC,15,8,),;,(PC,15,0,)addr16,该指令的目的地址形成与,11,位的无条件转移指令类似,只是增加了断点压栈过程。指令的执行不影响标志位。,3/4/2026,87,4,返回指令,返回指令应能自动恢复断点,将原压入栈的,PC,值弹回到,PC,中,保证回到断点处继续执行主程序。返回指令必须用在子程序或中断服务程序的末尾。,(,1,)子程序返回指令,R,ET,;,(PC,15,8,)(SP),,,(SP)(SP)-1,;,(PC,7,0,)(SP),,,(SP)(SP)-1,;,这条指令将堆栈顶的,2,字节单元内容送到,PC,中,使程序返回到调用处。,3/4/2026,88,(,2,)中断返回指令,RETI,;,(PC,15,8,)(SP),,,(SP)(SP)-1,;,(PC,7,0,)(SP),,,(SP)(SP)-1,;,该指令用于中断服务于程序的末尾,将堆栈顶的,2,字节的内容送到,PC,中,它与,RET,指令不同之处是它同释放中断逻辑,使同级中断可以被接受。,3/4/2026,89,5,空操作指令,NOP,;(,PC,)(,PC,),+1,该指令不作任何操作,仅仅将程序计数器,PC,加,1,,使程序继续向下执行。该指令为单周期指令,所以在时间上占用一个机器周期,常用于延时。,3/4/2026,90,3.7,位,操作类指令,CPU,、,程序存储器,与原来共用,数据存储器:,片内,RAM20H2FH,单元共,128,位,位地址为,00H7FH,A,、,B,两个寄存器中的各,8,位,位地址为,E0HE7H,、,F0HF7H,位累加器:由,C,兼任,I/O,口:在,SRF,中共有,66,个布尔,I/O,口,通用,I/O,口:共,32,个(,P0.0P0.7,、,P1.0P1.7,、,P2.0P2.7,、,P3.0P3.7,),用于定时器和串行口进行控制和测试的:,16,个(,TCON0TCON7,、,SCON0SCON7,),用于中断系统的:,11,个(,IE1IE4,、,IE7,、,IP0IP4,),用于,PSW,中的:,7,个(,PSW.0,、,PSW.2PSW.7,),位操作指令:,17,条,8051,位处理器结构,3/4/2026,91,位地址的表示形式,(,1,)直接(位)地址表示方式,如,0D4H,。,(,2,),点表示方式,如,PSW.4,。,(,3,),位名称表示方式,如,RS1,。,(,4,),标号表示方式,如用伪指令,BIT,定义:,WBZD0 BIT EX0,经定义后,允许指令中使用,WBZD0,代替,EX0,。,3/4/2026,92,1,位数据传送指令,位数据传送指令的两个操作数,一个是指定的位单元,另一个必须是位累加器,Cy,(,进位位标志,Cy,)。,MOV C,,,bit,;,(Cy)(bit),MOV bit,,,C,;,(bit)(Cy),bit,为内部,RAM,中的,20H,2FH,单元中,128,个可寻址位和特殊功能寄存器中的可位寻址位。此指令不影响其他寄存器或标志位。,3/4/2026,93,例,3-21,试编程实现将,00H,位内容和,7FH,位内容相互交换的程序。,程序为:,MOV C,,,00H,;,MOV 01H,,,C,MOV C,,,7FH,MOV 00H,,,C,MOV C,,,01H,MOV 7FH,,,C,3/4/2026,94,1,位逻辑运算指令,(,1,)置“,1”,指令,SETB C,;(,Cy,),1,SETB bit,;,(bit)1,(,2,),位清“,0”,指令,CLR C,;,(Cy)0,CLR bit,;,(bit)0,3/4/2026,95,(,3,)位取反指令,CPL C,;,(Cy),(,Cy,),CPL bit,;,(bit),(,bit,),(,4,),位逻辑“与”指令,ANL C,,,bit,;,(Cy),(,Cy,)(,bit,),ANL C,,,/bit,;,(Cy),(,Cy,)(,bit,),(,5,),位逻辑“或”指令,ORL C,,,bit,;,(Cy),(,Cy,)(,bit,),ORL C,,,/bit,;,(Cy),(,Cy,),(,bit,),3/4/2026,96,2,位控制转移指令,位控制转移指令按照不同的条件分为以,Cy,内容为条件的转移指令和以位地址,bit,内容为条件的转移指令两类。,()判布尔累加器,Cy,的转移指令,JC,rel,;,若(,Cy,),=1,,,则(,PC,)(,PC,),+2+,rel,,,即转移,若(,Cy,),=0,,,则(,PC,)(,PC,),+2,,,即顺序执行,JNC,rel,;,若(,Cy,),=0,,,则(,PC,)(,PC,),+2+,rel,,,即转移,若(,Cy,),=1,,,则(,PC,)(,PC,),+2,,,即顺序执行,注:执行该指令时,不改变进位位,Cy,的值。,3/4/2026,97,(,2,)判位变量转移指令,JB bit,,,rel,;,若,(bit)=1,,,则,(PC)(PC)+3+,rel,,,即转移,若(,bit,),=0,,,则(,PC,)(,PC,),+3,,,即顺序执行,JNB bit,,,rel,;,若(,bit,),=0,,,则(,PC,)(,PC,),+3+,rel,,,即转移,若(,bit,),=1,,,则(,PC,)(,PC,),+3,,,即顺序执行,两条指令不改变,bit,值,不影响标志位。,3/4/2026,98,()判位变量为,1,转移并清零指令,JBC bit,,,rel,;,若(,bit,),=0,,,则(,PC,)(,PC,),+3,;,若(,bit,),=1,,,则(,PC,)(,PC,),+3+,rel,,,且(,bit,),0,注意:不管,bit,位为何值,执行该指令后,,bit,位值为,0,。,3/4/2026,99,3.7,伪指令,在汇编源程序的过程中,还有一些指令不要求计算机进行任何操作,也没有对应的机器码,不产生目标程序,不影响程序的执行,仅仅是能够帮助汇编进行的一些指令,称之为伪指令。它主要用来指定程序或数据的起始位置,给出一些连续存放数据的确定地址,或为中间运算结果保留一部分存储空间以及表示源程序结束等等。不同版本的汇编语言,伪指令的符号和含义可能有所不同,但是基本用法是相似的。,3/4/2026,100,(1),设置目标程序起始地址伪指令,ORG,。,格式,:,标号,:,ORG 16,位地址,该伪指令的功能是规定其后面目标程序的起始地址。它放在一段源程序(主程序、子程序)或数据块的前面,说明紧跟在其后的程序段或数据块的起始地址就是指令中的,16,位地址(,4,位十六进制数)。,例如,:ORG 2000H,START:MOVA,7FH,3/4/2026,101,(2),结束汇编伪指令,END,。,格式,:,标号,:,END,END,是汇编语言源程序的结束标志,表示汇编结束。在,END,以后所写的指令,汇编程序都不予以处理。一个源程序只能有一个,END,命令。在同时包含有主程序和子程序的源程序中,也只能有一个,END,命令,并放到所有指令的最后,否则,就有一部分指令不能被汇编。,3/4/2026,102,(3),定义字节伪指令,DB,。,格式,:,标号,:,DB,项或项表,其中项或项表指一个字节,或用逗号分开的字符串,或以引号括起来的字符串(一个字符用,ASCII,码表示,就相当于一个字节)。该伪指令的功能是把项或项表的数值(字符则,用,ASCII,码)存入从标号开始的连续存储单元中。,3/4/2026,103,例如,:ORG 2000H,TAB1:DB 30H,8AH,7FH,73,DB 5,A,BCD,由于,ORG 2000H,所以,TAB1,的地址为,2000H,因此以上伪指令经汇编以后,将对,2000H,开,始的若干内存单元赋值,:,(2000H)=30H,(2001H)=8AH,(2002H)=7FH,3/4/2026,104,(2003H)=49H ;,十进制数,73,以十六进制数存放,(2004H)=35H ;,数字,5,的,ASCII,码,(2005H)=41H ;,字母,A,的,ASCII,码,(2006H)=42H ;BCD,中,B,的,ASCII,码,(2007H)=43H ;BCD,中,C,的,ASCII,码,(2008H)=44H ;BCD,中,D,的,ASCII,码,又如,:,1FFDH LJMP 1234H,DB 30H,8AH,7FH,73,5,A,BCD,3/4/2026,105,(4),定义字伪指令,DW,。,格式,:,标号,:,DW,项或项表,DW,伪指令与,DB,的功能类似,所不同的是,DB,用于定义一个字节(,8,位二进制数),而,DW,则用于定义一个字(即两个字节,16,位二进制数)。在执行汇编程序时,机器会自动按高,8,位先存入,低,8,位后存入的格式排列,这和,MCS51,指令中,16,位数据存放的方式一致。,例如,:ORG 1500H,T展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




第3章-MCS-51单片机的指令系统.ppt



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/13344420.html