第三章寻址方式与指令系统_第1页
第三章寻址方式与指令系统_第2页
第三章寻址方式与指令系统_第3页
第三章寻址方式与指令系统_第4页
第三章寻址方式与指令系统_第5页
已阅读5页,还剩184页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章第三章 寻址方式与指令系统寻址方式与指令系统3.1 3.1 寻址方式寻址方式3.2 C2xx3.2 C2xx的指令集的指令集3.3 C2xx3.3 C2xx的伪指令的伪指令3.4 3.4 宏指令宏指令3.1 3.1 寻址方式寻址方式v寻址方式寻址方式:获取操作数的方式。:获取操作数的方式。vC2xx提供了三种寻址方式:提供了三种寻址方式: 1)立即寻址方式立即寻址方式:指令中直接给出操作数。:指令中直接给出操作数。长立即寻址:操作数为长立即寻址:操作数为16位。位。短立即寻址:操作数为短立即寻址:操作数为8、9、13位。位。2)直接寻址方式直接寻址方式:把指令字的低:把指令字的低7位和数

2、据页指针位和数据页指针(DP)的内容连接起来,得到)的内容连接起来,得到16位数据存储单元位数据存储单元地址。地址。3)间接寻址方式间接寻址方式:当访问数据存储单元时,通过片:当访问数据存储单元时,通过片上上8个个16位辅助寄存器来产生访问地址位辅助寄存器来产生访问地址。3.1 3.1 寻址方式寻址方式v3.1.1 立即寻址方式立即寻址方式 立即寻址方式指令中直接给出操作数,无须通过访问数据存立即寻址方式指令中直接给出操作数,无须通过访问数据存储器来获得储器来获得。又包括:。又包括: 1)短立即寻址短立即寻址:操作数为:操作数为8、9、13位。指令一般为单字指位。指令一般为单字指令,令,操作数

3、嵌在指令字的低位中。操作数嵌在指令字的低位中。 例如:例如:RPT #99; NOP ;把;把NOP指令连续执行指令连续执行100次次 3.1 3.1 寻址方式寻址方式2)长立即寻址长立即寻址:操作数为:操作数为16位。指令为双字指令,位。指令为双字指令,操作数为第二个字。操作数为第二个字。 例如:例如:ADD #16384,2;(将立即数左移;(将立即数左移2位,位,再与累加器内容相加)。再与累加器内容相加)。3.1 3.1 寻址方式寻址方式v3.1.2 直接寻址方式直接寻址方式 直接寻址用于数据存储器的寻址。直接寻址用于数据存储器的寻址。DSP把数据把数据存储器划分为存储器划分为0-511

4、共计共计512个数据页,每个数据个数据页,每个数据页涵盖页涵盖128个存储单元。共计全部个存储单元。共计全部64K数据存储空数据存储空间间。 使用两个片内器件来进行直接寻址,它们是:使用两个片内器件来进行直接寻址,它们是: 状态寄存器状态寄存器ST0:它的低:它的低9位提供位提供数据页指针数据页指针(DP),用来指示数据页。,用来指示数据页。 指令寄存器指令寄存器:CPU在读取指令时,指令代码被装在读取指令时,指令代码被装入入指令寄存器指令寄存器IR。其高。其高8位提供操作指令代码,低位提供操作指令代码,低7位提供数据在数据页内部的位提供数据在数据页内部的页内偏移量页内偏移量。3.1 3.1

5、寻址方式寻址方式v下面是下面是IR的位布置图:的位布置图:其中,其中,Bit7表示寻址方式:表示寻址方式:0代表直接寻址,代表直接寻址,1代表间接寻址代表间接寻址。 实际的访问地址是实际的访问地址是DP和页内偏移量合并而成的:和页内偏移量合并而成的:因此,我们在使用直接寻址时,必须按如下步骤进行:因此,我们在使用直接寻址时,必须按如下步骤进行:设置数据页设置数据页:将数据页代码装入:将数据页代码装入DP。如:。如: LDP #32 ;把;把DP设置为设置为32。指定偏移量指定偏移量:7位页内偏移量由指令操作数提供。如:位页内偏移量由指令操作数提供。如: ADD #1h ;把页内偏移量为;把页内

