单片机课件.ppt

上传人(卖家):三亚风情 文档编号:2810579 上传时间:2022-05-28 格式:PPT 页数:45 大小:222KB
下载 相关 举报
单片机课件.ppt_第1页
第1页 / 共45页
单片机课件.ppt_第2页
第2页 / 共45页
单片机课件.ppt_第3页
第3页 / 共45页
单片机课件.ppt_第4页
第4页 / 共45页
单片机课件.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、第 4 章 汇编语言程序设计 第第4章章 汇编语言程序设计汇编语言程序设计 4.1 概述概述 4.2 MCS-51汇编语言程序设计汇编语言程序设计 顺序、循环、分支、子程序顺序、循环、分支、子程序 第 4 章 汇编语言程序设计 4.1 概概 述述 4.1.1 计算机常用的编程语言计算机常用的编程语言 程序设计语言:程序设计语言:低级语言和高级语言。低级语言和高级语言。 低级语言:低级语言:机器语言机器语言 汇编语言:汇编语言: 采用特定的助记符号来描述机器指令采用特定的助记符号来描述机器指令 高级语言:高级语言: 高级语言程序要经过解释程序或编译程序的编高级语言程序要经过解释程序或编译程序的编

2、 译,形成目标程序后,才能执行。译,形成目标程序后,才能执行。常用的高级语言:常用的高级语言:BASIC,FORTRAN,PASCAL,C等。等。第 4 章 汇编语言程序设计 4.1.2 MCS-51汇编语言伪指令汇编语言伪指令 1ORG(Origin) 汇编起始地址命令汇编起始地址命令 功能:用于规定目标程序的起始地址。功能:用于规定目标程序的起始地址。 格式:格式: 标号:标号: ORG 地址地址 地址项:地址项:16位绝对地址,也可以用位绝对地址,也可以用标号标号或表达式表示。或表达式表示。如果不用如果不用ORG规定,则汇编得到的目标程序将从规定,则汇编得到的目标程序将从0000H开始。

3、开始。第 4 章 汇编语言程序设计 一个源程序中,可多次使用一个源程序中,可多次使用ORG指令以规定不同程序段指令以规定不同程序段的的起始起始位置。地址应从小到大顺序排列,不允许重叠。位置。地址应从小到大顺序排列,不允许重叠。例如:例如:ORG 4000HLJMP MAINORG 4200H MAIN:MOV A, 30H 第 4 章 汇编语言程序设计 2END(END of assembly)汇编终止命令)汇编终止命令 功能:用于终止源程序的汇编工作。功能:用于终止源程序的汇编工作。 END之后的指令,汇编程序不予处理。之后的指令,汇编程序不予处理。 格式:格式: 标号:标号: END 表达

4、式表达式 只有主程序模块才有只有主程序模块才有“表达式表达式” 项,且项,且“表达式表达式”的值等于的值等于该程序模块的入口地址。而其他程序模块就没有该程序模块的入口地址。而其他程序模块就没有“表达式表达式”项项。“标号:标号:”也是选择项。也是选择项。 一个源程序只能有一个一个源程序只能有一个END命令。命令。第 4 章 汇编语言程序设计 3EQU(Equate) 赋值命令赋值命令 功能:用于给字符名称赋予一个特定值。赋值以后,其值在功能:用于给字符名称赋予一个特定值。赋值以后,其值在整个过程中有效。整个过程中有效。 格式:格式: 字符名称字符名称 EQU 赋值项赋值项 “赋值项赋值项”:可

5、以是常数、地址、标号或表达式。:可以是常数、地址、标号或表达式。 8位或位或16位二进制数。赋值以后的字符名称即可位二进制数。赋值以后的字符名称即可作地址使用,也可作立即数使用。作地址使用,也可作立即数使用。 PA8155 EQU 8001H给标号给标号PA8155赋值赋值8001H。 第 4 章 汇编语言程序设计 4DB(Define Byte) 定义数据字节命令定义数据字节命令 功能:用于从指定的地址单元开始,在程序存储器中存放字功能:用于从指定的地址单元开始,在程序存储器中存放字节数据。节数据。 格式:格式:标号:标号: DB 8位数表位数表 例如例如: DB “how are you?

