计算机组成原理第3章指令集结构课件_第1页
计算机组成原理第3章指令集结构课件_第2页
计算机组成原理第3章指令集结构课件_第3页
计算机组成原理第3章指令集结构课件_第4页
计算机组成原理第3章指令集结构课件_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成原理第3章指令集结构计算机组成原理第3章指令集结构3.1 程序设计语言的级别 3.1.1 语言种类 高级语言(high-level languages) 汇编语言(assembly language) 向下兼容(backward compatible) 平台无关(platform-independent) 机器语言3.1 程序设计语言的级别 3.1.1 语言种类 高级语言(3.1.2 编译和汇编程序 1. 编译、汇编2. 编译器 源程序、源代码、目标代码 连接器、装载器3. 编译过程 同一高级语言源代码可以经过编译在不 同的微处理器和操作系统或者计算平台上运行。3.1.2 编译和汇编

2、程序 1. 编译、汇编图3.1 高级程序的编译过程 装载器包含在计算平台中 图3.1 高级程序的编译过程 装载器包含在计算平台中 4.汇编器和汇编过程 图3.2 汇编语言程序的汇编过程 每一种汇编语言对应一种微处理器,不需要针对不同平台的汇编器 。4.汇编器和汇编过程 图3.2 汇编语言程序的汇编过程 每1. 什么是指令?指令:指示计算机执行某种操作的命令。机器语言:计算机硬件实体直接表示控制信息的语言。 (计算机硬件能直接理解并执行的语言)指令集:一台计算机能执行的全部指令的集合。 (计算机程序员接触到的计算机的所有功能) 一条指令就是机器语言的一个语句,用来说明机器硬件应完成的操作。 3.

3、1.3 机器语言与指令 1. 什么是指令?3.1.3 机器语言与指令 指令集表征着计算机的基本功能和使用属性,是计算机系统设计中的核心向题。是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。 指令集表征着计算机的基本功能和使用属性,是计算机系统操作码地址码2. 指令的组成 一条指令一般应包含如下信息: (1) 操作码 (2) 操作数的地址 (3) 操作结果的地址 (4) 下一条指令地址 指令的基本格式操作码:表示指令应执行的操作和应具有的功能。地址码:表示参与操作的操作数的存放地址或操作结 果的存放地址。操作码地址码2.

4、 指令的组成操作码:表示指令应执行的操作和应3.2 机器语言指令 3.2.1 指令类型与功能 3.2.1.1 数据传送指令 将数据从一个地方移到另一个地方(实际是“拷贝”)。 例: 8086指令 MOV AL,BL ;ALBL MOV AL,Disp(BX)(SI) ;AL(BX)(SI)+Disp) IBM370机的成组取指令:成组取R1R3B2D23.2 机器语言指令 3.2.1 指令类型与功能 3.2.13.2.1.2 数据运算指令 包括算术运算指令、逻辑运算指令 、移位指令。例:8086指令系统中 ADD AL,BL ;ALAL+BL MUL BL ;AXALBL AND AL,0FE

5、H ;ALALFEH,即AL的最低位 ;清0,其余位不变。 OR AL,0F0H ;ALALF0,即AL的高4位置1, ;其余位不变 TEST AL,00000001B ; AL00000001B A00 结果为0 ;A01 结果不为03.2.1.2 数据运算指令 包括算术运算指令、逻辑运算指令 移位指令 实现对操作数的左、右移位。 移位操作指令分为算术移位、逻辑移位和 循环移位三种,可以实现对操作数左移或右移 一位或几位。 3.2.1.3 程序控制指令 控制程序流程的指令,包括:跳转指令(条件或无条件)或分支指令、子程序调用和子程序返回指令、“软中断”指令、停机指令。 移位指令3.2.1.3

6、 程序控制指令 控制程序流3.2.2 数据类型 数值数据 无符号整型数、有符号整型数、浮点数据 布尔类型 数据值常以0表示FALSE,以非0表示TRUE 字符数据 字符编码标准 (ASCII、EBCDIC、UNICODE、或别的)例:8086指令系统JMP L1 ;直接寻址的转移,无条件转移到L1处,JNZ 50H ;相对寻址的转移。若操作结果不为0,则转移到当前PC50H处。设指令地址为1000H,则当前PC1002H,转移地址为:1002H50H1052H3.2.2 数据类型 数值数据 无符号整型数、有符号3.2.3 寻址方式 寻址方式:确定操作数地址的方法。 形式地址:指令中直接给出的地

