单片机汇编语言及程序设计_第1页
单片机汇编语言及程序设计_第2页
单片机汇编语言及程序设计_第3页
单片机汇编语言及程序设计_第4页
单片机汇编语言及程序设计_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MCS-51指令格式汇编语言级指令格式:

[标号:]操作码[操作数]

[;注释]例:LB:MOVA,R2;A←(R2)标号——指令的标识,表示指令的首地址;操作码——操作的命令(指示机器执行何种操作)操作数——参与操作的数据(是操作码的补充),分目的操作数和源操作数。注释——对指令功能的说明,便于程序阅读和维护,不参与操作。机器语言级指令格式:机器语言指令是一种二进制代码,具体包含两个基本的部分:操作码和操作数。机器语言分为单字节、双字节和三字节指令,具体格式分别为:单字节指令:例:MOVA,R0对应的机器语言指令为:E8H双字节指令:例:MOVA,20H对应的机器语言指令为:E520H三字节指令:例:MOV20H,#46H对应的机器语言指令为:752046H操作码操作码操作数操作码第一操作数第二操作数一、MCS—单片机寻址方式*二、单片机常用指令类型*三、单片机指令系统的几个特点*四、单片机中的伪指令*五、汇编语言程序设计-举例*本章主要内容一、MCS-51单片机寻址方式寻址方式的“寻址”:是指寻找参与操作的数据所在的存储器单元的地址。注意:MCS-51指令系统的寻址方式及其对应的寻址空间序号方式常用的变量寻址空间

1立即寻址

2直接寻址内部RAM的低128B和特殊功能寄存器

3寄存器寻址R7-R0,A,B,AB,DPTR

4寄存器间接寻址@R0,@R1,SP@R0,@R1@DPTR内部RAM外部RAM0000H~00FFH外部RAM/ROM0000H~FFFFH

5相对寻址PC+偏移量程序存储器

6变址寻址@A+DPTR,@A+PC程序存储器

7位寻址内部RAM和特殊功能寄存器的位地址空间1、立即寻址特点:·指令码中直接含有操作数本身(立即数)·立即数可以是8位或16位·立即数通常用#data或#data16表示·立即数只能作为源操作数·立即数同操作码一起存放在程序存储器中

例如:MOVA,#3BH;A←3BH MOVDPTR,#1828H;DPTR←#1828H程序存储器PC→74H3BH累加器A3BH2、直接寻址特点:·指令码中含有操作数地址(8位二进制数);·可用于直接寻址的存储空间是:片内RAM的低128字节和特殊功能寄存器SFR;·直接寻址通常用direct(操作数所在存储单元的物理地址)表示; 例: MOV40H,A;(40H)←A·对片内高128B的RAM,direct既可以使用SFR的物理地址,也可以用SFR的名称符号。 MOVA,81H;A←(81H)

MOVA,SP;A←SP,可读性好

程序存储器PC→F5H40H累加器A片内RAM40H3BH演示MOV40H,A;(40H)←A3BH3、寄存器寻址特点:·操作数在R7-R0,A,B,AB,DPTR中,指令码中含有该操作数的寄存器号;

·操作数位于片内RAM中

MOVA,Rn

;A←RnINCRn

;Rn←Rn+1程序存储器PC→00001000PSWRS1RS0片内RAM00H3BH00000A3BH0004、寄存器间接寻址特点:·指令码中含有存放该操作数地址的寄存器号;

·间址寄存器采用@R0,@R1,@DPTR表示;·@R0,@R1用于对片内RAM和外部RAM(0000H~00FFH)寻址,@DPTR的寻址范围是片外ROM/RAM的全部64KB区域;·寄存器间址指令不能用于寻址SFR

MOVA,@R0;A←(R0)R03A片内RAM3AH3BHA3BH5、变址寻址特点:·指令码中隐含有作为基地址寄存器用的数据指针DPTR或程序计数器PC(存放基地址);·指令码中也隐含有累加器A(A中存放地址偏移量,00H~FFH范围内的无符号数);·寻址空间是程序存储器。

MOVCA,@A+PC;A←(A+PC)