6、” ;1个字节存放个字节存放1个字符个字符ASCII 常使用本命令存放数据表格,例如存放数码管显示的十六进常使用本命令存放数据表格,例如存放数码管显示的十六进制数的字形码,可使用多条制数的字形码,可使用多条DB命令定义:命令定义: DB C0H,F9H,A4H,B0HDB 99H,92H, 82H,F8H DB80H,90H, 88H,83H DBC6H,A1H,86H, 84H第 4 章 汇编语言程序设计 查表时,为确定数据区的起始位置,可采用两种方法:查表时,为确定数据区的起始位置,可采用两种方法:(1)根据)根据DB命令前一条指令的地址确定。命令前一条指令的地址确定。例:例: 8100H

7、 MOV A, #49H (1字节)字节) TAB: DB C0H, F9H, A4H, B0H(2)使用)使用ORG 指令专门规定指令专门规定例:例: ORG 8100H TAB: DB C0H, F9H, A4H, B0H 定义的数码管字形码从定义的数码管字形码从8100地址开始存放。地址开始存放。第 4 章 汇编语言程序设计 5DW(Define Word)定义数据字命令定义数据字命令 功能:用于从指定地址开始,在程序存储器单元中定义功能:用于从指定地址开始,在程序存储器单元中定义16位位的数据字(两个字节)。的数据字(两个字节)。 格式:格式: 标号:标号: DW 16位数表位数表 存

8、放规则:高存放规则:高8位在前(低地址),低位在前(低地址),低8位在后(高地址)。位在后(高地址)。例:例: DW 100H,1ACH ;按顺序存;按顺序存01H, 00H, 01H, ACH DW “AA” ;存入;存入41H,41H(ASCII码)码) DW“A” ;存入;存入00H,41H DW “ABC” ;不合法,大于两个字节;不合法,大于两个字节 第 4 章 汇编语言程序设计 注意:注意: DB和和DW定义的数表,数的个数不得超过定义的数表,数的个数不得超过80个。个。如果数据的数目较多时,可使用多个定义命令。如果数据的数目较多时,可使用多个定义命令。 在在 MCS-51程序设计

9、应用中,常以程序设计应用中,常以DB定义数据,定义数据,以以DW定义地址。定义地址。第 4 章 汇编语言程序设计 6DS(Define Storage) 定义存储区命令定义存储区命令 功能:用于从指定地址开始,保留指定数目的功能:用于从指定地址开始,保留指定数目的字节字节单元为存单元为存储区,供程序运行使用。汇编时对这些单元不赋值。储区,供程序运行使用。汇编时对这些单元不赋值。 格式:格式: 标号:标号: DS 16位数表位数表 例:例: ADDRTABL: DS 20 例:例: ORG 8100H DS 08H注意:对注意:对MSC-51单片机来说,单片机来说,DB、DW、DS命令只能对程序

10、命令只能对程序存储器使用,不能对数据存储器使用。存储器使用,不能对数据存储器使用。第 4 章 汇编语言程序设计 7BIT 位定义命令位定义命令 功能:功能: 用于给字符名称赋以位地址。用于给字符名称赋以位地址。 格式:格式: 字符名称字符名称 BIT 位地址位地址 例如:例如: AAA BIT 40HBBB BIT 50H第 4 章 汇编语言程序设计 4.2 MCS-51汇编语言程序设计汇编语言程序设计 汇编和高级语言程序设计的过程:汇编和高级语言程序设计的过程: 首先对问题进行分析,然后确定算法,再根据算法首先对问题进行分析,然后确定算法,再根据算法流程编写程序,最后是调试程序。流程编写程序

11、,最后是调试程序。 汇编语言程序设计的汇编语言程序设计的独特点独特点在于:在于: (1) 用汇编语言进行程序设计时,对用汇编语言进行程序设计时,对数据的存放、寄存器数据的存放、寄存器和工作单元的使用等要由设计者安排和工作单元的使用等要由设计者安排。而高级语言程序设计。而高级语言程序设计时,这些工作都由计算机软件安排,程序设计者不必考虑。时,这些工作都由计算机软件安排,程序设计者不必考虑。第 4 章 汇编语言程序设计 (2) 汇编语言程序设计要求设计人员必须对所使用的汇编语言程序设计要求设计人员必须对所使用的计算机的硬件结构有较为详细的了解计算机的硬件结构有较为详细的了解。特别是对。特别是对各类