7、址。 有效地址:形式地址经一定的计算而得到的操作数的 实际地址。3.2.3 寻址方式 寻址方式:确定操作数地址的方法。3.2.3.1 直接寻址 指令字中直接给出操作数的有效地址。3.2.3.1 直接寻址 例:Intel 8086指令 MOV AX,2000H 将有效地址为2000H的内存单元的内容读入累加器AX中。 例如:LDAC 5 从内存单元5读取数据并且把数据存储在CPU的累加器中。 这种方式简单直观,便于硬件实现。但随着存储器容 量不断扩大,要寻址整个主存空间,将造成指令长度 加长。另外程序位置受到限制。 例:Intel 8086指令3.2.3.2 间接寻址指令中指定的是含有操作数地址

8、的内存单元的地址。至少要进行两次内存访问。3.2.3.2 间接寻址指令中指定的是含有操作数地址的内存单例如:LDAC 5 或 LDAC (5)OP5IR10操作数35操作数的地址105例如:LDAC 5 或 LDAC (5)OP5I 间接寻址的特点 间接寻址比直接寻址灵活,可扩大寻址范围,以短 的地址码访问大的存储空间。 采用间接寻址,当操作数地址需要改变时,可不必 修改指令,只要修改地址指示字中内容(即存放有效 地址的单元内容)即可。 间接寻址需多次访存才能取得操作数,因而降低了 指令的执行速度。 间接寻址的特点3.2.3.3 寄存器直接寻址和寄存器间接寻址 寄存器寻址 与直接和间接寻址方式

9、相似,但指定的是寄存器,而 不是内存单元。 寄存器存取信息的速度比主存快,需要的地址短,可 压缩指令长度,有利于加快指令执行速度。但寄存器 的数量有限。 寄存器直接寻址OP寄存器寻址Rn操作数Rn例如:假设寄存器R中存储了数值5,则: LDAC R ;把数值5从寄存器R中拷贝到CPU的累加器中3.2.3.3 寄存器直接寻址和寄存器间接寻址 寄存器寻例如:假设寄存器R中存储了数值5,则: LDAC (R) 或 LDAC R ;相当于 LDAC 5,从寄存器R中获取地址 寄存器间接寻址例如:假设寄存器R中存储了数值5,则: 寄存器间接寻址3.2.3.4 立即值寻址指定的操作数不是一个地址,而是确实

10、要用到的数据。例如: Intel 8086指令 MOV AX,2000H ;将数据2000H存入累加器AX中例如:LDAC #5 ;把数据值5移到累加器中OP立即寻址D 这种寻址方式在取指令的同时操作数即被取出,不必再次访问存储器,提高了指令执行速度。但由于指令字有限,使得数据范围受限。3.2.3.4 立即值寻址指定的操作数不是一个地址,而是确实3.2.3.5 隐含寻址 并不明确地指出操作数,因为总是用到特定的寄存器。例如: CLAC ;清空CPU中的累加器,即将其值置为0 常用于用堆栈存储数据的CPU中。指令中不需要指定操作数,因为它暗示操作数一定来自堆栈。 3.2.3.5 隐含寻址 并不明

