计算机硬件技术基础专题四_第1页
计算机硬件技术基础专题四_第2页
计算机硬件技术基础专题四_第3页
计算机硬件技术基础专题四_第4页
计算机硬件技术基础专题四_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

计算机硬件我年基础

专题MCS-51指令系统

第三章

计算机科学与软件学院计算机基础数学部

本专题是全书的重点,是汇编语言程序设计的基础。

学习指令系统重点要掌握以下几点:

1、指令功能

2、寻址方式

3、操作数的位数和存储结构

4、对PSW的影响

5、指令与存储区的对应关系

6、各类指针及其指向的地址范

7、转移指令的转移范

8、指令字节数和机器周期数

第三章单片机的指令系统

0本章主要介绍单片机的寻址方式及指令系统,

是必须掌握的内容。

0一台计算机所有指令的集合,

称为该计算机的指令系统。

0各种计算机都有专用的指令系统。

学时分配:2学时1—53+97+98+99

2学时54—96100

第三章单片机的指令系统

•33MCS-51

33寻址

3.3MCS61单片机的指令系统

3.1MCS-51指令系统概述

指令字长和指令周期

3.1.1指令格式

-汇编语言指令格式

-机器语言指令格式

一条用助记符表示的汇编语言指令

Oo

Qo

Q----'V^-----、

ADDA,#10H;ADD为操作码,

A及#1OH为操作数

汇编语言指令格式

标号:操作码助记符目的操作数,源操作数;注释

例如:Loop:MOVA,R0;(RO)—>(A)

机器语言指令格式

单字节:操作码或操作码操作数或寻址方式

双字节:操作码操作数或寻址方式

三字节:操作码操作数或寻址方式操作数或寻址方式

例:ADDA,

机器码00100100操作码24H

OOH0000

操作数10H■

3.1.2指令字长和指令周期

指令字长有三种:

单字节RET

双季节MOVA,#68H

三季节MOV30H,46H

指令周期是指执行一条指令所需要的时间

1机器周期指令

2机器周期指令P318附剥I附表1

4机器周期指令

3.1.3指令分类按指令功能分

MCS-51指令咖粉美

令-k

,&-

g条l

J0嫁作舲辞畴榭聆

U条\

)4I—

/I⑴条)⑴条)

按指令字长分类按指令执行时间分类

3.2寻址方式

•寻址方式:7种

-寄存器寻址

-直接寻址

-寄存器间接寻址

-立即寻址

-变址间接寻址

-相对寻址

-位寻址

-寻址方式与寻址空间

-MCS-51单片机的两个突出特点

寄存器寻址操作数存放在寄存器中

寄存器为R0-R7,A,DPTR,C

MOVA,R0SETSRSO

MOVR0f#01001111BMOVR3,#56H

工作寄存器(OOH—1FH)

RS1RSO寄存器组片内RAM地址寄存器

00第。组00H-07HR0-R7

01第1组08H-0FHR0-R7

0第2组10H-17HR0-R7

1第3组18H-1FHR0〜R7

例如:MOVA,R3;机器码为OEBH

指令功能是把当前R3中的操作数送累加器A。

指令执行示意图如图3—6所示。设(R3)=12H

ROM

PC.moi^TT)

0001001。]R0

指定0~3工作区

PSW00010010A

富接寻批一指令中直接给出操作数的地址

•功能最强,可访问3种地址空间

•内部数据存储器地址空间(RAM):

00H-7FH

MOVA,OOH

MOV30H.20H

■特殊功能寄存器地址空间,唯一方式

80H-0FFH

MOVA,90H

MOVA,B

•位地址空间

00H-0FFHMOVC900H

例:MOVA,30H;机器码为E530H

指令功能是把直接地址30H单元的内容

送累加器A,即(30H)-(A)如图3—1所示。

ROM内部F'AM

PC―11100101操作眄

00110000直接地址34H30H

34HA

寄存器间接寻址

•将指定的寄存器的内容为地址,由该地

址所指定的单元内容作为操作数。

movA,@RO30H

(R0)=31H__31H

32H

((R0))=(31H)—>(A)=02H

例如:MOVA,@R1;机器码E7H