12、寄各类寄存器、端口、定时器存器、端口、定时器/计数器、中断等计数器、中断等内容要熟悉,以便内容要熟悉,以便在程序设计时能熟练使用。在程序设计时能熟练使用。汇编语言程序共有四种结构形式:汇编语言程序共有四种结构形式: 顺序结构、循环结构、分支结构(选择结构)和顺序结构、循环结构、分支结构(选择结构)和子程序结构。子程序结构。第 4 章 汇编语言程序设计 4.2.1 顺序程序顺序程序 例例4.1 设三字节无符号数相加,设三字节无符号数相加, 被加数:在内部被加数:在内部RAM 20H22H单元(低位在前),单元(低位在前),加数:加数: 在内部在内部RAM 30H32H单元(低位在前),单元(低位

13、在前),结果:结果: 存于内部存于内部RAM2022H单元,进位位存于单元,进位位存于23H单元。单元。 利用利用ADDC指令进行多字节加法运算。指令进行多字节加法运算。第 4 章 汇编语言程序设计 ORG 5000H MOV R0,#20H;被加数的低字节地址;被加数的低字节地址MOV R1,#30H;加数的低字节地址;加数的低字节地址MOV A, R0ADDA, R1;低字节相加;低字节相加MOV R0,A;存放字节相加结果;存放字节相加结果INCR0INCR1MOV A, R0ADDC A, R1;中间字节带进位相加;中间字节带进位相加MOV R0, A;存中间字节相加结果;存中间字节相

14、加结果第 4 章 汇编语言程序设计 INCR0INCR1MOV A,R0ADDC A, R1;高字节带进位相加;高字节带进位相加MOV R0,A;存高字节相加结果;存高字节相加结果 INC R0MOV A, #00HADDC A, #00HMOV R0, A;进位位送;进位位送23HEND第 4 章 汇编语言程序设计 例例4.2 将片内将片内RAM 20H单元的内容拆成两段,每段单元的内容拆成两段,每段4位。并将位。并将它们分别存入它们分别存入21H与与22H单元中。单元中。 (20H) =0101, 1010=5AH (21H) =0AH ;存放低存放低4位位 (22H) =05H ;存放高

15、存放高4位位第 4 章 汇编语言程序设计 ORG 5000HSTART:MOV R0,#21H;R021H MOV A,20H;A(20H) ANL A,#0FH;A #0FH(A) MOV R0,A;(;(R0)(A),保存低保存低4位位INC R0;R0 (R0)1 MOV A,20H;A(20H) SWAP A;高低半字节交换;高低半字节交换 ANL A,0FH ;A 0FH MOV R0,A;(;(R0)(A)END第 4 章 汇编语言程序设计 4.2.2 循环程序循环程序 循环初态循环初态第 4 章 汇编语言程序设计 循环程序一般由四个主要部分组成循环程序一般由四个主要部分组成: (

16、1) 初始化部分初始化部分: 为循环程序做准备为循环程序做准备, 如规定循环次数、如规定循环次数、 给给各变量和地址指针预置初值。各变量和地址指针预置初值。 (2) 处理部分处理部分: 为反复执行的为反复执行的程序段程序段, 是循环程序的是循环程序的实体实体, 也也是循环程序的主体。是循环程序的主体。 (3) 循环控制部分循环控制部分: 这部分的作用是修改循环变量和控制变这部分的作用是修改循环变量和控制变量量, 并判断循环是否结束并判断循环是否结束, 直到符合结束条件时直到符合结束条件时, 跳出循环为止。跳出循环为止。 (4) 结束部分结束部分: 这部分主要是对循环程序的结果进行分析、这部分主