6、偏移量为1的内容(页内第的内容(页内第2单单元)和累加器目前的内容相加。元)和累加器目前的内容相加。8MSBs/指令代码指令代码0或或1/寻址方式寻址方式7LSBs/页内偏移量页内偏移量数据页指针数据页指针/DP(9位)位)页内偏移量(页内偏移量(7位)位)3.1 3.1 寻址方式寻址方式v直接寻址方式的指令代码和直接寻址方式的指令代码和16位数据存储器位数据存储器地址形成过程如下:地址形成过程如下:3.1 3.1 寻址方式寻址方式v例1:3.1 3.1 寻址方式寻址方式v例2:3.1 3.1 寻址方式寻址方式3.1.3 间接寻址方式间接寻址方式 (一)间接寻址概述(一)间接寻址概述vX24X

7、片内有片内有8个辅助寄存器个辅助寄存器AR0-AR7,提供了灵活强大的,提供了灵活强大的寻址能力。用户通过当前辅助寄存器的寻址能力。用户通过当前辅助寄存器的16位地址,可以访问位地址,可以访问64K字的数据存储器。字的数据存储器。vAR、APR的值可以通过的值可以通过MAR指令(修改辅助寄存器和指令(修改辅助寄存器和ARP值)或值)或LST(把数据存储器的值写入(把数据存储器的值写入ST0)来修改。也可以)来修改。也可以通过任何支持间接寻址的命令把修改通过任何支持间接寻址的命令把修改ARP作为辅助操作来执作为辅助操作来执行。行。v使用这使用这8个寄存器进行寻址的方法,也叫做寄存器间接寻址。个寄

8、存器进行寻址的方法,也叫做寄存器间接寻址。方法是通过程序装载方法是通过程序装载辅助寄存器指针辅助寄存器指针(状态寄存器(状态寄存器ST0的高的高三位)三位)ARP,给出辅助寄存器编号,给出辅助寄存器编号0-7,从而指向一个辅助,从而指向一个辅助寄存器寄存器当前辅助寄存器当前辅助寄存器。当前辅助寄存器中包含了要访当前辅助寄存器中包含了要访问(读或写)的数据存储单元的地址,根据指令要求读或写问(读或写)的数据存储单元的地址,根据指令要求读或写以确定送往以确定送往DRAB或或DWAB。v当指令使用当前当指令使用当前AR操作完成后,其值可以由操作完成后,其值可以由ARAU按照无按照无符号符号16位算术