11、确地指出操作数,因为总堆栈及堆栈操作 一种按“后进先出”存取顺序进行存取的存储结构 堆栈操作指令是一种特殊的数据传送指令 堆栈有两种生成方式 自底向上生成方式:栈底占最高地址,栈顶为较低地 址,压入数据时,按由高地址向低地址顺序进行,弹出 数据(即取出数据)时,由低地址向高地址顺序进行。 自顶向下生成方式:与自底向上生成方式顺序相反。堆栈及堆栈操作计算机组成原理第3章指令集结构自底向上生成堆栈的工作过程自底向上生成堆栈的工作过程 堆栈操作有两种 压入(进栈)指令:把指定的操作数送入栈顶。 SPSP减量,(SP)数据 弹出(退栈、出栈)指令:从栈顶弹出数据,送到 指令指定的目的地址中。 目的(S

12、P),SPSP增量计算机组成原理第3章指令集结构例:8086的指令系统中 进栈指令:PUSH AX SPSP1,(SP)AH,SPSP1,(SP)AL 出栈指令:POP AX AL(SP),SPSP1,AH(SP),SPSP1低地址ALAH高地址SPSP-1SP-1低地址ALAH高地址SP+1SP+1SPALAH例:8086的指令系统中低地址ALAH高地址SPSP-1SP3.2.3.6 相对寻址 将程序计数器 PC 的当前内容与指令中给出的形式地址相加形成操作数的有效地址。 有效地址E(PC)Disp3.2.3.6 相对寻址 程序计数器 PC的内容一般为现行指令的下一条指令的 地址。 形式地址

13、是操作数地址相对于PC当前内容的一个相对 位移量(Disp),位移量可正可负,一般用补码表示。 在相对寻址中,只要保持位移量不变,就可实现指令 带着数据在存储器中浮动,有利于实现程序再定位。KOP 相对寻址 5K+1K+2K+6操作数MOP 相对寻址 5M+1M+2M+6操作数 程序计数器 PC的内容一般为现行指令的下一条指令的KOP 例:8086指令 JNC 03H 的功能为,如果进位为0,则转移到目标地址为 (PC)03H处进行执行。设指令为双字节指令,本条指令地址为1000H。本条指令取指后,PC1002H转移目标地址为 1002H0003H1005H若指令为JNC 0FDH 则转移目标

14、地址为1002HFFFDH0FFFH0FFDH0FFEH0FFFH1000HJNC1001H03H1002H1003H1004H1005HDFDHD03H 例:8086指令 JNC 03H 的功能为,如果进位3.2.3.7 变址寻址方式和基址寻址1.变址寻址方式 变址寻址方式与相对寻址方式类似,但它是将指令提供的地址与变址寄存器中而不是程序计数器中的内容相加。 3.2.3.7 变址寻址方式和基址寻址1.变址寻址方式例如: Intel 8086指令 MOV AL,BX+4 设 BX2000H,BX+42004H (2004H)82H,则 AL82H例如: LDAC 5(X) ;变址寄存器X:数值

15、10,则 51015 ;读取15号单元中的数据并且把它存储在累加器中。 例如: Intel 8086指令 变址寻址可用于数组、向量、字符串等数据的处理 例: Intel 8086指令 LODS ;AL(SI),SISI1SIAAa0A1a1A2a2+1 变址寻址可用于数组、向量、字符串等数据的处理SIAAa02基址寻址 操作数的有效地址等于指令中的形式地址与基址 寄存器中的内容之和。 基址寄存器可以是一个专用的寄存器,也可以是 由指令指定的一个通用寄存器。2基址寻址 基址寻址主要用于将用户程序的逻辑地址(用户编写 程序时所使用的地址)转换成主存的物理地址(程序 在主存中的实际地址)。 基址寻址