MOVCA,@A+DPTR;A←(A+DPTR)例:假设A中的内容为05H,DPTR的内容为0400H,程序存储器0405H单元的内容为2DH,则

MOVCA,@A+DPTR执行后A的内容为2DH

022000HAIRDPTRALUROM2000H932001HX12002HX22002HX293演示:MOVCA,@A+DPTR;A←(A+DPTR)6、相对寻址特点:·相对转移指令的指令码中含有相对地址偏移量;·相对转移指令分为:短转移指令和长转移指令(分别为双字节和三字节);·PC的当前值+相对地址偏移量rel=下一条要执行指令的地址;·PC的当前值是指相对转移指令从程序存储器中取出后的PC值。

2000H

8054HSJMPrel;PC←PC+2+rel

2000HAPCALUROM2000H80H2001H54H2002H24H2003H05H2056H74H05H2002H54H演示:2000H8054HSJMP54H;PC←2056H2056H7、位寻址特点:·位寻址指令的指令码中含有位地址;·位寻址指令中位地址用bit表示(字节地址direct);·位寻址区:片内RAM位寻址区20H~2FH和11个SFR;·位地址的表示方法:

MOVC,7FH;Cy←(7FH)MOVC,2FH.7;Cy←(7FH)

MOVC,ACC.7;Cy←ACC.7

A1BIT7FH——位地址赋值伪指令

MOVC,A1;Cy←2FH.7,A1

为符号位地址*RAM2FH20H7FH00H1演示:D200HSETB00H;00H←1二、单片机常用指令类型数据传送指令(28条)

将源地址中操作数传送到目的地址的指令。算数运算指令(24条)

对两个操作数进行加、减、乘、除等运算的指令。逻辑操作和环移指令(25条)

对两个操作数进行逻辑乘、逻辑加、逻辑取反和异或等操作;

对累加器A中数进行环移(左环移、右环移,带进位、不带进位)控制转移指令(17条)

条件转移、无条件转移、调用和返回等指令(改变PC中值为目标)位操作指令(布尔变量操作指令)(17条)

位传送、位置位、位运算和位控制转移指令。1、数据传送指令(28条)此类指令不影响Cy,AC,OV标志,只影响奇偶标志P。片内RAM单元之间的数据传送指令(15条)

指令的源操作数和目的操作数地址都在单片机内部,是片内RAM或SFR的地址。·立即寻址型传送指令MOVA,#data

;A←dataMOVRn,#data

;Rn←dataMOV@Ri,#data

;(Ri)←dataMOVdirect,#data

;direct←data1、数据传送指令(28条)·直接寻址型传送指令指令操作码中至少含有一个操作数的直接地址。MOVA,direct

;A←(direct)MOVdirect,A;direct←AMOVRn,direct

;Rn←(direct)MOV@Ri,direct;(Ri)←(direct)MOVdirect2,direct1

;direct2←(direct1)注:目的存储单元有累加器A、工作寄存器和片内RAM单元(包括SFR的字节地址)。1、数据传送指令(28条)·寄存器寻址型传送指令 MOVA,Rn

;A←Rn MOVRn,A

;Rn←AMOVdirect,Rn

;direct←Rn

1、数据传送指令(28条)·寄存器间址型传送指令 MOVA,@Ri

;A←(Ri)MOV@Ri,A

;(Ri)←AMOVdirect,@Ri

;direct←(Ri)1、数据传送指令外部数据传送指令(外部RAM/ROM)

·16位数传送指令MOVDPTR,#data16

;DPTR←data1616位立即数是外部RAM/ROM的地址,其高8位送入DPH,低8位送入DPL。·外部ROM的字节传送指令(查表指令)MOVCA,@A+DPTR

;A←(A+DPTR)远程查表MOVCA,@A+PC

;PC←PC+1,A←(A+PC)

近程查表1、数据传送指令·外部RAM的字节传送指令

实现外部RAM和累加器A之间的数据传送。MOVXA,@Ri

;A←(Ri)MOVX@Ri,A;(Ri)←AMOVXA,@DPTR

;A←(DPTR)MOVX@DPTR,A;(DPTR)←A

注:前面两条指令访问外部RAM:0000H~00FFH

后面两条指令访问外部RAM:0000H~FFFFH1、数据传送指令堆栈操作指令