9、运算规则自动进行增减(位算术运算规则自动进行增减(1或其它整数)或其它整数) 。3.1 3.1 寻址方式寻址方式 (二)(二)7种间接寻址方式种间接寻址方式v间接寻址方式的间接寻址方式的当前当前AR所包含的地址使用结束后所包含的地址使用结束后,要根据,要根据指令需求进行修改,为下一步操作做准备。系统提供了指令需求进行修改,为下一步操作做准备。系统提供了4种种修改方法:修改方法:无增减(无增减(*)。对当前辅助。对当前辅助AR不做任何修改。不做任何修改。增加增加1或减少或减少1(*+或或*-)。对当前辅助。对当前辅助AR的值加或减的值加或减1。按照索引量增加或减少(按照索引量增加或减少(*0+或

10、或*0-)。把。把AR0的值当作索引的值当作索引量,从当前量,从当前AR中增加或减去中增加或减去AR0的索引量。的索引量。按照索引量增加或减少并反向进位(按照索引量增加或减少并反向进位(*BR0+或或*BR0-)。把。把AR0的值当作索引量,从当前的值当作索引量,从当前AR中增加或减去中增加或减去AR0的索引的索引量,并在加减过程中进行反向进位。一般用于快速傅立叶变量,并在加减过程中进行反向进位。一般用于快速傅立叶变换(换(FFT)算法。)算法。Table. Indirect Addressing Operands3.1 3.1 寻址方式寻址方式(三)当前辅助寄存器的修改(三)当前辅助寄存器的

11、修改v所有指令都支持间接寻址,其中一些还可以所有指令都支持间接寻址,其中一些还可以在修改当前辅助在修改当前辅助AR的同时,在第二操作数中声明下一个当前辅助寄存器的同时,在第二操作数中声明下一个当前辅助寄存器。这些指令执行时,将用一个新值装载辅助寄存器指针这些指令执行时,将用一个新值装载辅助寄存器指针ARP,而旧的而旧的ARP值将被装入辅助寄存器指针缓冲器值将被装入辅助寄存器指针缓冲器ARB(ST1高高3位)。位)。 例:声明当前辅助寄存器的例子例:声明当前辅助寄存器的例子 MAR *,AR1 ;向;向ARP装入装入1,使得,使得AR1成为当成为当前辅助寄存器。前辅助寄存器。 LT *+,AR2

12、 ;把;把AR1的内容装入的内容装入TREG,然后,然后AR1增增1;同时,对;同时,对ARP装入装入2,把,把AR2声明为下一辅助寄声明为下一辅助寄存器。存器。 MPY * ;把;把AR2对应数据单元的内容和对应数据单元的内容和TREG的值相乘。的值相乘。3.1 3.1 寻址方式寻址方式v(四)间接寻址的指令字格式(四)间接寻址的指令字格式v间接寻址的指令字如下面格式:间接寻址的指令字如下面格式: 各位含义如下:各位含义如下:8MSB:位:位15至位至位8指示指令类型及数据移位有关的信息。指示指令类型及数据移位有关的信息。1:直接:直接/间接指示;间接指示;ARU:辅助寄存器更新代码;:辅助

13、寄存器更新代码;N:下一辅助寄存器指示;:下一辅助寄存器指示;N=0,ARP的内容不变,的内容不变,N=1,NAR的的内容加载到内容加载到ARP;NAR:下一辅助寄存器:下一辅助寄存器3.1 3.1 寻址方式寻址方式Table. Effects of the ARU Code on the Current Auxiliary RegisterTable. Field Bits and Notation for Indirect Addressing3.1 3.1 寻址方式寻址方式v举例3.1 3.1 寻址方式寻址方式v例:采用间接寻址的例:采用间接寻址的ADD指令指令ADD *+,8,AR4

14、;当前辅助寄存器指定数;当前辅助寄存器指定数据单元的内容左移据单元的内容左移8位,与累加器的内容相加,位,与累加器的内容相加,然后然后当前当前AR内容增内容增1。同时,声明。同时,声明AR4为新为新的当前的当前AR(下一辅助寄存器)。(下一辅助寄存器)。v例:采用间接寻址的例:采用间接寻址的ADD指令指令ADD *BRO+,8 ;当前辅助寄存器指定数据;当前辅助寄存器指定数据单元的内容左移单元的内容左移8位,与累加器的内容相加,位,与累加器的内容相加,然后当前然后当前AR内容加内容加AR0,并反向进位。,并反向进位。3.2 C2xx3.2 C2xx的指令集的指令集TMS320C2xx系列系列D

15、SP具有强大的指令集,按其功能可以分为具有强大的指令集,按其功能可以分为六大类:六大类:v(1) Accumulator(累加器指令)(累加器指令), arithmetic(算术指(算术指令)令), and logic instructions(逻辑操作指令)等(逻辑操作指令)等v(2) Auxiliary register(辅助寄存器指令),(辅助寄存器指令),data page pointer instructions(数据页指针指令)(数据页指针指令)v(3) TREG(暂时寄存器),(暂时寄存器),PREG(乘积寄存器),(乘积寄存器),multiply instructions (乘

16、法指令)(乘法指令)v(4) Branch instructions (程序分支转移指令)(程序分支转移指令)v(5) Control instructions (控制指令)(控制指令)v(6) I/O and memory instruction(I/O和存储器指令)和存储器指令)3.2 C2xx3.2 C2xx的指令集的指令集一汇编语言的一般格式一汇编语言的一般格式X24X汇编程序一般格式如下:汇编程序一般格式如下:v格式格式1 标号:指令标号:指令 操作数(操作数(1-3个)个) ;注释;注释v格式格式2 *注释注释 标号:指令标号:指令 操作数(操作数(1-3个)个)v解释如下:解释如

17、下:v1关于标号:关于标号: 1)标号必须以)标号必须以字母字母或或下划线下划线+字母字母开始;开始; 2)标号的第一个字符必须位于第一列;)标号的第一个字符必须位于第一列; 3)标号最多包含)标号最多包含32个字符。个字符。3.2 C2xx3.2 C2xx的指令集的指令集v2关于指令:关于指令: 1)包括伪指令和汇编命令;)包括伪指令和汇编命令; 2)伪指令以实心点)伪指令以实心点“.”开头;开头; 3)汇编指令直接书写,没有特定标记。)汇编指令直接书写,没有特定标记。v3关于操作数:关于操作数: 1)操作数包含常数、符号或表达式。)操作数包含常数、符号或表达式。 2)操作数之间用逗号)操作