17、要是对循环程序的结果进行分析、 处理和存放。处理和存放。 第 4 章 汇编语言程序设计 循环:单重循环循环:单重循环 多重循环(二重以上)循环嵌套。多重循环(二重以上)循环嵌套。 在多重循环程序中,只允许外重循环嵌套内重循环程在多重循环程序中,只允许外重循环嵌套内重循环程序,而序,而不允许循环体互相交叉不允许循环体互相交叉,另外,也不允许从循环程序,另外,也不允许从循环程序的外部跳入循环程序的内部。的外部跳入循环程序的内部。第 4 章 汇编语言程序设计 例例4.3 把外部把外部RAM 500050FFH单元的内容清零。单元的内容清零。ORG 4200HSTART1: MOV R0, #00H;

18、设置循环初始值;设置循环初始值MOV DPTR, #5000HLOOP1: MOV A, #00HMOVX DPTR, A;外部;外部RAM单元清零单元清零INCDPTR;外部;外部RAM单元加单元加1INCR0;循环次数加;循环次数加1CJNE R0, #00H, LOOP1 ;循环控制,不等转移;循环控制,不等转移END第 4 章 汇编语言程序设计 例例4.4 设三字节无符号数相加,设三字节无符号数相加,被加数:内部被加数:内部RAM 20H22H单元(低位在前),单元(低位在前),加数:加数: 内部内部RAM 30H32H单元(低位在前),单元(低位在前),结果:存于内部结果:存于内部R

19、AM 2022H单元,进位位存于单元,进位位存于23H单元。单元。 利用利用ADDC指令进行多字节加法运算。指令进行多字节加法运算。第 4 章 汇编语言程序设计 ORG 4200H MOV R0,#20H;被加数的低字节地址;被加数的低字节地址MOV R1,#30H;加数的低字节地址;加数的低字节地址MOV R2,#03H;循环次数;循环次数CLRCLOOP: MOV A, R0ADDC A, R1;低字节相加;低字节相加MOV R0,A;存放字节相加结果;存放字节相加结果INC R0INC R1DJNZ R2, LOOP;循环控制,;循环控制,R2递减递减 不为零转移不为零转移MOV A,

20、#00HADDC A,#00HMOV R0, A;进位位送;进位位送23HEND第 4 章 汇编语言程序设计 例例4.5 把内部把内部RAM中起始地址为中起始地址为40H的数据串传送到外部的数据串传送到外部RAM以以5000H为首地址的区域,直到发现为首地址的区域,直到发现“$”字符的字符的ASCII码码为止。同时规定数据串的最大长度为为止。同时规定数据串的最大长度为32个字节。个字节。第 4 章 汇编语言程序设计 ORG 4200HMOV R0,#40H;内部;内部RAM起始地址起始地址MOV DPTR,#5000H;外部;外部RAM起始地址起始地址MOV R1,#20H;最大串长;最大串长

21、LOOP:MOV A,R0;取数据;取数据CLR C;清进位位;清进位位MOV R2,A;暂存;暂存SUBB A, #24H;判断是否为;判断是否为“$”JZQUIT;是,转;是,转“QUIT”MOV A,R2 ;不是;不是,送入外部送入外部RAMMOVX DPTR,A INC DPTR;数据指针加;数据指针加1INC R0;R0加加1DJNZ R1,LOOP;循环次数控制,;循环次数控制,R1 递减,不为零转移递减,不为零转移QUIT: END第 4 章 汇编语言程序设计 例例4.6 设设MCS-51单片机的时钟频率为单片机的时钟频率为fosc = 6 MHz,试设计,试设计延时延时0.1s

22、的延时程序。的延时程序。 延时程序所花费的时间是该程序指令的总机器周期数与机延时程序所花费的时间是该程序指令的总机器周期数与机器周期的乘积。器周期的乘积。通常,延时程序采用通常,延时程序采用MOV和和DJNZ指令来实现。指令来实现。单循环延时程序,最大的循环次数位单循环延时程序,最大的循环次数位256,则程序段为:,则程序段为: MOV R0,#00H ;机器周期数为;机器周期数为1 DJNZ R0,$ ;机器周期数为;机器周期数为2若单片机晶振为若单片机晶振为6MHz,则一个机器周期为,则一个机器周期为2us。延时时间:(延时时间:(1+2562)2s1026s。 需采用多重循环。需采用多重