设(RI)=60H,(60H)=50H,执行结果(A)

=50H,该指令执行过程如图3—4所示。

内部RAM

001100000R1

ROM成

0

PC1110011I1

R1

0101000060H

D50

D60

D7001010000A

PSWRS1RS0

立即寻址——在指令中直接给出操作数

例:MOVA,#7Ah;747AH

把立即数7AH送累加器A,指令执行示意图如图3・2所示。

ROM

PC01110100操作措

oiiiioio一立即数

01111010A

例:MOVDPTR,#1234h

(DPH)=12H

(DPL)=34H

注意:立即数前加“#力号,以区别直接地址。

例如:MOVA,#30H;(A)—30H

MOVA,30H;(A)-OOH)

变址间接寻址

•基址寄存器+变址寄存器的/期?寻统方式

DPTR/PCA

MOVCA,@A+DPTR

(A)<-((DPTR)♦(A))

MOVCA,@A+PC

(A)—((PC)+(A))

JMP@A+DPTR

(PC)=(A)+(DPTR)

MOVCA,@A+PC;83H

设执行指令之前(A)=50H

指令功能是把该指令当前地址PC值与A

累加器内容相加形成操作码地址3F51H,

3F51H中的内容37H送A累加器。

相对寻址

•以当前的PC值为基准,加上指令中给出

的相对偏移量(rel)形成有效的转移地址。

jcLoop;

补码

[-128,127]

rel

rel

Loop:

JCrel;4085H

目标地址

设rel=85H,Cy=l

ROM

1F89H

PC

当前

PC—►2002H01000000

PC+12003H10000101

PC+1—2004H2004H

位寻址bit

位寻址范围:

1、内部RAM的位寻址区,共16个单元的

128位,字节地址为20H〜2FH,位地址为

00H〜7FH。可用直接位地址或字节地址加位

的表示方法。

例如:MOVC,7AH

或MOVC,2FH.2

2、特殊功能寄存器SFR可供位寻址的专用寄存器共11个,

实有位地址位83位。位地址有4种表达方式。

以对程序状态寄存器PSW辅助进位位AC进行操作为例:

psw|卬|P1DOH

D7HD6HDOH

1)直接使用位地址3)单元地址加位的表示法

MOVC,0D6HMOVC,ODOH.6

2)位名称表示法4)专用寄存器符号加位的表示法

MOVC,ACMOVC,PSW.6

寻址方式与寻址空间

寻址方式寻址空间

R0*R7

寄存器寻址

A、AB、CY>DPTR

内部RAM00H*7FH

特殊功能寄存器SFR80H*0FFH

直接寻址

内部RAM中20H~2FH单元的128个位地址

SFR中83个有效位地址80H~0FFH

寄存器内部RAM00H~7FH(@R0>@R1、SP)

间接寻址夕卜部RAM或夕卜部"O口OOOOH*OFFFFH

(@R0、@R1、@DPTR)

立即寻址程序存储器

基址♦变址

程序存储器(@A+DPTR、@A+PC)与知

寄间寻址

fl内部数据存储器与内部I/O口统一编址

1、内部数据存储器的寻址方式

1)OOH-1FH寄存器寻址4组RO〜R7Rn

直接寻址direct

寄存器间接寻址@RO,@R1

例:(01H)->(02H)

MOVO2H9O1H;源寻址和目的寻址均为直接寻址

MOVR2,01H;源寻址为直接寻址,目的寻址为寄存器寻址

MOVR0f#01H

MOV02H,@R0;源寻址为寄存器间接寻址,

目的寻址为直接寻址

2)20H-2FH可位寻址区的寻址方式

字节寻址方式:直接寻址direct

寄存器间接寻址

位寻址:bit直接寻址

例:位寻址(位

MOV26H9C;26H)1

MOV26H,A;字节寻址(26H)8位

3)30H-7FH数据缓冲区的寻址方式

字节寻址方式:直接寻址direct

寄存器间接寻址@R0,@R1

例:MOV56H,A;字节寻址(56H)8位

MOVR0,#66H

MOV@R0,#56H

可以将用户堆栈设在该区内,堆栈指针SP