PUSHdirect

;SP←SP+1,(SP)←(direct)POPdirect

;direct

←(SP),SP←SP-1

堆栈操作指令是直接寻址指令,书写格式为: PUSHACC PUSH00H POPACC POP00H注:弹出指令不会改变堆栈区存储器单元中的内容。1、数据传送指令数据交换指令

XCHA,Rn

;A↔Rn

XCHA,direct;A↔(direct)XCHA,@Ri;A↔(Ri)XCHDA,@Ri;A3~0↔(Ri)3~0注:只是将累加器A中的内容和片内RAM单元内容相互交换。2、算术运算指令加法指令(13条)·不带Cy加法指令

ADDA,Rn;A←A+Rn ADDA,Direct;A←A+(Direct) ADDA,@Ri;A←A+(Ri) ADDA,#data;A←A+data·对PSW标志位均有影响;·计算机总是按带符号数法则运算,产生PSW标志位。·两个带符号数相加,运算结果是否溢出应判断OV标志位。2、算术运算指令·带Cy加法指令

ADDCA,Rn;A←A+Rn+Cy ADDCA,Direct;A←A+(Direct)+Cy ADDCA,@Ri;A←A+(Ri)+Cy ADDCA,#data;A←A+data+Cy·

Cy——指令执行前的Cy值。·常用于多字节无符号数的加法运算2、算术运算指令·加1指令

INCA

;A←A+1 INCRn;Rn←Rn+1 INCDirect;Direct←(Direct)+1 INC@Ri;(Ri)←(Ri)+1INCDPTR;DPTR←DPTR+1只影响奇偶校验标志位2、算术运算指令减法指令(8条)·带Cy减法指令

SUBBA,Rn;A←A–Rn-Cy SUBBA,Direct;A←A-(Direct)-Cy SUBBA,@Ri;A←A-(Ri)-Cy SUBBA,#data;A←A–data-Cy·对PSW标志位均有影响;·计算机总是按带符号数法则运算,产生PSW标志位。·两个带符号数相减,运算结果是否溢出应判断OV标志位。2、算术运算指令·减1指令

DECA;A←A-1 DECRn;Rn←Rn-1 DECDirect;Direct←(Direct)-1 DEC@Ri;(Ri)←(Ri)-1只影响奇偶校验标志位2、算术运算指令十进制调整指令(1条)

DAA;若AC=1或A3~A0>9,则A←A+06H若Cy=1或A7~A4>9,则A←A+60H·通常紧跟在加法指令后使用,对A中的操作数进行十进制调整。·

专用于实现BCD运算。

2、算术运算指令乘法、除法指令(2条)

MULAB;A×B=BA,形成标志对标志位的影响:Cy=0;若B不等于0,则OV=1,否则OV=0;

P由A中1的奇偶性确定。

DIVAB;A÷B=A…B,形成标志对标志位的影响:Cy=0;执行过程中,若发现B等于0,则OV=1;

P由A中1的奇偶性确定。3、逻辑运算指令(25条)逻辑操作指令共25条,所有指令均按位进行操作,无进位,一般不影响标志位。·逻辑与运算指令

ANLA,Rn;A←A∧Rn ANLA,direct;A←A∧(direct)

ANLA,@Ri;A←A∧(Ri)

ANLA,#data;A←A∧data ANLdirect,A;direct←

(direct)

∧A ANLdirect,#data;direct←

(direct)

∧data3、逻辑运算指令(25条)·逻辑或运算指令

ORLA,Rn;A←A∨

RnORLA,direct;A←A∨(direct)

ORLA,@Ri;A←A∨(Ri)ORLA,#data;A←A∨

data ORLdirect,A;direct←

(direct)

A ORLdirect,#data;direct←

(direct)

data3、逻辑运算指令(25条)·逻辑异或运算指令

XRLA,Rn;A←A⊕

Rn XRLA,direct;A←A⊕(direct)

XRLA,@Ri;A←A⊕(Ri)

XRLA,#data;A←A⊕

data XRLdirect,A;direct←

(direct)

A XRLdirect,#data;direct←

(direct)

data

3、逻辑运算指令(25条)