18、数之间用逗号“,”隔开。隔开。 3)根据指令功能不同,操作数可能有)根据指令功能不同,操作数可能有1-3个。个。v4关于注释:关于注释: 1)注释要用)注释要用“;”或或“*”号引出;号引出; 2)使用)使用“;”号时,号时,可以从任一列开始可以从任一列开始;而使用;而使用“*”号时,号时,则则必须从第一列开始必须从第一列开始。 3)注释不是必须的,在编译时将被忽略。)注释不是必须的,在编译时将被忽略。3.2 C2xx3.2 C2xx的指令集的指令集 二具体指令格式表述方法二具体指令格式表述方法v在查阅指令集时,必须弄懂通用的格式表述在查阅指令集时,必须弄懂通用的格式表述方法。以方法。以ADD

19、为例,其格式有:为例,其格式有:3.2 C2xx3.2 C2xx的指令集的指令集v这里使用了诸如:这里使用了诸如:dma、shift、ind、AR、k、lk、shift等符号。了解这些等符号。了解这些符号,有助于我们准确查阅手册,掌符号,有助于我们准确查阅手册,掌握各类指令的用法。握各类指令的用法。v指令查询代号见下表指令查询代号见下表3.2 C2xx3.2 C2xx的指令集的指令集v比较常用符号的如:比较常用符号的如: k8位立即数,使用格式为位立即数,使用格式为#k; lk16位立即数,使用格式为位立即数,使用格式为#lk; ind间接寻址,代表间接寻址,代表*、*+、*-等;等; AR辅

20、助寄存器;辅助寄存器; ARP辅助寄存器指针;辅助寄存器指针; C进位位;进位位; dma数据存储单元地址,如数据存储单元地址,如050Ah;间接寻址;间接寻址; dst目的地址;目的地址; pma程序存储器地址;程序存储器地址; shift、shiftn移位移位1-16位;位; 等等。等等。3.2 C2xx3.2 C2xx的指令集的指令集三汇编语言指令集三汇编语言指令集 下面给出指令的下面给出指令的6种分类列表:种分类列表:Table 1. Accumulator, Arithmetic, and Logic InstructionsTable 1. Accumulator, Arithme

21、tic, and Logic Instructions (Continued)Table 1. Accumulator, Arithmetic, and Logic Instructions (Continued)Table 1. Accumulator, Arithmetic, and Logic Instructions (Continued)Table2. Auxiliary Register InstructionsTable3. TREG, PREG, and Multiply InstructionsTable3. TREG, PREG, and Multiply Instruct