2、SFR及“。口的操作只能直接寻址

例:P1口90H

MOVA,90H

MOVA,P1编

MOVP1,A

3、关于A累加器有两种寻址方式:

MOVA,#23H;A寄存器寻址

PUSHACC】[;上直g接=寻山址

POPOEOHJ

4、可做片内RAM的指针有:

RO,R1,四个组共有8个

预先设置RS1、RSO,以选定组。

SETBRSO

CLRRS1;1组

MOVR0,#34H;R0的地址是?

SETBRS1;3组

MOVRO,#68H;RO的地址是?

R0/R1指向的地址范围:00H~7FH

T2片外数据存储区和外部扩展的I/O口的寻址方式

指针:R0,R18位

DPTR16位只能寄存器间接寻址

指令助记符:MOVX

外部数据存储器的地址,或

例:MOVDPTR,#2000H"。口的地址16位

MOVA,#34H统

高8位地址

MOVX@DPTR9A

MOVP2#20H低8位地址

9址

MOVRO,#OOH)

R0/R1指向的地址范围:

MOVA,#34H

MOVX@RO,AOOH*OFFHu

3.3MCS-51单片机的指令系统

指令描述符号简介

■指令分类

指令描述符号(1)P68

-Rn-R0~R7工作寄存器R0〜与,n=0〜7

-direct-8位直接地址,表示直接寻址方式

-@Ri-只能是RO或RL所以i=0,1

-#data--8位立即数,数据范围00H〜FFH

-#data16--16位立即数,数据范围OOOOH〜FFFFH

-addr16-16位目标地址

-addri1-低11位目标地址

指令描述符号(2)

-rel8位带符号地址偏移量,[-128,127】补码

-bit位地址

-$当前指令地址

数据传送类指令(1)内部

direct@Ri

―|/

data

立即数

%

数据传送类指令(2)

-movA,Rn;(A)—(Rn)n=0〜7

-movA,direct;(A)<—(direct)

-movA,@Ri;(A)<-((Ri))i=0,l

-movA,#data;(A)<—#data

-movRn,A;(Rn)—(A)

-movRn,direct;(Rn)<—(direct)

-movRn9#data;(Rn)<—#data

数据传送指令(3)

MOV@RRO

-movdirect,A;irect)<—(A)

-movdiMOV、n)n=0〜7

J

-movdi二:<—(direct)

MOV@R1

-movdirect,@Ri;'(direct)—((Ri))i=0J

-movdiMOVRl>

)<—#data

-mov@Ri,A;((Ri))—(A)

-mov@Ri9direct;((Ri))<-(direct)

-mov@Ri,#data;((Ri))<-#data

数据传送类指令(4)交换指令

-xchA,Rn;(A)=(Rn)n=0〜7

-xchA,direct;(A)=(direct)

-xchA,@Ri;(A)o((Ri))i=09l

-xchdA,@Ri;(Ao〜3)o((Ri)o〜3)

-swapA;(Ao-3)=(A4〜7)

数据传送类指令(5)堆栈操作

-popdirect;(direct)<—((sp)),(sp)<—(sp)-l

-pushdirect;(sp)<—(sp)+l9((sp))—(direct)

1、堆栈一种数据结构,是“先进后出”线性表。

2、堆栈操作:压入PUSH,弹出POP

3、堆栈区:占片内RAM中连续的存储单元

复位后,系统自动将SP指针指向07H

用户可将堆栈区设在30H~7FH数据缓冲区内,

MOVS^#5FH

堆栈有两种类型:向上生长型和向下生长型,如图2・5

所示。向上生长型堆栈,栈底在低地址单元。随着

数据进栈,地址递增,SP的内容越来越大,指针上移;

反之,随着数据的出栈,地址递减,SP的内容越来越

小,指针下移。如(b)图所示。

S2-5堆栈类型

MCS-51属生长型堆栈,这种

堆栈的操作规则如下:

进栈操作:先SP加1,后写入数据。

出栈操作:先读出数据,SP减1。

向下生长型堆栈,栈底设在高地址单元。随着

数据进栈,地址递减,SP内容越来越小,指针下

移;反之,随着数据的出栈,地址递增,SP内容