·累加器A清零和取反指令

CLRA;A←0

CPLA;A←A

·移位指令

RLA;A7←A6←…..←A0←A7 RRA;A0→A7→…..→A1→A0 RLCA;CY←A7←A6←…..←A0←CY RRCA;CY→A7→…..→A0→CY SWAPA;高4位和低4位交换指令4、控制转移指令(17条)无条件转移指令

LJMPaddr16;PC←addr16长转移指令:64K范围内转移指令AJMPaddr11;PC←PC+2,PC10~PC0←addr11

绝对转移指令:2K范围内转移指令SJMPrel;PC←PC+2,PC←PC+rel

短转移指令:-126-129范围内转移指令,rel的取值范围-128-127JMP@A+DPTR;PC←A+DPTR

间接转移指令:变址转移指令,目标转移地址的基地址送入DPTR4、控制转移指令(17条)条件转移指令

·累加器A判零转移指令 JZrel;若A=0,则

PC←PC+2+rel,否则PC←PC+2JNZrel;

注意:都是双字节相对转移指令,rel为相对地址偏移量。

4、控制转移指令(17条)·比较不相等转移指令CJNEA,#data,rel;若A=data,则PC←PC+3

若A不等于data,则PC←PC+3+rel

形成Cy标志。CJNEA,direct,rel;CJNERn,#data,rel;CJNE@Ri,#data,rel;注意:指令的相对转移范围为-125~+130

4、控制转移指令(17条)

·减1非零转移指令

DJNZRn,rel;若Rn-1不等于0,则PC←PC+2+rel若Rn-1=0,则PC←PC+2DJNZdirect,rel;若,(direct)-1不等于0,则PC←PC+3+rel若,(direct)-1=0,则PC←PC+3注意:条件转移指令均为相对转移指令,因此指令的转移范围十分有限。

4、控制转移指令(17条)子程序调用和返回指令

·短调用指令ACALLaddr11;PC←PC+2SP←SP+1,(SP)←PC7~PC0SP←SP+1,(SP)←PC15~PC8PC10~0←addr11

注意:(1)短调用指令也称为绝对调用指令;

(2)本调用指令应与被调用子程序起始地址在同一个2KB范围内。4、控制转移指令(17条)·长调用指令LCALLaddr16;PC←PC+3SP←SP+1,(SP)←PC7~PC0SP←SP+1,(SP)←PC15~PC8PC15~0←addr16

注意:本调用指令是一个64KB范围内调用指令。·返回指令RET;PC15~PC8←(SP),SP←SP-1,

PC7~PC0←(SP),SP

←SP-1RETI;PC15~PC8←(SP),SP←SP-1,

PC7~PC0←(SP),SP

←SP-1

返回断点的同时,释放中断逻辑,接受新的中断请求·空操作指令:NOP;PC←PC+15、布尔变量操作指令(17条)MCS-51单片机的一个最大的特点就是在硬件结构上有一个布尔处理器,对应这个处理器,指令系统中设计了处理布尔变量的指令子集。该位操作指令共17条,所有的位操作指令均采用位寻址方式,在指令中位地址可用四种方式表示:

(1)直接寻址方式(2)点操作符表示方式(3)位名称方式(4)标号表示(自定义地址)方式

位传送指令

MOVC,bit

MOVbit,C其中:C为PSW中的Cy;bit为布尔变量的位地址。这组指令的其中一个操作数必须是进位标志C,另一个可以是位地址。

位置位和复位指令·位置位指令 SETBC ;1→Cy SETBbit ;1→(bit)·位复位指令 CLRC ;0→Cy CLRbit ;0→(bit)

位逻辑运算指令·位逻辑“与”指令 ANLC,bit ;(C)∧(bit)→C ANLC,/bit;(C)∧/(bit)→C·位逻辑“或”指令 ORLC,bit ;(C)∨(bit)→C ORLC,/bit;(C)∨/(bit)→C·位逻辑“非”指令 CPLC ;/(C)→C CPLbit ;/(bit)→bit

位条件转移指令·累加器cy状态判断转移指令

JC rel

;若Cy=1,则(PC)+2+rel→PC

;若Cy=0,则(PC)+2→PCJNC rel