23、循环。 第 4 章 汇编语言程序设计 多重循环多重循环: 在一个循环体中又包含了其它的循环程序。在一个循环体中又包含了其它的循环程序。 这种方式是实现延时程序的常用方法。这种方式是实现延时程序的常用方法。 使用多重循环时使用多重循环时, 必须必须注意注意: (1) 循环嵌套循环嵌套, 必须层次分明必须层次分明, 不允许产生内外层循环交叉。不允许产生内外层循环交叉。 (2) 外循环可以一层层向内循环进入外循环可以一层层向内循环进入, 结束时由里往外一结束时由里往外一层层退出。层层退出。 (3) 内循环可以直接转入外循环内循环可以直接转入外循环, 实现一个循环由多个条实现一个循环由多个条件控制的循

24、环结构件控制的循环结构方式。方式。 第 4 章 汇编语言程序设计 MOV R7,#200 DELAY1: MOV R6,#125DELAY2: DJNZ R6,DELAY2 ;1254500s0.5msDJNZ R7,DELAY1 ;0.52000.1s该段程序的延时时间约为该段程序的延时时间约为0.1006s若需延时更长时间,可采用多重循环,如若需延时更长时间,可采用多重循环,如1s延时可采用延时可采用3重循重循环,而用环,而用7重循环可延时几年。重循环可延时几年。第 4 章 汇编语言程序设计 4.2.3 分支程序(选择)分支程序(选择) 分支程序的基本结构:单分支和多分支。分支程序的基本结

25、构:单分支和多分支。其特点是:各处理模块是相互排斥的。其特点是:各处理模块是相互排斥的。第 4 章 汇编语言程序设计 13条条件转移指令,条条件转移指令,分别为分别为: JZ,JNZ: 累加器判零转移指令累加器判零转移指令;CJNE: 比较条件转移指令,比较条件转移指令,4条;条;DJNZ: 减减1条件转移指令,条件转移指令,2条条; JC, JNC , JB,JNB,JBC: 位控制条件转移指令等四类。位控制条件转移指令等四类。第 4 章 汇编语言程序设计 例例4.7 x, y均为均为8位二进制数位二进制数, x存放在存放在VAR单元中,函数值单元中,函数值y存放在存放在FUNC中,中, 按

26、下式给按下式给y赋值赋值. . 011y000 xxx第 4 章 汇编语言程序设计 第 4 章 汇编语言程序设计 ORG 4200H VAR EQU 40HFUNC EQU 50H START:MOV A, VAR;取;取xJZCOMP;为零转;为零转COMP JNBACC.7, POSI;x0, 转转POSIMOV A, #0FFH;x0, (A)=1,补码补码SJMP COMP POSI:MOV A, #01HCOMP:MOV FUNC, A;保存结果;保存结果END 第 4 章 汇编语言程序设计 例例4.8 片内片内RAM DATA1和和DATA2两个单元中存有两个无符两个单元中存有两个