22、ions(Continued)Table4. Branch InstructionsTable5. Control InstructionsTable5. Control Instructions(Continued)Table6. I/O and Memory Instructions3.2 C2xx3.2 C2xx的指令集的指令集v四、举例四、举例ABS(Absolute Value of Accumulator)指令)指令ADDADD(Add to Accumulator)指令)指令ADDCADDC(Add to Accumulator With Carry)指令)指令ADDSADDS(

23、Add to Accumulator With Sign Extension Suppressed)指令)指令ADDTADDT(Add to Accumulator With Shift Specified by TREG)指令)指令ADRKADRK(Add Short-Immediate Value to Auxiliary Register)指令)指令(AND With Accumulator)指令)指令(Add PREG to Accumulator)指令指令B B(Branch Unconditionally)指令)指令BACCBACC(Branch to Location Speci

24、fied by Accumulator)指令指令BANZBANZ(Branch on Auxiliary Register Not Zero)指令)指令BCNDBCND(Branch Conditionally)指令)指令BITBIT(Test Bit)指令)指令BITTBITT(Test Bit Specified by TREG)指令)指令BLDDBLDD(Block Move From Data Memory to Data Memory)指令)指令BLPD(Block Move From Program Memory to Data Memory)指令)指令CALA(Call Subr

25、outine at Location Specified by Accumulator)指令)指令CALL(Call Unconditionally)指令)指令CC(Call Conditionally)指令)指令 CLRC(Clear Control Bit)指令)指令CMPL (Complement Accumulator)指令)指令CMPR (Compare Auxiliary Register With AR0)指令)指令DMOV (Data Move in Data Memory)指令)指令IDLE (Idle Until Interrupt)指令)指令IN (Input Data

26、From Port)指令)指令INTR (Software Interrupt)指令)指令 LACC(Load Accumulator With Shift)指令指令LACL (Load Low Accumulator and Clear High Accumulator)指令)指令LACT (Load Accumulator With Shift Specified by TREG)指令)指令LAR (Load Auxiliary Register)指令)指令LDP (Load Data Page Pointer)指令)指令LPH (Load Product Register High Wo

27、rd)指令)指令LST (Load Status Register)指令)指令LT (Load TREG)指令)指令LTA (Load TREG and Accumulate Previous Product)指令)指令LTD (Load TREG, Accumulate Previous Product, and Move Data)指令)指令LTP (Load TREG and Store PREG in Accumulator)指令)指令 LTS(Load TREG and Subtract Previous Product)指令)指令MAC (Multiply and Accumula

28、te)指令)指令MACD (Multiply and Accumulate With Data Move)指令)指令MAR (Modify Auxiliary Register)指令)指令MPY (Multiply)指令)指令MPYA (Multiply and Accumulate Previous Product)指令)指令MPYS (Multiply and Subtract Previous Product)指令)指令MPYU (Multiply Unsigned)指令)指令NEG (Negate Accumulator)指令)指令NMI (Nonmaskable Interrupt)

29、指令)指令NOP (No Operation)指令)指令NORM (Normalize Contents of Accumulator)指令)指令OR (OR With Accumulator)指令)指令OUT (Output Data to Port)PAC (Load Accumulator With Product Register)指令)指令POP (Pop Top of Stack to Low Accumulator)指令)指令POPD (Pop Top of Stack to Data Memory)指令指令PSHD (Push Data-Memory Value Onto St

30、ack)指令)指令PUSH (Push Low Accumulator Onto Stack)RET (Return From Subroutine)指令)指令RETC (Return Conditionally)指令)指令ROL (Rotate Accumulator Left)指令)指令ROR (Rotate Accumulator Right)指令)指令RPT (Repeat Next Instruction)指令)指令SACH (Store High Accumulator With Shift)指令)指令SACL (Store Low Accumulator With Shift)指

31、令指令SAR (Store Auxiliary Register)指令)指令SBRK (Subtract Short-Immediate Value From Auxiliary Register)指令)指令SETC (Set Control Bit)指令)指令SFL (Shift Accumulator Left)指令)指令SFR (Shift Accumulator Right)指令)指令SPAC (Subtract PREG From Accumulator)指令指令SPH (Store High PREG)指令)指令SPL (Store Low PREG)指令)指令SPLK (Stor

32、e Long-Immediate Value to Data Memory)指令)指令SPM (Set PREG Output Shift Mode)指令)指令SQRA (Square Value and Accumulate Previous Product)指令)指令SQRS (Square Value and Subtract Previous Product)指令)指令 SST(Store Status Register)指令)指令SUB (Subtract From Accumulator)指令)指令SUBB (Subtract From Accumulator With Borro

33、w)指令)指令SUBC (Conditional Subtract)指令)指令SUBS (Subtract From Accumulator With Sign Extension Suppressed)指令)指令SUBT (Subtract From Accumulator With Shift Specified by TREG)指令)指令TBLR (Table Read)指令)指令TBLW (Table Write)指令)指令TRAP (Software Interrupt)指令)指令XOR (Exclusive OR With Accumulator)指令)指令ZALR (Zero L

34、ow Accumulator and Load High Accumulator With Rounding)指令)指令3.3 C2xx3.3 C2xx的伪指令的伪指令v伪指令是指示性语句,一般不产生指令代码,它在伪指令是指示性语句,一般不产生指令代码,它在汇编过程中与汇编程序汇编过程中与汇编程序“通信通信”,说明源程序的起,说明源程序的起止、分段情况、安排各类信息的存储结构以及有关止、分段情况、安排各类信息的存储结构以及有关的变量说明等的变量说明等。具体实现以下任务:。具体实现以下任务: 将数据和代码汇编进特定的段;将数据和代码汇编进特定的段; 为初始化的变量保留存储器空间;为初始化的变量保