;若Cy=0,则(PC)+2+rel→PC

;若Cy=1,则(PC)+2→PC·位状态判断转移指令

JB bit,rel

;若(bit)=1,则(PC)+3+rel→PC ;若(bit)=0,则(PC)+3→PC JNB bit,rel

;若(bit)=0,则(PC)+3+rel→PC

;若(bit)=1,则(PC)+3→PCJBC bit,rel

;若(bit)=1,则(PC)+3+rel→PC,0→bit

;若(bit)=0,则(PC)+3→PC三、单片机指令系统的几个特点指令中的数据表示:数据前加#访问外部数据存储器指令:MOVX

访问外部数据存储器使用数据指针:DPTR查表指令:MOVCA,@A+DPTR

MOVCA,@A+PC调用和转移指令都有几种:

ACALLaddr11绝对调用(2kB内)

LCALLaddr16长调用

AJMPaddr11绝对跳转(2kB内)

LJMPaddr16长跳转

SJMPrel相对跳转CJNE(目的),(源),rel

目的字节与源字节比较,不等,则转到rel处执行,否则顺序执行。DJNZRn,rel

和DJNZdirect,relPUSH和POP指令为单字节操作,且栈指针向下。布尔(位)处理指令举例:

MOVP1.2,C SETBP1.5 JBACC.3,label CPLC CLRP1.6 JNBP1.7,lebel四、单片机中的伪指令名词解释:

汇编程序——是一种由制造厂家或软件公司提供的实用

程序,能把“汇编语言源程序”翻译成机

器语言,供CPU执行。例如:MBUG

汇编语言源程序——设计者编写的程序汇编语言是汇编语言语句的集合,是汇编语言源程序的基本元素。汇编语言语句分为指令性语句和指示性语句。四、单片机中的伪指令指令性语句:指采用指令助记符构成的汇编语言语句,是汇编语言语句的主体。每条指令性语句都有对应的指令代码(机器码)MCS-51单片机有111条指令性语句指示性语句(又称伪指令):不是真正的指令。不会在汇编时产生机器代码汇编时供汇编程序识别和执行,对汇编过程进行某种控制MCS-51中常用的伪指令有8条四、单片机中的伪指令伪指令——是在机器汇编时供汇编程序识别和执行的命令,用于对汇编的过程进行控制。ORG

指令代码存储起始地址

ORG2000HSTART:MOVA,#64H :

ENDEND

结束汇编伪指令

每个源程序只能有一个END,且在程序的末尾。四、单片机中的伪指令EQU

等值(赋值)语句 字符名称EQU数据或汇编符

DAPORTEQU0C010H

注:先定义后使用,定义字符名称不能在表达式中使用。DATA

数据地址赋值语句

字符名称DATA表达式AADATA35H注:表达式可为数据或地址,也可包含已定义的“字符名称”,但不能是汇编符号。四、单片机中的伪指令DB——定义字节[标号:]DB项或项表把“项或项表”中的数据依次存放到以左边标号为起始地址的存储单元中

例如:ORG0600HSTART:MOVA#64H…

TAB:DB3FH,68,01011010B,’5’,’A’…END四、单片机中的伪指令DW——定义双字节数(字)(高8位放低地址单元)

[标号:]DW项或项表

例如:ORG1600HSTART:MOVA#30H…ORG1620H

HETAB:DW3F08H,68H,15END

汇编后:(1620H)=3FH(1622H)=00H(1624H)=00H(1621H)=08H(1623H)=68H(1625H)=0FH四、单片机中的伪指令DS——定义存储空间

[标号:]DS表达式从标号地址开始预留一定数量的内存单元

例如:

SPC:DS08H

BIT——位地址赋值 字符名称BIT位地址

例如:A1BITP3.4A2BIT00H注:BIT语句定义过的字符名称是一个符号位地址。五、汇编语言程序设计-举例汇编语言程序设计步骤拟制设计任务书:程序功能、技术指标、精度等级

实施方案、工程进度、所需设备、研制费

用和人员分工等

建立数学模型:可以是表达式,推理和判断,运行