27、无符号数字,将两个数中的小者存入号数字,将两个数中的小者存入30H单元。单元。 ORG 4000HDATA1 EQU 34HDATA2 EQU 56HMOV A,DATA1;第一数送;第一数送ACLR CCJNE A, DATA2, BIGSJMP STORE;相等;相等,DATA1作为小的数作为小的数BIG: JC STORE;C=1跳转跳转,即即ADATA2MOV A, DATA2STORE:MOV30H, A;小者送;小者送RAM END第 4 章 汇编语言程序设计 例例4.10 假定假定R0中存放的是采集到的被按键键值,共有中存放的是采集到的被按键键值,共有128个键个键值(值(012

28、7),根据该键值转向不同键的处理程序中去。),根据该键值转向不同键的处理程序中去。 跳转方法:逐个比较,类似跳转方法:逐个比较,类似CASE。 使用散转指令使用散转指令JMP A+DPTR 。 设(设(R0) 0 n,对应的处理程序入口地址分别为,对应的处理程序入口地址分别为 PROG0PROGn,且按照一定的规律排列,且按照一定的规律排列。第 4 章 汇编语言程序设计 ORG 2000H MOV DPTR, #TAB ;设置处理程序入口首地址;设置处理程序入口首地址 MOV A,R0 RL A ;为何要左移?;为何要左移?NEXT:JMP A+DPTR ;转向形成的散转地址入口;转向形成的散

29、转地址入口 TAB:AJMP PROG0 ;直接转移地址表;直接转移地址表 AJMP PROG1 AJMP PROGn第 4 章 汇编语言程序设计 4.2.4 子程序设计子程序设计 子程序与一般程序的主要区别是在子程序的末尾有一条子子程序与一般程序的主要区别是在子程序的末尾有一条子程序返回指令(程序返回指令(RET),其功能是执行完子程序后通过将堆),其功能是执行完子程序后通过将堆栈内的断点地址弹出到栈内的断点地址弹出到PC而返回到主程序中。而返回到主程序中。 在编写子程序时应注意以下几点:在编写子程序时应注意以下几点: (1) 要给每个子程序赋一个名字。要给每个子程序赋一个名字。 实际上是一

30、个入口地址的实际上是一个入口地址的代号代号。 (2) 要能正确地传递参数。要能正确地传递参数。 首先要有入口条件,说明进入子程序时它所要处理的数首先要有入口条件,说明进入子程序时它所要处理的数据如何得到,另外,要有出口条件,即处理的结果是如何存放据如何得到,另外,要有出口条件,即处理的结果是如何存放的。的。第 4 章 汇编语言程序设计 (3) 注意保护现场和恢复现场。注意保护现场和恢复现场。 注意保存主程序和子程序共同涉及的但值不同的累加器注意保存主程序和子程序共同涉及的但值不同的累加器、寄存器和单元的内容。、寄存器和单元的内容。 保护现场:保护现场: PUSH 恢复现场:恢复现场:POP(4

31、) 注意子程序的通用性。注意子程序的通用性。主程序调用子程序的指令:主程序调用子程序的指令: “LCALL”,“ACALL”。子程序返回指令:子程序返回指令:RET。子程序可以嵌套,子程序可以嵌套,嵌套次数从理论上说是无限的,但实际上由嵌套次数从理论上说是无限的,但实际上由于受堆栈深度的影响,嵌套次数是有限的。于受堆栈深度的影响,嵌套次数是有限的。第 4 章 汇编语言程序设计 例例4.11 设有设有a,b,c三个数(三个数(09),存于内部),存于内部RAM的的 DATAA、DATAB、和、和DATAC三个单元。三个单元。 编程实现编程实现: c = a2 + b2。 设设DATAA、DATA

32、B、DATAC分别对应内部分别对应内部RAM的的40H、41H和和42H单元。单元。第 4 章 汇编语言程序设计 ORG 5000HDATAAEQU40HDATABEQU41H DATACEQU42HSTART:MOV A, DATAA;取第一操作数;取第一操作数ACALL SQR;调用查表程序;调用查表程序MOV R1,A;a2暂存暂存R1MOV A,DATAB;取第二操作数;取第二操作数 ACALL SQR;调用查表程序;调用查表程序ADD A,R1;Aa2b2MOV DATAC,A第 4 章 汇编语言程序设计 子程序:子程序:SQR: INC A ;偏移量调整,为何?;偏移量调整,为何?

33、 MOVC A,A+PC ;查平方表,;查平方表,PC自动累加自动累加1 RETTAB: DB 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 END 第 4 章 汇编语言程序设计 例例4.12 向向P1口输出全高电平,延时口输出全高电平,延时1s后,再输出全低电后,再输出全低电平,延时平,延时1s后,再输出全高电平。后,再输出全高电平。主程序:主程序: ORG 5000HMAIN:MOV P1,#0FFHACALL DELAYMOV P1, #00HACALL DELAYSJMP MAIN END第 4 章 汇编语言程序设计 子程序:子程序:DELAY: MOV R5,#10 ;假设假设Fosc=6MHzDELAY0: MOV R6,#200 DELAY1: MOV R7,#125DELAY2: DJNZ R7,DELAY2DJNZ R6,DELAY1DJNZ R5,DELAY0 RET

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(单片机课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|