35、留存储器空间; 展开列表的形式;展开列表的形式; 汇编条件块;汇编条件块; 定义全局变量;定义全局变量; 指定汇编器可以获得宏的定义库;指定汇编器可以获得宏的定义库; 检查符号调试信息。检查符号调试信息。3.3 C2xx3.3 C2xx的伪指令的伪指令 一、初始化段与未初始化段一、初始化段与未初始化段 开发系统默认的汇编语言以开发系统默认的汇编语言以段段(section)为基本为基本单元,一个程序包括若干段,每个段又由若干语句单元,一个程序包括若干段,每个段又由若干语句构成。构成。 段又包括:段又包括:v1)初始化段初始化段:可以是程序代码、程序中用到的常:可以是程序代码、程序中用到的常量、数

36、据表等信息。初始化段在程序下载时需要写量、数据表等信息。初始化段在程序下载时需要写入数据和代码。入数据和代码。v2)未初始化段未初始化段:用于存储变量。程序下载时无须:用于存储变量。程序下载时无须进行写代码和数据的操作,只是预留空间用于程序进行写代码和数据的操作,只是预留空间用于程序运行时存储变量值。运行时存储变量值。3.3 C2xx3.3 C2xx的伪指令的伪指令 段的名称和属性可以用户来定义,如果不定义,系统默认为段的名称和属性可以用户来定义,如果不定义,系统默认为如下三个段:如下三个段:v 1)程序代码段:)程序代码段:.text,通常用于包含可执行程序代码。,通常用于包含可执行程序代码

37、。v 2)初始化数据段:)初始化数据段:.data,通常用于包含已初始化的数据。,通常用于包含已初始化的数据。v 3)未初始化数据段:)未初始化数据段:.bss,通常用于为未初始化的变量保,通常用于为未初始化的变量保留空间。留空间。 用户可以用如下两条伪指令来定义特定段:用户可以用如下两条伪指令来定义特定段:v 1).sect:自定义初始化段,格式为:自定义初始化段,格式为: symbol .sect “section_name” 其中,其中,Symbol:符号地址;:符号地址;Section_name:段名。:段名。v 2).usect:自定义未初始化段,格式为:自定义未初始化段,格式为:

38、symbol .usect “section_name”,Length 其中,其中,Symbol:符号地址;:符号地址;Section_name:段名;:段名;length:段的长度(字数,如:段的长度(字数,如8),这个长度还可以是二维数组),这个长度还可以是二维数组(如(如12*6)。)。3.3 C2xx3.3 C2xx的伪指令的伪指令v三、常用伪指令三、常用伪指令 伪指令是用于编译的辅助指令,它们不会最终生成目标代码。伪指令是用于编译的辅助指令,它们不会最终生成目标代码。 X2XX使用了下面的常用伪指令:使用了下面的常用伪指令:语法语法说明说明.bss Symbol,size在在.bss段中,为变量保留段中,为变量保留size字节的空间。字节的空间。.data将初始化数据汇编到将初始化数据汇编到.data段。段。.text将可执行代码汇编到将可执行代码汇编到.text段。段。symbol .usect “section_name”,size定义未初始化段,定义未初始化段,size给出预留空间字数。给出预留空间字数。汇编到用户自定义的汇编到用户自定义的section_name段。段。symbol .sect “section_

温馨提示

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

评论

0/150

提交评论