单片机课件:第3章 指令系统及汇编语言程序设计

上传人:努力****83 文档编号:189240818 上传时间:2023-02-21 格式:PPT 页数:248 大小:3MB
返回 下载 相关 举报
单片机课件:第3章 指令系统及汇编语言程序设计_第1页
第1页 / 共248页
单片机课件:第3章 指令系统及汇编语言程序设计_第2页
第2页 / 共248页
单片机课件:第3章 指令系统及汇编语言程序设计_第3页
第3页 / 共248页
点击查看更多>>
资源描述
第 3 章 指令系统及汇编语言程序设计3.1 MCS-51单片机汇编语言与指令格式3.2 寻址方式3.3 MCS-51单片机指令系统3.4 汇编语言及汇编语言程序设计3.5 基本程序设计方法本章小结习题 第 3 章 指令系统及汇编语言程序设计3.1.1 单片机的汇编语言单片机的汇编语言由于计算机只能识别二进制机器语言代码,它是一种由于计算机只能识别二进制机器语言代码,它是一种用二进制数用二进制数0、1组成的代码,不易辨识、记忆和书写,因此组成的代码,不易辨识、记忆和书写,因此难以直接用它来进行程序设计。难以直接用它来进行程序设计。为了既能体现机器语言的特点,又便于人们理解、记忆为了既能体现机器语言的特点,又便于人们理解、记忆和书写,计算机常采用助记符来编写指令。助记符是根据机和书写,计算机常采用助记符来编写指令。助记符是根据机器指令的不同功能和操作对象来描述指令的,它采用有关的器指令的不同功能和操作对象来描述指令的,它采用有关的英文缩写来描述指令的特征,因此便于记忆、理解和分类。英文缩写来描述指令的特征,因此便于记忆、理解和分类。这种采用助记符和其他一些符号所编写的指令程序称为汇编这种采用助记符和其他一些符号所编写的指令程序称为汇编语言源程序。语言源程序。3.1 MCS-51单片机汇编语言与指令格式单片机汇编语言与指令格式 第 3 章 指令系统及汇编语言程序设计3.1.2 指令格式指令格式MCS-51的指令有的指令有111条,分别表征条,分别表征30多种基本指令功能。多种基本指令功能。其汇编指令格式如下:其汇编指令格式如下:标号:操作码标号:操作码 目的操作数,源操作数目的操作数,源操作数 ;注释;注释标号是该指令的符号地址,表明该指令在程序中的位置,标号是该指令的符号地址,表明该指令在程序中的位置,在其他指令中可被引用,经常出现在转移指令中,可根据需在其他指令中可被引用,经常出现在转移指令中,可根据需要设置。标号后用要设置。标号后用“:”与操作码分隔开。标号的命名应符与操作码分隔开。标号的命名应符合字符集,即英语的大小写字母合字符集,即英语的大小写字母(az,AZ)、数字、数字09。标号严禁使用保留字符,如指令助记符、伪指令、常数等语标号严禁使用保留字符,如指令助记符、伪指令、常数等语言规范中已经使用了的符号,长度不能超过言规范中已经使用了的符号,长度不能超过8个字符。个字符。第 3 章 指令系统及汇编语言程序设计操作码和操作数是指令的核心部分,二者之间用空格分操作码和操作数是指令的核心部分,二者之间用空格分隔。操作码的作用是命令隔。操作码的作用是命令CPU作何操作;操作数则是该操作作何操作;操作数则是该操作指令的作用对象,分为目的操作数和源操作数,二者之间用指令的作用对象,分为目的操作数和源操作数,二者之间用“,”分开。有些指令中无操作数,有些只有一个操作数。分开。有些指令中无操作数,有些只有一个操作数。注释是对该指令功能的解释,主要是便于理解和阅读程序,注释是对该指令功能的解释,主要是便于理解和阅读程序,可根据需要适当添加,编译器对注释是不作处理的。注释之可根据需要适当添加,编译器对注释是不作处理的。注释之前要用前要用“;”与操作指令分开。与操作指令分开。从指令的二进制代码表示的角度看,指令格式以从指令的二进制代码表示的角度看,指令格式以8位二位二进制进制(1B)为基础,分为单字节、双字节和三字节指令。为基础,分为单字节、双字节和三字节指令。第 3 章 指令系统及汇编语言程序设计1.单字节指令单字节指令 单字节指令的二进制代码只有一个字节。单字节指令分单字节指令的二进制代码只有一个字节。单字节指令分为两类:一类是无操作数的单字节指令,其指令码只有操作为两类:一类是无操作数的单字节指令,其指令码只有操作码字段,操作数是隐含在操作码中的;另一类是含有操作数码字段,操作数是隐含在操作码中的;另一类是含有操作数寄存器编号的单字节指令,其指令码由操作码字段和用来指寄存器编号的单字节指令,其指令码由操作码字段和用来指示操作数所在寄存器号的地址码组成。其格式如下:示操作数所在寄存器号的地址码组成。其格式如下:7 0 操作码(地址码)第 3 章 指令系统及汇编语言程序设计2.双字节指令双字节指令 双字节指令的二进制代码有两个字节:第一个字节是操双字节指令的二进制代码有两个字节:第一个字节是操作码作码(或操作码加操作数所在寄存器的地址码或操作码加操作数所在寄存器的地址码),第二个字节,第二个字节是数据或数据所在的地址码。其格式如下:是数据或数据所在的地址码。其格式如下:7 0 第一字节 操作码(地址码)第二字节 数据或地址码 第 3 章 指令系统及汇编语言程序设计3.三字节指令三字节指令三字节指令中,第一字节是操作码,第二和第三字节是三字节指令中,第一字节是操作码,第二和第三字节是操作数或操作数地址。其格式如下:操作数或操作数地址。其格式如下:7 0 第一字节 操作码 第二字节 数据或地址码 第三字节 数据或地址码 第 3 章 指令系统及汇编语言程序设计3.1.3 指令中的常用符号指令中的常用符号在分类介绍各类指令之前,下面先对描述指令的一些在分类介绍各类指令之前,下面先对描述指令的一些符号的意义进行简单约定。符号的意义进行简单约定。(1)Ri和和Rn:R表示当前工作寄存器区中的工作寄存器;表示当前工作寄存器区中的工作寄存器;i表示表示0或或1,即,即R0和和R1;n表示表示07,即,即R0R7。当前工作。当前工作寄存器的选定是由寄存器的选定是由PSW的的RS1位和位和RS0位决定的。位决定的。(2)#data:#表示立即数,表示立即数,data为为8位常数。位常数。#data是指是指包含在指令中的包含在指令中的8位立即数。位立即数。(3)#data16:包含在指令中的:包含在指令中的16位立即数。位立即数。第 3 章 指令系统及汇编语言程序设计(4)rel:相对地址,以补码形式表示的地址偏移量,范:相对地址,以补码形式表示的地址偏移量,范围为围为-128+127,主要用于无条件相对短转移指令,主要用于无条件相对短转移指令SJMP和和所有的条件转移指令中。所有的条件转移指令中。(5)addr16:16位目的地址。目的地址可在全部程序存位目的地址。目的地址可在全部程序存储器的储器的64 KB空间范围内,主要用于无条件长转移指令空间范围内,主要用于无条件长转移指令LJMP和子程序长调用指令和子程序长调用指令LCALL中。中。(6)addr11:11位目的地址。目的地址应与下一条指令位目的地址。目的地址应与下一条指令处于相同的处于相同的2 KB程序存储器地址空间范围内,主要用于绝对程序存储器地址空间范围内,主要用于绝对转移指令转移指令AJMP和子程序绝对调用指令和子程序绝对调用指令ACALL中。中。第 3 章 指令系统及汇编语言程序设计(7)direct:表示直接寻址的地址,即:表示直接寻址的地址,即8位内部数据存储位内部数据存储器器RAM的单元地址的单元地址(0127/255),或特殊功能寄存器,或特殊功能寄存器SFR的的地址。对于地址。对于SFR,可直接用其名称来代替其直接地址。,可直接用其名称来代替其直接地址。(8)bit:内部数据存储器:内部数据存储器RAM和特殊功能寄存器和特殊功能寄存器SFR中中的可直接寻址位地址。的可直接寻址位地址。(9):间接寻址寄存器或基地址寄存器的前缀:间接寻址寄存器或基地址寄存器的前缀(如如Ri、DPTR),表示寄存器间接寻址。,表示寄存器间接寻址。第 3 章 指令系统及汇编语言程序设计(10)(x):表示:表示x中的内容。中的内容。(11)(x):表示由:表示由x寻址的单元中的内容,即寻址的单元中的内容,即(x)为地址,为地址,该地址的内容用该地址的内容用(x)表示。表示。(12)/和和符号:符号:/表示对该位操作数取反,但不影响该表示对该位操作数取反,但不影响该位的原值;位的原值;表示指令操作流程,将箭头一方的内容送入箭表示指令操作流程,将箭头一方的内容送入箭头另一方的单元中。头另一方的单元中。第 3 章 指令系统及汇编语言程序设计3.2.1 寄存器寻址寄存器寻址指令中的操作数是放在寄存器中的,找到了寄存器就指令中的操作数是放在寄存器中的,找到了寄存器就可得到操作数,这种寻址方式称为寄存器寻址。寄存器寻址可得到操作数,这种寻址方式称为寄存器寻址。寄存器寻址的工作寄存器指的是的工作寄存器指的是R0R7、累加器、累加器A、寄存器、寄存器B、数据指、数据指针针DPTR、CY(作为位处理累加器作为位处理累加器)等。等。例如:例如:机器码机器码 助记符助记符11101011 MOV A,R33.2 寻寻 址址 方方 式式 第 3 章 指令系统及汇编语言程序设计这条指令表示寄存器送数给累加器,为一条单字节指令,这条指令表示寄存器送数给累加器,为一条单字节指令,低低3位位011代表工作寄存器代表工作寄存器R3的地址,高的地址,高5位位11101代表从寄存代表从寄存器往累加器器往累加器A送数据的操作。该指令的低送数据的操作。该指令的低3位可从位可从000到到111变变化,分别代表了化,分别代表了R0R7。设。设R3中的操作数是中的操作数是B9H,上述指,上述指令的寻址过程如图令的寻址过程如图3.1所示。所示。第 3 章 指令系统及汇编语言程序设计图3.1 寄存器寻址方式示意图第 3 章 指令系统及汇编语言程序设计3.2.2 立即寻址立即寻址指令的源操作数是一个数值,这种操作数被称做立即指令的源操作数是一个数值,这种操作数被称做立即数,在指令中用数,在指令中用“#”作为其前缀。含有立即数的指令的指令作为其前缀。含有立即数的指令的指令码中,操作码后面的字节内容就是操作数本身,不需要到其码中,操作码后面的字节内容就是操作数本身,不需要到其他地址单元去取,这种寻址方式被称为立即寻址方式。他地址单元去取,这种寻址方式被称为立即寻址方式。例如:例如:机器码机器码 助记符助记符 注释注释74 FA MOV A,#0FAH ;A FAHFAH是立即数,是立即数,74H是操作码,指令功能是将立即数送是操作码,指令功能是将立即数送入累加器入累加器A。程序存储器中指令以机器码的形式存放。程序存储器中指令以机器码的形式存放(机器码机器码由系统自动生成,实际编程不需要写出由系统自动生成,实际编程不需要写出),上述指令的寻址,上述指令的寻址过程如图过程如图3.2所示。所示。第 3 章 指令系统及汇编语言程序设计图3.2 立即寻址方式示意图第 3 章 指令系统及汇编语言程序设计在在MCS-51指令系统中还有一条指令系统中还有一条16bit立即寻址指令。立即寻址指令。例如:例如:机器码机器码 助记符助记符 注释注释90 30 01 MOV DPTR,#3001H;DPH 30H,DPL 01H 上述指令的功能是将上述指令的功能是将16bit立即数立即数3001H送给数据指针送给数据指针DPTR。第 3 章 指令系统及汇编语言程序设计3.2.3 寄存器间接寻址寄存器间接寻址寄存器的内容不是操作数本身,而是存放操作数的地寄存器的内容不是操作数本身,而是存放操作数的地址,要获取操作数需要通过寄存器间接得到,这种寻址方式址,要获取操作数需要通过寄存器间接得到,这种寻址方式称为寄存器间接寻址。称为寄存器间接寻址。寄存器间接寻址只能使用寄存器寄存器间接寻址只能使用寄存器R0或或R1作为间接地址作为间接地址寄存器来寻址内部寄存器来寻址内部RAM(00HFFH)中的数据。寄存器前用中的数据。寄存器前用符号符号“”表示采用间接寻址方式。对于内部表示采用间接寻址方式。对于内部RAM有有256B的的52系列单片机,其高系列单片机,其高128B(80HFFH)只能采用寄存器间接只能采用寄存器间接寻址方式,以避免和同样采用此区地址的寻址方式,以避免和同样采用此区地址的SFR发生冲突。发生冲突。第 3 章 指令系统及汇编语言程序设计寄存器间接寻址也适用于访问外部寄存器间接寻址也适用于访问外部RAM,用,用DPTR作为作为间接寻址寄存器可寻址间接寻址寄存器可寻址64KB空间。对于外部空间。对于外部RAM的低的低256B单元,也可用单元,也可用R0、R1作为间接寻址寄存器。作为间接寻址寄存器。值得注意的是,寄存器间接寻址方式不能用于寻址特殊值得注意的是,寄存器间接寻址方式不能用于寻址特殊功能寄存器。功能寄存器。例如:例如:MOV A,R1 ;A(R1)上述指令的功能是把上述指令的功能是把R1所指出的内部所指出的内部RAM单元中的内单元中的内容送到累加器容送到累加器A。若。若R1的内容为的内容为40H,内部,内部RAM的的40H单元单元中的内容是中的内容是0A6H,则指令,则指令“MOV A,R1”的功能是将的功能是将0A6H这个数送到累加器这个数送到累加器A,如图,如图3.3所示。所示。第 3 章 指令系统及汇编语言程序设计图3.3 寄存器间接寻址示意图第 3 章 指令系统及汇编语言程序设计若若R1的内容是的内容是90H,则,则“MOV A,R1”是将内部是将内部RAM 90H(52子系列子系列)单元的值送给累加器单元的值送给累加器A。又因为。又因为90H是是特殊功能寄存器特殊功能寄存器P1的地址,所以要寻址的地址,所以要寻址P1的话,需要采用直的话,需要采用直接寻址的方式,即接寻址的方式,即“MOV A,90H”才表示将才表示将P1的内容送到的内容送到累加器累加器A,请注意区别。,请注意区别。第 3 章 指令系统及汇编语言程序设计3.2.4 直接寻址直接寻址指令中直接给出操作数所在的存储器地址,以供寻址指令中直接给出操作数所在的存储器地址,以供寻址取数或存数的寻址方式称为直接寻址。取数或存数的寻址方式称为直接寻址。例如:例如:MOV A,50H;(A)(50H)该指令的功能是把内部数据存储器该指令的功能是把内部数据存储器RAM 50H单元内的单元内的内容送到累加器内容送到累加器A。该指令直接给出了源操作数的地址。该指令直接给出了源操作数的地址50H。该指令的机器码为该指令的机器码为E5H 50H。MCS-51系列单片机的直接寻址可用于访问内部数据存系列单片机的直接寻址可用于访问内部数据存储器,也可用于访问程序存储器。储器,也可用于访问程序存储器。第 3 章 指令系统及汇编语言程序设计直接寻址可访问内部直接寻址可访问内部RAM的低的低128B单元单元(00H7FH),同时也是访问高同时也是访问高128B单元的特殊功能寄存器单元的特殊功能寄存器SFR的唯一方法。的唯一方法。由于由于SFR占用片内占用片内RAM 80HFFH间的地址,因此对于间的地址,因此对于MCS-51系列单片机,片内系列单片机,片内RAM只有只有128B单元,与单元,与SFR的地的地址没有重叠,对于址没有重叠,对于MCS-52系列,片内系列,片内RAM有有256B单元,单元,其高其高128B单元与单元与SFR的地址是重叠的。的地址是重叠的。第 3 章 指令系统及汇编语言程序设计为避免混淆,单片机规定:为避免混淆,单片机规定:直接寻址的指令不能访问片内直接寻址的指令不能访问片内RAM的高的高128B单元单元(80HFFH)。若要访问这些单元,则只能用寄存器间接寻。若要访问这些单元,则只能用寄存器间接寻址指令,而要访问址指令,而要访问SFR只能用直接寻址指令。另外,访问只能用直接寻址指令。另外,访问SFR可在指令中直接使用该寄存器的名字来代替地址,如可在指令中直接使用该寄存器的名字来代替地址,如“MOV A,80H”可以写成可以写成“MOV A,P0”,因为,因为P0口的地口的地址为址为80H。直接寻址还可直接访问片内。直接寻址还可直接访问片内221个位地址空间。个位地址空间。第 3 章 指令系统及汇编语言程序设计直接寻址访问程序存储器的有长转移指令直接寻址访问程序存储器的有长转移指令LJMP addr16、绝对转移指令绝对转移指令AJMP addr11、长调用指令、长调用指令LCALL addr16与与绝对调用指令绝对调用指令ACALL addr11,它们都直接给出了程序存储,它们都直接给出了程序存储器的器的16位地址位地址(寻址范围覆盖寻址范围覆盖64 KB)或或11位地址位地址(覆盖覆盖2 KB)。执行这些指令后,程序计数器执行这些指令后,程序计数器PC的低的低16位或低位或低11位地址将更位地址将更换为指令直接给出的地址,机器将改为访问以所给地址为起换为指令直接给出的地址,机器将改为访问以所给地址为起始地址的存储器区间。始地址的存储器区间。第 3 章 指令系统及汇编语言程序设计3.2.5 变址寻址变址寻址这种寻址方式常用于访问程序存储器中的数据表格。这种寻址方式常用于访问程序存储器中的数据表格。变址寻址把基址寄存器变址寻址把基址寄存器(DPTR或或PC)和变址寄存器和变址寄存器A的内容的内容作为无符号数相加形成作为无符号数相加形成16位的地址,该地址单元中所存放的位的地址,该地址单元中所存放的数据为所需的操作数。例如:数据为所需的操作数。例如:MOVC A,A+DPTR ;A(DPTR)+()MOVC A,A+PC ;A(PC)+()A中为无符号数,指令功能是把中为无符号数,指令功能是把A的内容和的内容和DPTR的内容的内容或当前或当前PC的内容相加得到程序存储器的有效地址,把该存的内容相加得到程序存储器的有效地址,把该存储器单元中的内容送到储器单元中的内容送到A。“MOVC A,A+DPTR”的指令码是的指令码是93H,寻址过程如图,寻址过程如图3.4所示。所示。第 3 章 指令系统及汇编语言程序设计图3.4 基址寄存器加变址寄存器间接寻址示意图第 3 章 指令系统及汇编语言程序设计3.2.6 相对寻址相对寻址程序的执行中往往有相对转移的需要,即以当前指令程序的执行中往往有相对转移的需要,即以当前指令的位置的位置(PC值值)为基准点,加上指令中给出的相对偏移量为基准点,加上指令中给出的相对偏移量(rel)来获得操作数所在的实际地址。这类寻址方式称为相对寻址,来获得操作数所在的实际地址。这类寻址方式称为相对寻址,是转移指令中用到的寻址方式。偏移量是转移指令中用到的寻址方式。偏移量rel是符号数,在是符号数,在-128+127范围内,用补码表示为范围内,用补码表示为80H7FH,实际应用中常,实际应用中常用符号地址代替。用符号地址代替。例如:例如:指令指令 JC rel ;C=1跳转跳转 上述指令的机器码为上述指令的机器码为40H rel。第 3 章 指令系统及汇编语言程序设计第一字节为操作码,第二字节就是相对于程序计数器第一字节为操作码,第二字节就是相对于程序计数器PC当前地址的偏移量当前地址的偏移量rel。注意:这里的注意:这里的“PC当前地址当前地址”是指执行完这条是指执行完这条“JC rel”指令后的指令后的PC值,而不是指向该条指令的值,而不是指向该条指令的PC值。值。若转移指令操作码存放在若转移指令操作码存放在0500H单元,偏移量存放在单元,偏移量存放在0501H单元,则该指令执行后单元,则该指令执行后PC已为已为0502H。若偏移量。若偏移量rel为为05H,则转移到的目标地址为,则转移到的目标地址为0507H,即当,即当C=1时,将去执时,将去执行行0507H单元中的指令。具体过程见后面相关的指令介绍。单元中的指令。具体过程见后面相关的指令介绍。第 3 章 指令系统及汇编语言程序设计3.2.7 位寻址位寻址MCS-51系列单片机具有位寻址功能,即指令中直接给系列单片机具有位寻址功能,即指令中直接给出位地址,可以对内部数据存储器出位地址,可以对内部数据存储器RAM中的中的128位和特殊寄位和特殊寄存器存器SFR中的中的93位进行寻址,并且位操作指令可对地址空间位进行寻址,并且位操作指令可对地址空间的每一位进行传送与逻辑操作。的每一位进行传送与逻辑操作。第 3 章 指令系统及汇编语言程序设计例如:例如:SETB PSW.3 ;(PSW.3)1该指令的功能是给程序状态字该指令的功能是给程序状态字PSW中的中的RS0置置1。该指。该指令为双字节指令,机器代码为令为双字节指令,机器代码为D2H D3H,指令的第二字节直,指令的第二字节直接给出位地址接给出位地址D3H(PSW.3的位地址的位地址)。综上所述,在综上所述,在MCS-51系列单片机的存储空间中,指令系列单片机的存储空间中,指令究竟对哪个存储器空间进行操作是由指令操作码和寻址方式究竟对哪个存储器空间进行操作是由指令操作码和寻址方式确定的。确定的。7种寻址方式及使用空间如表种寻址方式及使用空间如表3.1所示。所示。第 3 章 指令系统及汇编语言程序设计表表3.1 7种寻址方式及使用空间种寻址方式及使用空间寻 址 方 式 使 用 空 间 寄存器寻址 R0R7、A、B、CY、DPTR 寄存器 立即寻址 程序存储器 寄存器间接寻址 内部 RAM 的 00HFFH、外部 RAM 直接寻址 内部 RAM 的 00H7FH、SFR、程序存储器 变址寻址 程序存储器 相对寻址 程序存储器 位寻址 内部 RAM 中 20H2FH、SFR 第 3 章 指令系统及汇编语言程序设计3.3.1 数据传送类指令数据传送类指令数据传送类指令共数据传送类指令共29条,是指令系统中最活跃、使用条,是指令系统中最活跃、使用最多的一类指令。一般的操作是把源操作数传送到目的操作最多的一类指令。一般的操作是把源操作数传送到目的操作数,即指令执行后目的操作数改为源操作数,而源操作数保数,即指令执行后目的操作数改为源操作数,而源操作数保持不变。若要求在进行数据传送时,不丢失目的操作数,则持不变。若要求在进行数据传送时,不丢失目的操作数,则可以用交换型传送指令。可以用交换型传送指令。3.3 MCS-51单片机指令系统单片机指令系统第 3 章 指令系统及汇编语言程序设计数据传送类指令不影响进位标志数据传送类指令不影响进位标志CY、半进位标志、半进位标志AC和和溢出标志溢出标志OV,但当传送或交换数据后影响累加器,但当传送或交换数据后影响累加器A的值时,的值时,奇偶标志奇偶标志P的值应按的值应按A的值重新设定。的值重新设定。按数据传送类指令的操作方式,又可把传送类指令分为按数据传送类指令的操作方式,又可把传送类指令分为3种类型:数据传送、数据交换和堆栈操作,并使用种类型:数据传送、数据交换和堆栈操作,并使用8种助记种助记符符(MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH及及POP)。表。表3.2给出了各种数据传送类指令的助记符和给出了各种数据传送类指令的助记符和对应的操作数。对应的操作数。第 3 章 指令系统及汇编语言程序设计表表3.2 数据传送类指令的助记符与操作数数据传送类指令的助记符与操作数功 能 助 记 符 操作数与传送方向 内部数据存储器传送 MOV ARnRidirect?#data DPTR?#data16 ARn Ridirect directdirectRnRi 外部数据存储器传送 MOVX ARiDPTR 数据传送 程序存储器传送 MOVC A?A+DPTRA+PC 字节交换 XCH A RnRidirect 半字节交换 XCHD A 低四位Ri 低四位 数据交换 A 高低 4 位互换 SWAP A 低四位A 高四位 压入堆栈 PUSH 堆栈操作 弹出堆栈 POP SPdirect 第 3 章 指令系统及汇编语言程序设计1内部数据存储器数据传送指令内部数据存储器数据传送指令内部数据存储器内部数据存储器RAM区是数据传送最活跃的区域,可区是数据传送最活跃的区域,可用的指令数也最多,共有用的指令数也最多,共有16条指令,指令操作码助记符为条指令,指令操作码助记符为MOV。内部。内部RAM间的数据传递关系如图间的数据传递关系如图3.5所示。为了便于所示。为了便于理解指令功能,下面按对源操作数的寻址方式逐一介绍各条理解指令功能,下面按对源操作数的寻址方式逐一介绍各条指令。指令。第 3 章 指令系统及汇编语言程序设计图3.5 内部RAM间的数据传递关系图第 3 章 指令系统及汇编语言程序设计1)立即寻址立即寻址 该寻址方式下,内部该寻址方式下,内部RAM区的数据传送指令有如下区的数据传送指令有如下5条。条。这里描述指令格式的约定次序为操作码助记符、目的操作数、这里描述指令格式的约定次序为操作码助记符、目的操作数、源操作数、功能注释,以下类同,不再说明。源操作数、功能注释,以下类同,不再说明。操作码助记符操作码助记符 目的操作数目的操作数 源操作数源操作数 功能注释功能注释 操作码助记符 目的操作数 源操作数 功能注释 MOV Ri,#data ;(Ri)?#data MOV Rn,#data ;(Rn)?#data MOV DPTR,#data16 ;(DPTR)?#data16 MOV A,#data ;(A)?#data MOV direct,#data ;(direct)?#data 第 3 章 指令系统及汇编语言程序设计这组指令表明,这组指令表明,8位立即数可以直接传送到内部数据区位立即数可以直接传送到内部数据区RAM的各个位置,并且可把的各个位置,并且可把16位立即数直接装入数据指针位立即数直接装入数据指针DPTR。其他相关指令的功能及应用举例如下:。其他相关指令的功能及应用举例如下:(1)MOV direct,#data ;(direct)#data 该指令的功能是把立即数传送到内部数据存储器该指令的功能是把立即数传送到内部数据存储器RAM的的00H7FH以及特殊功能寄存器以及特殊功能寄存器SFR的各单元中。该指令的各单元中。该指令为三字节指令。例如,把立即数为三字节指令。例如,把立即数20H传送到传送到RAM的的30H单元单元和和P1口口(口地址为口地址为90H),可采用如下指令:,可采用如下指令:MOV 30H,#20H ;(30H)#20H MOV P1,#20H ;(90H)#20H(2)MOV Ri,#data ;(Ri)#data 第 3 章 指令系统及汇编语言程序设计该指令的功能是把立即数传送到由该指令的功能是把立即数传送到由R0和和R1寄存器的内寄存器的内容指出的片内数据存储器容指出的片内数据存储器RAM的单元中的单元中(MCS-51系列为系列为00H7FH,MCS-52系列为系列为00HFFH)。当使用。当使用R0和和R1寄寄存器时,机器代码分别为存器时,机器代码分别为76H和和77H,而,而R0、R1属于片内属于片内RAM中的哪一组工作寄存器,则要由中的哪一组工作寄存器,则要由PSW中的中的RS1和和RS0决决定。如果要把立即数定。如果要把立即数60H传送到传送到RAM的的30H单元,则需用如单元,则需用如下两条指令:下两条指令:MOV R0,#30H ;(R0)#30HMOV R0,#60H ;(R0)#60H 由此可见,完成同样的功能,所用指令不同,程序所占由此可见,完成同样的功能,所用指令不同,程序所占空间不同,执行效率也不同。因此,在实际编程时要注意程空间不同,执行效率也不同。因此,在实际编程时要注意程序的优化。序的优化。第 3 章 指令系统及汇编语言程序设计(3)MOV Rn,#data ;(Rn)#data该指令的功能是把立即数传送到内部寄存器该指令的功能是把立即数传送到内部寄存器R0R7中,中,该指令为双字节指令,机器代码如下:该指令为双字节指令,机器代码如下:0 1 1 1 1 r r r data 其中,其中,rrr取值为取值为000、001、110、111,对应,对应R0、R1、R6、R7共共8个寄存器,机器代码为个寄存器,机器代码为78、79、7E、7F。但在片内。但在片内RAM中属于哪一组的中属于哪一组的R0R7,也要由,也要由PSW中中RSl和和RS0的设置而定。该指令共对应的设置而定。该指令共对应8条指令,但在条指令,但在MCS-51单片机指令系统中,该指令只统计为一条。单片机指令系统中,该指令只统计为一条。第 3 章 指令系统及汇编语言程序设计(4)MOV DPTR,#data16 ;(DPTR)#data16该指令的功能是把该指令的功能是把16位立即数装入数据指针位立即数装入数据指针DPTR中。中。该指令是该指令是MCS-51系列单片机指令系统中唯一一条系列单片机指令系统中唯一一条16位数据位数据传送指令。该指令为三字节指令,第一字节为传送指令。该指令为三字节指令,第一字节为90H,第二字,第二字节为高节为高8位立即数,第三字节为低位立即数,第三字节为低8位立即数。位立即数。例如,例如,“MOV DPTR,#5534H”指令执行后,指令执行后,DPTR寄寄存器的高存器的高8位寄存器位寄存器DPH的内容为的内容为55H,低,低8位寄存器位寄存器DPL的的内容为内容为34H。该指令的机器代码为。该指令的机器代码为90H 55H 34H。第 3 章 指令系统及汇编语言程序设计2)寄存器寻址寄存器寻址在该寻址方式下,内部在该寻址方式下,内部RAM区的数据传送指令有以下区的数据传送指令有以下5条:条:MOV direct,A ;(direct)(A)MOV Ri,A ;(Ri)(A)MOV Rn,A ;(Rn)(A)MOV A,Rn ;(A)(Rn)MOV direct,Rn ;(direct)(Rn)第 3 章 指令系统及汇编语言程序设计这组指令的功能是把累加器A的内容传送到内部数据区RAM的各个单元,或者把指定工作寄存器R0R7中的内容传送到累加器A、direct所指定的片内RAM的00H7FH单元或特殊功能寄存器SFR中。但不能用这类指令在内部工作寄存器之间直接传送。例如,不存在“MOV R1,R2”这样的指令。第 3 章 指令系统及汇编语言程序设计3)直接寻址直接寻址在该寻址方式下,内部在该寻址方式下,内部RAM区的数据传送指令有如下区的数据传送指令有如下4条:条:MOV A,direct ;(A)(direct)MOV Rn,direct ;(Rn)(direct)MOV Ri,direct ;(Ri)(direct)MOV direct2,direct1;(direct2)(direct1)第 3 章 指令系统及汇编语言程序设计这组指令将直接地址所规定的内部这组指令将直接地址所规定的内部RAM单元单元(片内片内RAM的的00H7FH,SFR的的80HFFH单元单元)的内容传送到累加器的内容传送到累加器A、寄存器、寄存器Rn,并能实现内部数据寄存器,并能实现内部数据寄存器RAM之间、特殊之间、特殊功能寄存器功能寄存器SFR之间或之间或SFR与内部与内部RAM之间的直接数据传递。之间的直接数据传递。直接传递不需要通过累加器直接传递不需要通过累加器A或者工作寄存器来间接传送,或者工作寄存器来间接传送,从而提高了数据传送的效率。从而提高了数据传送的效率。注意:注意:52子系列单片机的片内子系列单片机的片内RAM高高128B单元单元(80HFFH)不能用直接寻址的方法传送到不能用直接寻址的方法传送到RAM的其他部分,而只的其他部分,而只能用间接寻址的方法来进行传送。另外,访问能用间接寻址的方法来进行传送。另外,访问SFR 80HFFH地址中没有定义的单元是没有意义的。地址中没有定义的单元是没有意义的。第 3 章 指令系统及汇编语言程序设计例如:例如:MOV P2,P1 ;(P2)(P1)该指令的功能是不通过其他寄存器,该指令的功能是不通过其他寄存器,直接把直接把P1口口(端口端口地址地址90H)的内容传送到的内容传送到P2口口(端口地址端口地址A0H)输出,提高了效输出,提高了效率。该指令为三字节指令,机器代码为率。该指令为三字节指令,机器代码为85H 90H A0H。4)寄存器间接寻址寄存器间接寻址在该寻址方式下,内部在该寻址方式下,内部RAM区的数据传送指令有以下区的数据传送指令有以下两条:两条:MOV A,Ri ;(A)(Ri)MOV direct,Ri ;(direct)(Ri)第 3 章 指令系统及汇编语言程序设计这组指令把以这组指令把以Ri的内容作为地址进行寻址所得到的单元的内容作为地址进行寻址所得到的单元的内容,传送到累加器的内容,传送到累加器A或或direct指定的片内指定的片内RAM区单元。区单元。间接寻址可访问片内数据存储器的低间接寻址可访问片内数据存储器的低128B单元单元(00H7FH)和高和高128B单元单元(80HFFH,对,对52子系列子系列),但不能用于寻址,但不能用于寻址特殊功能寄存器特殊功能寄存器SFR。第 3 章 指令系统及汇编语言程序设计例如:设内部例如:设内部RAM(30H)=40H,(40H)=10H,(10H)=00H,端口端口(P1)=CAH,分析以下程序执行后各单元及寄存器、,分析以下程序执行后各单元及寄存器、P2口的内容。口的内容。MOV R0,#30H ;(R0)30H MOV A,R0 ;(A)(R0)MOV R1,A ;(R1)(A)MOV B,R1 ;(B)(R1)MOV R1,P1 ;(R1)(P1)MOV P2,P1 ;(P2)(P1)MOV 10H,#30H ;(10H)30H 执行上述指令后结果为:执行上述指令后结果为:(R0)=30H,(R1)=(A)=40H,(B)=10H,(40H)=CAH,(P1)=(P2)=CAH,(10H)=30H。第 3 章 指令系统及汇编语言程序设计2外部数据存储器数据传送指令外部数据存储器数据传送指令1)16位数传送指令位数传送指令该指令将该指令将16位立即数送入位立即数送入DPTR,高,高8位送入位送入DPH,低,低8位送入位送入DPL,如表,如表3.3所示。这个所示。这个16位立即数实质是外部位立即数实质是外部RAM/ROM的地址,专门用来配合外部数据传送指令。的地址,专门用来配合外部数据传送指令。第 3 章 指令系统及汇编语言程序设计表表3.3 16位数传送指令位数传送指令汇 编 指 令 操 作 MOV DPTR,#data16;(DPTR)?#data16 第 3 章 指令系统及汇编语言程序设计2)累加器与外部累加器与外部RAM的数据传送指令的数据传送指令该类指令在累加器该类指令在累加器A与外部数据存储器与外部数据存储器RAM之间传送一之间传送一个字节的数据,采用间接寻址方式寻址外部数据存储器,如个字节的数据,采用间接寻址方式寻址外部数据存储器,如表表3.4所示。所示。第 3 章 指令系统及汇编语言程序设计表表3.4 累加器与外部累加器与外部RAM的数据传送指令的数据传送指令汇 编 指 令 操 作 MOVX A,Ri;(A)?(Ri)MOVX A,DPTR;(A)?(DPTR)MOVX Ri,A;(Ri)?(A)MOVX DPTR,A;(DPTR)?(A)第 3 章 指令系统及汇编语言程序设计前两条指令将外部前两条指令将外部RAM的数据传送到累加器,的数据传送到累加器,后两条后两条指令则是将累加器数据传送到外部指令则是将累加器数据传送到外部RAM。CPU与外部与外部RAM的数据交换只能通过累加器的数据交换只能通过累加器A进行。以工作寄存器进行。以工作寄存器R0、R1作作间接寻址可寻址外部间接寻址可寻址外部RAM的低的低256个数据单元,地址范围为个数据单元,地址范围为0000H00FFH;以;以16位数据指针位数据指针DPTR间接寻址可访问外间接寻址可访问外部部RAM的的64KB数据单元。数据单元。第 3 章 指令系统及汇编语言程序设计【例【例3.1】设外部设外部RAM的的4FH单元中的数据需要调入单元中的数据需要调入CPU,处理完后的数据放入外部,处理完后的数据放入外部RAM的的1000H单元。可采用单元。可采用如下指令完成:如下指令完成:MOV R0,#4FHMOVX A,R0 ;设处理后的数据已经放入;设处理后的数据已经放入AMOV DPTR,#1000HMOVX DPTR,A第 3 章 指令系统及汇编语言程序设计3程序存储器向累加器程序存储器向累加器A传送数据指令传送数据指令程序存储器向累加器程序存储器向累加器A传送数据指令又称查表指令。该传送数据指令又称查表指令。该指令采用变址寻址方式,把程序存储器指令采用变址寻址方式,把程序存储器(ROM或或EPROM)中中存放的表格数据读出,传送到累加器存放的表格数据读出,传送到累加器A,如表,如表3.5所示。所示。第 3 章 指令系统及汇编语言程序设计表表3.5 程序存储器向累加器程序存储器向累加器A传送数据指令传送数据指令汇 编 指 令 操 作 MOVC A,A+DPTR;(A)?(A)+(DPTR)MOVC A,A+PC;(PC)?(PC)+1,(A)?(A)+(PC)第 3 章 指令系统及汇编语言程序设计上述两条指令的功能是把作为变址寄存器的累加器上述两条指令的功能是把作为变址寄存器的累加器A中中的内容与基址寄存器的内容与基址寄存器(DPTR或或PC)的内容进行的内容进行16位无符号数位无符号数的加法操作,得到程序存储器某单元地址,再把该地址的内的加法操作,得到程序存储器某单元地址,再把该地址的内容送入累加器容送入累加器A0,执行指令后基址寄存器,执行指令后基址寄存器DPTR的内容不变,的内容不变,PC的内容为的内容为(PC)+1。由于执行。由于执行16位加法,因此从低位加法,因此从低8位产生位产生的进位将传送到高位,不影响任何标志位。的进位将传送到高位,不影响任何标志位。前一条指令采用前一条指令采用DPTR作为基址寄存器,因此可以很方作为基址寄存器,因此可以很方便地把一个便地把一个16位地址送到位地址送到DPTR,实现在整个,实现在整个64 KB程序存程序存储器单元到累加器储器单元到累加器A的数据传送。的数据传送。第 3 章 指令系统及汇编语言程序设计【例【例3.2】7段段LED显示码按照显示码按照09的顺序放在以的顺序放在以TAB标标识的表首地址的数据表中,对每个要显示的十进制数码,就识的表首地址的数据表中,对每个要显示的十进制数码,就用其单字节用其单字节BCD码作为偏移量,加上表首地址,就可得到各码作为偏移量,加上表首地址,就可得到各个数码的显示码。个数码的显示码。解:设要显示的数码解:设要显示的数码6的的BCD码已经放在内部码已经放在内部RAM的的60H单元,单元,7段显示码放在程序中以段显示码放在程序中以TAB标号的表中。以下程标号的表中。以下程序段执行查表操作,将待显示的数据的序段执行查表操作,将待显示的数据的7段显示码从字型码段显示码从字型码表中查出,并存放在表中查出,并存放在63H单元。单元。第 3 章 指令系统及汇编语言程序设计MOV DPTR,#TABMOV A,60HMOVC A,A+DPTRMOV 63H,ATAB:DB xxH,xxH,以程序计数器以程序计数器PC作为基址寄存器有很大的局限性,由作为基址寄存器有很大的局限性,由于执行到该语句时,于执行到该语句时,PC值已定,查表范围只能由累加器值已定,查表范围只能由累加器A的的内容决定,所以表格只能存放在以内容决定,所以表格只能存放在以PC当前值为起始地址的当前值为起始地址的256字节单元范围内。一旦这条指令与表格之间的语句发生字节单元范围内。一旦这条指令与表格之间的语句发生变化,则累加器变化,则累加器A中的内容也要相应地变化才行,否则就会中的内容也要相应地变化才行,否则就会发生查表错误。发生查表错误。第 3 章 指令系统及汇编语言程序设计4数据交换指令数据交换指令数据传送类指令一般用来将操作数自源地址传送到目的数据传送类指令一般用来将操作数自源地址传送到目的地址,指令执行后,源地址的操作数不变,目的地址的操作地址,指令执行后,源地址的操作数不变,目的地址的操作数则修改为源地址的操作数,如表数则修改为源地址的操作数,如表3.6所示。数据交换指令使所示。数据交换指令使数据作双向传送,涉及传送的双方互为源地址、目的地址,数据作双向传送,涉及传送的双方互为源地址、目的地址,指令执行后双方的操作数都已修改为对方的操作数。因此,指令执行后双方的操作数都已修改为对方的操作数。因此,两操作数均未冲掉、丢失。两操作数均未冲掉、丢失。第 3 章 指令系统及汇编语言程序设计表表3.6 数据交换指令数据交换指令汇 编 指 令 操 作 XCH A,direct(A)(direct)XCH A,Ri(A)(Ri)XCH A,Rn(A)(Rn)XCHD A,Ri(A)30(Ri)30 SWAP A(A)74(A)30 第 3 章 指令系统及汇编语言程序设计上述指令前上述指令前3条是字节交换指令,表明累加器条是字节交换指令,表明累加器A的内容可的内容可以和内部以和内部RAM区中任何一个单元的内容进行交换。第区中任何一个单元的内容进行交换。第4条是条是半字节交换指令,指令执行后,只将半字节交换指令,指令执行后,只将A的低的低4位和位和Ri地址单元地址单元的低的低4位交换,而各自的高位交换,而各自的高4位内容保持不变。第位内容保持不变。第5条指令是条指令是把累加器把累加器A的低半字节与高半字节进行交换。有了交换指令,的低半字节与高半字节进行交换。有了交换指令,多数据传送变得更为高效、快捷,且不会丢失信息。多数据传送变得更为高效、快捷,且不会丢失信息。第 3 章 指令系统及汇编语言程序设计例如,设例如,设(R0)=30H,(30H)=4AH,(A)=28H,则:,则:执行执行“XCFA,R0”,结果为,结果为(A)=4AH,(30H)=28H;执行执行“XCHDA,R0”,结果为,结果为(A)=2AH,(30H)=48H;执行执行“SWAP A”,结果为,结果为(A)=82H。5堆栈操作指令堆栈操作指令前已叙述,堆栈是用户自己设定的内部前已叙述,堆栈是用户自己设定的内部RAM中的一块中的一块专用存储区,按照专用存储区,按照“先进后出先进后出”规律存取数据,使用时一定规律存取数据,使用时一定先设堆栈指针,堆栈指针缺省为先设堆栈指针,堆栈指针缺省为SP=07H。堆栈操作指令用于对堆栈执行数据传送,共有两条指令,堆栈操作指令用于对堆栈执行数据传送,共有两条指令,如表如表3.7所示。所示。第 3 章 指令系统及汇编语言程序设计表表3.7 堆栈操作指令堆栈操作指令 汇 编 指 令 操 作 PUSH direct;(SP)?(SP)+1;(SP)?(direct)POP direct;(direct)?(SP);(SP)?(SP)-1 第 3 章 指令系统及汇编语言程序设计PUSH指令是入栈指令,也称为压栈指令,用来将direct地址中的操作数传送到堆栈中。CPU执行指令时分两步:第一步先将SP中的栈顶地址加1,指向一个空的堆栈单元作为新的栈顶;第二步将direct单元中的数据送入该空的栈顶单元。POP指令是出栈指令,也称为弹出指令,用来将堆栈中的操作数传送到direct单元。执行该指令时同样是两步:第一步先将当前SP所指栈顶单元中的数据送到direct所指单元中;第二步则是将SP中的地址减1,(SP)-1成为当前的新的栈顶单元。堆栈操作指令不影响标志位,主要应用于中断服务程序中临时保护数据、保护现场和恢复现场,即执行中断服务之前,先将必要的单元数据压入堆栈保存,执行完后,再将数据弹出。第 3 章 指令系统及汇编语言程序设计【例 3.3】MOV SP,#50H ;以 50H 单元作为栈顶地址 INT0:;中断服务子程序 PUSH ACC PUSH B POP B POP ACC RETI 入栈操作 出栈操作 第 3 章 指令系统及汇编语言程序设计上述程序段中,给上述程序段中,给SP赋值赋值50H作为栈顶地址,在作为栈顶地址,在INT0子子程序中,先将累加器程序中,先将累加器A、B寄存器的数据入栈,放置时寄存器的数据入栈,放置时SP指指针先加针先加1,指向,指向51H单元,将单元,将A中的数据放入,然后中的数据放入,然后SP加加1,指向指向52H,将,将B中的数据放入。到程序结束时,将压入堆栈中的数据放入。到程序结束时,将压入堆栈的数据弹出,记住的数据弹出,记住“先进后出,后进先出先进后出,后进先出”原则,先弹出原则,先弹出52H的数据到的数据到B,然后,然后SP减减1,指针指向,指针指向51H,弹出数据到,弹出数据到A,SP再减再减1。以上指令执行结果不影响程序状态字寄存器。以上指令执行结果不影响程序状态字寄存器PSW中的标志位。中的标志位。注意:堆栈操作指令是直接寻址指令,且必须是字节操注意:堆栈操作指令是直接寻址指令,且必须是字节操作,要特别注意指令的书写格式。比如,例作,要特别注意指令的书写格式。比如,例3.3中累加器用中累加器用ACC,而工作寄存器,而工作寄存器R0R7要用直接地址要用直接地址00H07H。第 3 章 指令系统及汇编语言程序设计3.3.2 算术运算类指令算术运算类指令包含加、减、乘、除以及十进制调整等指令,使51单片机具有较强的运算能力。该类指令大多是双操作数指令,累加器A总是存放第一源操作数,并作为目的地址存放操作结果。第二操作数可以是立即数,或某工作寄存器Rn、内存单元、间接寻址单元的内容。运算操作将影响标志寄存器PSW中的某些位,如溢出位OV、进位位CY、辅助进位位AC、奇偶标志位P等。程序中监视这些标志位,可方便地进行相关运算操作,如进位标志用于多字节加、减法等,溢出标志用于实现补码运算,辅助进位用于BCD码运算等。第 3 章 指令系统及汇编语言程序设计1.加法类指令加法类指令1)加法指令加法指令加法指令如表加法指令如表3.8所示。所示。第 3 章 指令系统及汇编语言程序设计表表3.8 加加 法法 指指 令令汇 编 指 令 操 作 ADD A,Rn;(A)?(A)+(Rn)ADD A,direct;(A)?(A)+(direct)ADD A,Ri;(A)?(A)+(Ri)ADD A,#data;(A)?(A)+data 第 3 章 指令系统及汇编语言程序设计参与运算的两个操作数都是参与运算的两个操作数都是8位二进制数,源地址的操位二进制数,源地址的操作数和累加器作数和累加器A的操作数相加,和值存放于的操作数相加,和值存放于A中。指令的执中。指令的执行将影响标志寄存器行将影响标志寄存器PSW的位的位AC、CY、OV、P。当和的第。当和的第3位向第位向第4位有进位位有进位(即半字节进位即半字节进位)时,将时,将AC置置1;当和的最;当和的最高位高位(第第7位位)有进位时,将有进位时,将CY置置1,否则为,否则为0;和数中有奇数;和数中有奇数个个1时,时,P为为1;OV位的值则取决于最高位位的值则取决于最高位D7是否有进位和是否有进位和次高位次高位D6位是否有进位,即位是否有进位,即OV=D7D6。【例【例3.4】设设(A)=53H,(R5)=FCH,执行,执行“ADD A,R5”后的结果及相关标志位如图后的结果及相关标志位如图3.6所示。所示。第 3 章 指令系统及汇编语言程序设计图3.6 例3.4的ADD指令执行示意图第 3 章 指令系统及汇编语言程序设计标志标志CY=1,OV=D7D6=0。运算结果是否正确需要考虑将操作数看做无符号数还是运算结果是否正确需要考虑将操作数看做无符号数还是符号数。若将操作数视为符号数,则通常采用补码形式。若符号数。若将操作数视为符号数,则通常采用补码形式。若将操作数视做无符号数,则根据将操作数视做无符号数,则根据CY来判断运算结果是否溢来判断运算结果是否溢出,若出,若CY=1,表明溢出,有进位;若视为符号数,则根据,表明溢出,有进位;若视为符号数,则根据OV来判断结果是否溢出,若来判断结果是否溢出,若OV=1,表明溢出,结果错误。,表明溢出,结果错误。2)带进位的加法指令带进位的加法指令带进位的加法指令如表带进位的加法指令如表3.9所示。所示。第 3 章 指令系统及汇编语言程序设计表表3.9 带进位的加法指令带进位的加法指令汇 编 指 令 操 作 ADD
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!