越来越大,指针上移。其堆栈操作规则与向上生

长型正好相反。如(a)图所示。

堆栈的使用有两种方式:

一种是自动方式,即在调用子程序或断点时,断

点地址自动进栈。程序返回时,断点地址再自动弹回

PCo这种操作无需用户干预。

另一种是指令方式,即使用专用的堆栈操作指令,

执行进出栈操作,其进栈指令为PUSH,出栈指令为

POPo例如:

保护现场就是一系列指令方式的进栈操作;

而恢复现场则是一系列指令方式的出栈操作。

需要保护多少数据由用户决定。

保护现场:

PUSHACC

PUSH

PUSH01H

恢复现场:

POP01H

POPPSW

POPACC

数据传送类指令(6)外部

r

-movxA,@Ri;(A)<—((Ri))i=0l

外9

-movxA,@DPTR;(A)一((DPTR))

据-movx@Ri,A;((Ri))—(A)

、-movx@DPTR,A;((DPTR))—(A)

-moveA,@A+DPTR;(A)—((A)+(DPTR))

外部

程序

L-moveA,@A+PC;(PC)—(PC)+1,内部

6

(A)<-((A)+(PC)ykl^J

movDPTR#datal6;(DPTR)—#datal6金

9

传送类指令举例:

[例3—1]已知(RO)=30H,问执行如下程序,A、R4、

30H和31H单元的内容是什么。

MOVA,#10H(A)=10H

MOVR4,#36H(R4)=36H

MOV@R0,#7AH(30H)=7AH

MOV31H,#01H(31H)=01H

解:8031执行上述指令后的结果为:

[例3—2]设内部RAM中30H单元的内容为40H,40H单元的内

容为10H,P1口作输入口,其输入数据为0CAH,程序及执行

后的结果如下:

MOVRO,#30H;单元地址30H送R0中

MOVA,@R0;RO间址,将30H单元内容送A

MOVRI,A;A送RI

MOVB,@R1;RI间址,将40H单元内容送B

MOV@R1,Pl;将Pl内容送40H单元

MOVP2,Pl;将Pl内容送P2

执行结果:(R0)=30H,(RI)=40H,(A)=40H,(B)=10H,

(Pl)=0CAH(40H)=0CAH,(P2)=0CAH

I:例3—3]已知片外RAM的70H单元中的一个数X,需送到片

外RAM的1010H单元,试编写程序。

解:ORG1000H外部RAM

MOVRO,#70H之间不能直接传

MOVDPTR,#1010H送数据,必须通

过累加器A传送

MOVXA,@R0

MOVX@DPTR,A/

SJMP$MOVX@DP1J^RO

END'、

[例3—5]设(30H)=X,(40H)=¥,试利用堆栈区

域实现30H和40H单元中的数据交换。

解:堆栈区是片内RAM的一个数据区,进栈和出栈

的数据符合“先进后出”的原则。

MOVSP,#50H;设栈底(栈底不存数)

PUSH40H;(51H)-(40H)

PUSH30H;(52H)-(30H)

POP40H;(40H)-(52H)

POP30H;(30H)-(51H)

(a)压入Y,X(b)弹出X,¥

[例3—6]已知外部RAM2020H单元中有一个数X,内部

RAM20H单元一个数Y,试编出可以使它们互相交换的程

序。指向外部

解:MOVP2,#20HRAM

2020H单元

MOVRI,#20H

MOVXA,@R1

指向内部

XCHA,@R1RAM

20H单元

MOVX@R1,A

SJMP$

END

[例3—7]已知片内50H单元中有一个0〜9的数,

试编程把它变为相应的ASCII码的程序。

解:因为0〜9的ASCII码为30〜39H

程序如下:MOVRO,

MOVA,

XCHDA,

MOV@R0

SJMP$

END8

[例3—8]把01H单元内容送02H单元,有几种不同的实现方法。

①MOV02H,01H;直接寻址3字节2周期

②MOVA,01H;直接寻址+寄存器寻址

MOV02H,A;4字节2周期

③MOVA,RI;寄存器寻址2字节2周期

MOVR2,A