状态的模拟等确立算法:同一数学模型往往有几种不同的算法绘制程序流程图:设计程序结构编制汇编语言源程序上机调试汇编语言程序的汇编将汇编语言源程序转换为机器语言的过程称为“汇编”。可以采用以下两种手段进行汇编人工汇编——查手册机器汇编——汇编程序例拆字程序:设30H中存放待处理的数据,要求将其拆成两个字节数,存放在31H和32H(高位)中。

例如:59H→05H和09HORG0500HCHAIZ:MOVR1,#32H MOVR0,#30H MOVA,@R0 ANLA,#0F0H RRA RRARRA1.简单程序设计注:4个RRA指令可以用SWAPA指令代替。 RRAMOV@R1,A DECR1 MOVA,@R0 ANLA,#0FH MOV@R1,A END例将一个字节BCD码变成相应的ASCAII码,存入两个RAM单元中。设:BCD码存在内部RAM30H单元中,变换成ASCAII码存入31H和32H中。

ORG

0500H MOVR0,#32H MOV@R0,#00H MOVA,30H XCHDA,@R0 ORL32H,#30H SWAPA ORLA,#30H MOV31H,A END或: ORG0500H MOVR0,#30H MOVA,@R0 MOVB,A ANLA,#0FH ADDA,#30H MOV32H,A MOVA,B SWAPA ANLA,#0FH ADDA,#30H MOV31H,A END例:已知VAR单元内有一变量X,请按右上式编程求Y值,并送入FUNC单元。

求解:(1)

先分支后赋值ORG0100HVARDATA30HFUNCDATA31HMOVA,VAR;A←X JZDONE;若X=0,则DONE JNBACC.7,POSI;若X>0,则POSI MOVA,#0FFH;若X<0,则A←-1 SJMPDONE;转DONE POSI:MOVA,#01H;A←1DONE:MOVFUNC,A;存入FUNC单元 SJMP$ END2.分支程序设计

(2)先赋值后分支ORG0100HVARDATA30HFUNCDATA50HMOVA,VAR;A←X JZDONE;若X=0,则DONE MOVR0,#0FFH;若X≠0,则R0←-1 JBACC.7,NEG;若X<0,则NEG MOVR0,#01H;若X>0,则R0←1 NEG:MOVA,R0;A←R0DONE:MOVFUNC,A;存入FUNC单元 SJMP$ END3.循环程序设计循环程序的组成:初始化:变量、计数器、次数

循环体:循环处理、循环控制

循环结束处理:循环程序的类型:先处理后判断;先判断后处理例:已知数据块长度L,编程求累加和求解:(1)先处理后判断ORG0200HLENDATA20HSUMDATA21HBLOCKDATA22H CLRA;A←0MOVR2,LEN;R2←LMOVR1,#BLOCK;R1←BLOCKNEXT:ADDA,@R1;A←A+(R1)INCR1;R1←R1+1DJNZR2,NEXT;R2-1≠0,则NEXTMOVSUM,A;存累加和 SJMP$ END(2)先判断后处理ORG0200HLENDATA20HSUMDATA21HBLOCKDATA22H CLRA;A←0MOVR2,LEN;R2←LMOVR1,#BLOCK;R1←BLOCKINCR2;R2←R2+1SJMPCHECKLOOP:ADDA,@R1;A←A+(R1)INCR1;R1←R1+1CHECK:DJNZR2,LOOP;R2-1≠0,则LOOPMOVSUM,A;存累加和 SJMP$ ENDDPTR作基址的查表指令

MOVCA,@A+DPTR;A←(A+DPTR)

步骤:(1)DPTR←所查表的始址(2)A←所查表的项数(3)执行查表指令PC作基址的查表指令

MOVCA,@A+PC;A←(A+PC)

步骤:(1)A←所查表的项数(2)查表指令前应放如下指令 ADDA,#data

其中,data=查表指令到表始址间的指令字节数(3)执行查表指令4.查表程序设计例:已知R0中有1个0-F的数,编程将其变换成ASCII码。求解:(1)采用DPTR作基址ORG3000H MOVDPTR,#ASCTAB;DPTR←ASCTABMOVA,R0;A←项数ANLA,#0FH;屏蔽高4位MOVCA,@A+DPTR;A←结果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论