16、主要用于将用户程序的逻辑地址(用户编写 基址寻址与变址寻址在形式上以及有效地址的计算 方法上都是相似的,但它们的应用场合是不同的。 基址寻址是面向系统的,主要用于逻辑地址到 物理地址的变换,用以解决程序定位问题。基址寄 存器由系统程序使用,对用户是透明的。 变址寻址是面向用户的,主要用于访问数组、 向量、字符串等成批数据,用以解决程序的循环控 制问题。 基址寻址与变址寻址在形式上以及有效地址的计算3.2.4 指令格式操作码地址码指令的基本格式:指令格式的设计包含两个方面: 1. 确定指令的长度; 2. 划分指令的字段,定义各字段的位数、含义 。3.2.4 指令格式操作码地址码指令的基本格式:指

17、令格式的设一、指令长度 指令字长度:一个指令字所包含的二进制信息的位数。 定长指令:指令系统中所有指令的长度都是一样的。 可变长指令:各指令的长度可以不同。 指令长度与机器字长二.指令的地址码 考虑的问题:需要多少地址信息及如何给出地址。一、指令长度1. 零地址指令 格式: (1) 无需任何操作数, 如空操作,停机等指令。 (2) 所需操作数是隐含指定的,如堆栈运算指令。2. 一地址指令 格式: 意义: (1) A OP (A) (2) AC (AC) OP (A)OPOPA指令短,节省空间,执行快,常用于微、小型机中。1. 零地址指令OPOPA指令短,节省空间,执行快,常用于微3. 二地址指

18、令 格式: 意义: A1 (A1) OP (A2) 最常用的指令格式,适用于中、小、微型机。OPA1A2 二地址指令的几种形式 存储器存储器型(SS型)指令 寄存器寄存器型(RR型)指令 寄存器存储器型(RS型)指令OPR1R2OPRnA3. 二地址指令OPA1A2 二地址指令的几种形式OPR14. 三地址指令 格式: 意义: A3 (A1) OP (A2) 常用于大、中型机中。OPA1A2A35. 多地址指令 4. 三地址指令OPA1A2A35. 多地址指令 考虑一个简单的例子:ABC 一个操作: 加法 三个操作数: 两个源操作数 B、C 一个目的操作数 A 假定微处理器可以执行16种不同的

19、操作。 需要4位来代表其中的操作(因为2416) (假设位模式1010 加法) 假定仅有4种可能的操作数A,B,C和D。 用两位来表示每一种操作数: 00A ,01B ,10C ,11D 考虑一个简单的例子:ABC图3.4 采用(a)三操作数,(b)二操作数,(c)单操作数,(d)0操作数的指令格式和计算ABC的汇编语言程序以及机器代码。 微处理器可以设计成能运行具有3、2、1或0个操作数的指令。 图3.4 采用(a)三操作数,(b)二操作数,(c)单操作数二、指令的操作码 指令系统中的每一条指令都有唯一确定的操作码。 操作码位数取决于机器指令系统的规模。 1.固定长度操作码 操作码的长度固定

20、,且集中放在指令字的一 个字段中,其余部分全部用于地址码。 此方式有利于简化硬件设计和减少指令译码 时间,用于字长较长的大、中型及超级小型机中。 二、指令的操作码2.可变长度操作码 操作码的长度允许有几种不同的选择,对地址 数少的指令允许操作码长些,对地址数多的指令, 则操作码就短些。 若指令长度一定,则操作码字段与地址码字 段之间存在平衡问题一般均采用 “扩展操作码” 的 方法。2.可变长度操作码 扩展操作码 目的:在满足需要的前提下,有效地缩短指令字长。 例:设某机指令字长为16位,若固定OP为4位,三个地址 码,每个4位,其格式为:OPA1A2A3若采用固定长度操作码,则最多只允许有16

21、种三地址指令。0 0 0 01 1 1 1 扩展操作码OPA1A2A3若采用固定长度操作码,则最多15/15/15扩展法15/15/15扩展法 15条三地址指令、14条二地址指令、31条一地址指 令、16条0地址指令,共76条指令,其扩展方法如下: 15条三地址指令、14条二地址指令、31条一地址指0 0 0 01 1 1 00 0 0 115条三地址指令1 1 1 11 1 1 11 1 0 114条二地址指令0 0 0 01 1 1 11 1 1 11 1 1 031条一地址指令1 1 1 00 0 0 01 1 1 11 1 1 11 1 1 116条0地址指令1 1 1 11 1 1

22、10 0 0 01 1 1 11 1 1 11 1 1 10 0 0 01 1 1 00 0Pentium 的指令格式: 指令长度是可变的,从1个字节到12个字节 。MOD字段与R/M字段:5位,表示8个寄存器和24种寻址方法 Pentium 的指令格式:MOD字段与R/M字段:5位,计算机组成原理第3章指令集结构3.3 指令集结构设计 一、指令系统的基本要求1. 完备性 任何运算都可以用指令编程实现。即要求指令系 统的指令丰富、功能齐全、使用方便,应具有所有基 本指令。2. 有效性 用指令系统中的指令编写的程序能高效率运行,占 用空间小、执行速度快。3. 规整性 3.3 指令集结构设计 一、

23、指令系统的基本要求 指令系统具有对称性、匀齐性,指令与数据格式的一致性。 对称性:所有寄存器和存储单元均同等对待,所有 指令可以使用所有寻址方式,减少特殊操 作和例外情况。 匀齐性:一种操作可支持各种数据类型。 指令与数据格式的一致性:指令长度与数据长度有 一定的关系,以便于存取和处理。4. 兼容性 指令系统具有对称性、匀齐性,指令与数据格式的一致性。二、指令系统的两种设计风格 1. 复杂指令系统计算机 CISC 靠增强指令的功能,增加指令系统的复杂程 度来提高计算机系统的性能。 特点: (1) 指令系统复杂庞大,指令数目一般多达 200300条。 (2) 指令格式多,指令字长不固定,使用多种

24、不 同的寻址方式。 (3) 可访存指令不受限制。 (4) 各种指令的执行时间和使用频率相差很大。 (5) 大多数采用微程序控制器。二、指令系统的两种设计风格2. 精简指令系统计算机RISC 靠精简指令系统,简化指令功能及优化的编译程序 来提高计算机系统的性能。 特点: (1) 选取使用频率高的简单指令以及很有用但又不复杂 的指令组成指令系统。 (2) 指令数少,指令长度一致,指令格式少,寻址方式 少,指令总数大都不超过100条。 (3) 以寄存器 寄存器方式工作,只有取数/存数 (LOAD/STORE)指令访问存储器,其余指令的操作都 在寄存器之间进行。 (4) 采用指令流水线调度,使大部分指

25、令在一个机器周 期内完成。2. 精简指令系统计算机RISC (5) 使用较多的通用寄存器以减少访存。(6) 以组合电路控制为主,不用或少用微程序控制。(7) 采用优化编译技术,力求高效率支持高级语言的 实现。(5) 使用较多的通用寄存器以减少访存。3.4 相对简单的指令集结构存储器模型:该微处理器可以访问64K(216)字节 的存储器(每字节8位)或者64K8的 存储器。从外部设备输入数据和输出数 据到外部设备,都可以被看作是访问内 存。三个寄存器:累加器(AC)、寄存器R、1位零标志Z。16条指令,每一条都是8位指令码,见表3.1。 3.4 相对简单的指令集结构存储器模型:该微处理器可以访问

26、6表3.1 相对简单CPU的指令集 表3.1 相对简单CPU的指令集 LDAC、STAC、JUMP、JMPZ和JPNZ指令都需要16位的存储地址。这些指令在存储器中每个都需要3字节。第一个字节包含指令的操作码,另外两字节对应地址。 3字节格式 1字节格式 相对简单CPU的指令格式: LDAC、STAC、JUMP、JMPZ和JPNZ指令例如:25:JUMP 1234H该指令以如下形式存储在存储器中: 25:0000 0101(JUMP) 26:0011 0100(34H) 27:0001 0010(12H)注意:第二字节低8位,第三字节高8位例如:25:JUMP 1234H注意:第二字节低8位,

27、第三字指令集结构的用法举例: 用相对简单CPU编程计算12n 。 则其高级语言的代码片断如下: 可以把数值n存储在标明为n的存储单元中,结果存在标明为total的内存单元处,内存单元i用于存储求和的次数。确定运算步骤如下: total 0; FOR i1 TO n DO totaltotali; 1:total0,i0 2:ii1 3:totaltotali 4:IF in THEN GOTO 2指令集结构的用法举例: 可以把数值n存储在标明为n的存实现这一算法的相对简单CPU的代码如下: CLAC STAC total STAC i Loop: LDAC i INAC STAC i MVAC

28、 LDAC total ADD STAC total MVAC LDAC n SUB JPNZ Looptotal0,i0ii1totaltotaliIF in THEN GOTO Loop实现这一算法的相对简单CPU的代码如下:total0,i下表显示了当n5时代码的运行过程:表3.2 循环求和程序的执行步骤 下表显示了当n5时代码的运行过程:表3.2 循环求和程序的怎样看待这个指令集结构? 它满足了以教学为目的的设计目标。当我们在第6和7章中设计这种CPU时我们就会看到,其复杂度足以阐明很多CPU的设计原则,却又没有掉进自身复杂度的陷阱中。 对于简单的应用程序来说,指令集完整。如果一个应用

29、程序需要使用浮点型数据,它就不是十分完整。对于通用计算机(例如个人计算机),该指令集显然是不够的。 该指令集是相当正交的。只是多了OR指令,但有时CPU的指令集不是完全正交更好一些。 寄存器组是它最大的弱点。寄存器的缺乏导致执行任务较慢,并且降低了性能。 怎样看待这个指令集结构? 它满足了以教学为目的的设计3.5 实例:8085微处理器指令集结构3.5.1 8085微处理器的寄存器组 通用数据寄存器: 累加寄存器A - 总是接收一个8位的算术或逻辑指令的结果;也为所有采用二操作数的指令提供一个操作数。 六个通用寄存器 - 命名为B,C,D,E,H和L ,可成对访问:B和C,D和E,H和L 。寄

30、存器对HL常用来指向内存单元。 16位的堆栈指针寄存器SP:包含堆栈顶部的地址。 3.5 实例:8085微处理器指令集结构3.5.1 80855个标志,共同称为标志寄存器: 符号标志S:表明算术或逻辑指令计算出的结果的符号。其中,值1表示负数;值0表示正数(或零)。 零标志Z:如果算术或逻辑运算指令产生的结果为0,则将Z置为1;否则Z为0。 奇偶标志P:如果算术或逻辑运算结果中有偶数个1,则将P置为1;否则P为0。 进位标志CY:当算术运算产生进位时才去设置它。 5个标志,共同称为标志寄存器: 符号标志S:表明算术或逻辑 辅助进位标志AC:与进位标志类似。它不指明进位值,但指出从结果的低四位向

31、高四位传递了进位。 例如,加法0000 11110000 10000001 0111中断标志寄存器IM:用于允许和禁止中断而且检查待处理的中断。程序员可以读取并且设置该寄存器中的值来处理中断。 例如,加法1111 00001000 00001 0111 0000,对两个8位值相加但产生了9位结果。最左边的1被存储在CY中;如果加法不产生进位1,则CY中会存储0。 辅助进位标志AC:与进位标志类似。它不指明进位值,但指出3.5.2 8085微处理器指令集 8085指令集总共包含了74条指令。 可分为三个部分:数据传送指令、数据运算指令和程序控制指令。 采用如下记号描述: r,r1,r2:表示任何

32、一个8位寄存器A,B,C,D,E,H,或者L。 M:表示内存单元。MHL表明该内存单元的地址存在寄存器对HL中。 rp:表示寄存器对BC,DE,HL,或者堆栈指针SP。 :一个16位地址或者数据。 n:是一个存储在内存中且紧跟操作码后的8位地址或者数据值。 cond:条件指令的一个条件。值为:NZ、Z、P、N、PO、PE、NC、C。3.5.2 8085微处理器指令集 8085指令集总共除了POP PSW指令外,其它指令都不会修改标志的值。 (PSW:处理器状态字(保存累加器和标志器中的内容 ) 表3.3 8085微处理器的数据传送指令 (立即寻址)(直接寻址)除了POP PSW指令外,其它指令

33、都不会修改标志的值。表3. 指令的通用格式。一些指令有指定寄存器的字段,而另一些指令这些部分却是固定的。 图3.6 8085的指令格式一字节二字节 指令的通用格式。一些指令有指定寄存器的字段,而另一些数据运算指令大多数会影响表中的标志。 表3.4 8085微处理器的数据运算指令 数据运算指令大多数会影响表中的标志。 表3.4 8085微处 13条程序控制指令。DI,EI,RIM和SIM包含在此因为它们可以处理中断,而中断最终又会影响程序控制。这些指令都不修改标志。 表3.5 8085微处理器的程序控制指令 13条程序控制指令。DI,EI,RIM和SIM包含在此3.5.3 一个简单的8085程序 计算和12n,并且把

温馨提示

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

评论

0/150

提交评论