④MOVRO,#01H;4字节3周期

MOV02H,@R0;间接寻址

⑤PUSH01H;栈操作4字节4周期

POP02H

第三种方法占存储空间少,执行周期短。

算术运算类指令

A

程序状态字PSW

D7D6D5D4D3D2DIDO

CyACFORSIRS]OVP

•Cy:进位标志;布尔累加器

•AC:辅助进位标志(半进位)

・F0:用户标志

・RS1/RSO:寄存器选择

•OV:溢出标志

・P:奇偶标志

加法指令

A

不带进位的加法指令

•addA,RK;(A)<-(A)+(Rn)

•addA,direct;(A)<—(A)+(direct)

•addA,@Ri;(A)<-(A)+((Ri))

•addA,#data;(A)<—(A)+#data

4

带进位的加法指令

•addcA,Rn;(A)<-(A)+(Rn)+(C)

•addcA5direct;(A)<-(A)+(direct)+(C)

•addcA,@Ri;(A)<-(A)+((Ri))+(C)

•addcA9#data;(A)<—(A)+#data+(C)

4

加1指令

•incA;(A)—(A)+l

•incRn;(Rn)—(Rn)+1

•incdirect;(direct)<—(direct)+l

•inc@Ri;((Ri))—((Ri))+1

二-十进制调整指令

•DAA

•调整原则:

-形式上非BCD码需要加06H、60H、66H调整

-形式上是BCD码时:

CYAC调整原则

00不调整

01+06H

10+60H

11+66H

:BCD码减法

减法指令

•subbA,Rn;(A)<-(A)-(Rn)-(C)

•subbA,direct;(A)<—(A)-(direct)-(C)

•subbA,@Ri;(A)<-(A)-((Ri))-(C)

•subbA,#data;(A)<—(A)-#data-(C)

减1指令

减1指令

•decA;(A)—(A)・l

•decRn;(Rn)^(Rn)-l

•decdirect;(direct)<—(direct)-l

•dec@Ri;((Ri))—((Ri))-1

乘/除指令

•无符号数乘法指令

-mulAB;(A)x(B)f(B)(A)

•若(B)w0贝(IOV=1,否贝!jOV=0;Cy三0

•无符号数除法指令

-divAB;(A)/(B)=(A),余数(B)

•C卡0;若(B)=0贝!)OV=1

逻辑运算类指令

单字节逻辑操作数运算指令

双字节逻辑操作数运算指令

单字节逻辑操作数运算指令

累加器A清“零”指令

•CLRA;

-(A)―0;

累加器A清:

CLRA;

CLRC

SUBBA50E0H

累加器A取反指令

・CPLA

-(A)=55H

-CPLA

-(A)=OAAH

-CLRA

-CPLA

-INCA

o

累加器A循环左移指令

•RLA;ROTATELEFT

-(A)=55H

-RLA;(A)=0AAH

-MOVA,#01H

-RLA

-RLA

-RLA

-RLA

oOo

累加器A连同进位位循环左移指令

•RLCA

•(A)=0

•(CY)=1

•RLCA

•RLCA

•RLCA

•RLCA

累加器A循环右移指令

•RRA;ROTATERIGHT

•(A)=08H

•RRA-►]A»~~»

•RRA

•RRA

•RRA

G

累加器A连同进位位循环右移指令

•RRCA;

•(A)=0

•(CY)=O

•RRCA

•RRCA

•RRCA

•RRCA

双字节逻辑操作数运算指令

逻辑“与”指令

•ANLA,Rn;(A)<-(A)•(Rn)

•ANLA,direct

•ANLA,@Ri

•ANLA,#data

•ANLdirect,A

•ANLdirect,#data

逻辑“或”指令

・orlA,Rn;(A)<-(A)+(Rn)

•orlA,direct

•orlA,@Ri

•orlA,#data

•orldirect,A

•orldirect,#data

逻辑“异或”指令

•xrlA,Rn;(A)<-(A)©(Rn)

•xrlA,direct

•xrlA,@Ri

•xrlA5#data

•xrldirect5A

•xrldirect5#data

布尔处理类指令

布尔数据传送指令

•movC,bit;(C)<―(bit)

•movbit,C;(bit)<—(C)

布尔状态控制指令

•位清“0”指令

-clrC

-clrbit

•位置“1”指令

-setbC

-setbbit

•位取反指令

-cplC

-cplbit

位逻辑指令

・位逻辑与指令

-anlC,bit;

-anlCJbit;

•位逻辑或指令

-orlC,bit;

-orlCJbit;

空操作指令

•nop;(PC)—(PC)+1

-clrP3.7

-nop

-setbP3.7

-nop

-clrP3.7

-nop

-setbP3.7

布尔处理示例

UBIT20H.0

VBIT20H.1

WBIT20H.2

XBIT20H.3

YBIT20H.4

ZBIT20H.5

QBIT20H.6

ORG0000H

Start:movC,V

orlC,W

anlC,U

movF0,C

movC,X

orlC,/Y

Q=U・(V+W)*(X+Y)・ZanlC,F0

anlC,/Z

movQ,C

sjmp$

END

控制转移类指令

无条件转移指令

绝对无条件转移指令

•格式:ajmpaddrll;

•功能:无条件转向指令中提供的U位地址。

转移范围:2K,PCi5〜U不变

ajmpStart

长转移指令

•格式:Ijmpaddrl6;(PC)<—addrl6

•功能:无条件转向指令中提供的16位地址。

三字节指令,后两个字节为转移的目

标地址.转移范围:64K

IjmpStart

4

短转移指令

•格式:sjmprel;(PC)—(PC)+2,

(PC)―(PC)+rel

・功能:相对转向指令,rel为一字节补码形

式的相对偏移量.转移范围:-128〜+127

•例:sjmpLoop

sjmp$

4

间接转移指令(散转)

•格式:jmp@A+DPTR;(PC)<-

(A)+(DPTR)

・功能:根据A与DPTR的内容转移,转移的

目标地址可觉

•例:movDPTR,#JMP_TBL

jmp@A+DPTR

JMPTBL:ajmpLablel

ajmpLablel

条件转移指令

判零转移指令

式:jzrel;rel:8位相对偏移量

・功能:(PC)—(PC)+2,

IF(A)=0THEN(PC)—(PC)+relELSEgoon

•格式:jnzrel;rel:8位相对偏移量

・功能:(PC)—(PC)+2,

IF(A),0THEN(PC)<-(PC)+relELSEgoon

判位变量转移指令

•格式:jbbit^rel;rel:8位相对偏移量

•功能:(PC)—(PC)+3,

IF(bit)=lTHEN(PC)—(PC)+relELSEgoon

•格式:jnbbit,rel;rel:8位相对偏移量

・功能:(PC)—(PC)+3,

IF(bit)=OTHEN(PC)—(PC)+relELSEgoon

判位变量并清零转移指令

式:jbcbit^rel;rel:8位相对偏移量

•功能:(PC)—(PC)+3,

IF(bit)=lTHEN(PC)^(PC)+reland(bit)=O

ELSEgoon

判布尔累加器C转移指令

,格式:jcrel;rel:8位相对偏移量

•功能:(PC)—(PC)+2,

IF(C)=lTHEN(PC)^(PC)+relELSEgoon

,格式:jncrel;rel:8位相对偏移量

•功能:(PC)—(PC)+2,

IF(C)=0THEN(PC)<-(PC)+relELSEgoon

比较转移指令

cjne(目的字节),(源字节),rel

■功能:目的字节与源字节比较,不相等则转

移,同时,若目的字节>=源字节则(C)=0;若

目的字节〈源字节则(C)=l。相等则继续执行。

•cjneA,direct,rel;(PC)—(PC)+3

•cjneA5#data,rel;

•cjneRn,#data,rel;

•cjne@Ri,#data,rel

酒力

循环转移指令

式:djnzRn^rel;rel:8位相对偏移量

・功能:(PC)—(PC)+2,(Rn)<-(Rn)・l

IF(Rn)wOTHEN(PC)^-(PC)+relELSEgoon

•格式:djnzdirected;rel:8位相对偏移量

•功能:(PC)—(PC)+3,

IF(

温馨提示

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

评论

0/150

提交评论