微机原理与汇编语言 第7章 输入输出与中断_第1页
微机原理与汇编语言 第7章 输入输出与中断_第2页
微机原理与汇编语言 第7章 输入输出与中断_第3页
微机原理与汇编语言 第7章 输入输出与中断_第4页
微机原理与汇编语言 第7章 输入输出与中断_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

1、西安邮电学院计算机系 系统结构教研室 2009.8,教材及参考书 微型计算机原理王忠民 王钰 王晓婕 编著 微型计算机原理学习与实验指导 王钰 王劲松 刑高峰 编著,微机原理与汇编语言,第7章 输入/输出与中断,主要内容: I/O接口概述 CPU与外设之间数据传送的方式 中断技术 80868088的中断系统 可编程中断控制器Intal 8529A,7.1 I/O接口概述,7.1.1 I/O接口的作用 1. I/O接口 微处理器与存储器构成了微型计算机系统的主机部分,为了使微型计算机工作,还必须配上各种外部设备,简称外设,将外设中主要用来实现数据的输入输出、实现人机联系的设备称为输入输出设备,即

2、I/O设备。 当要把外设与微处理器相连时,往往需要配上相应的电路。通常把介于主机和外设之间的一种缓冲电路称为I/O接口电路,简称I/O接口。,图7.1 主机与外设的连接,CPU,I/O,接口,外设,2. I/O接口的作用 接口是主机和外设之间交换信息的桥梁。那么,主机与外设交换信息时为什么要通过接口电路呢?这主要有以下三个原因。 总线隔离作用 数据总线是外设及存储器传送信息的公共线路,任何外设或存储器都不允许长期占用数据总线,而仅允许被选中的外设或存储器在读写总线周期中享用数据总线。 因此,大多数外设不能直接和CPU的数据总线相连,要借助与接口电路使外设与总线隔离,起缓冲、暂存数据的作用,使主

3、机和外设协调一致的工作。, 速度匹配作用 接口电路可以提供握手信息给微处理器和外设,协调主机和外设间数据传送速度不匹配的矛盾。 大多数外设输入输出信息的速度远远低于微处理器,为同步外设与主机的工作,在输入输出控制中,常需要接口电路提供外设的工作状态给微处理器,同时记忆主机下达给外设的命令,从而使主机与外设之间协调一致地工作。, 信号变换作用 外设的信息格式与微处理器不一致时,需要接口电路进行信息的变换。 从本质上说,微处理器的信息格式是并行的数字信号,而外设由于其功能的多样性,信息格式也是多种多样的。这就需要进行: 电平变换 并串变换 数模变换,7.1.2 CPU与外设交换的信息 主机与I/O

4、设备之间交换的信息可分为数据信息、状态信息和控制信息三种。 (1) 数据信息:它是CPU与外设之间传送的主要信息,可分为数字量、模拟量和开关量三种形式。 (2) 状态信息:是外设通过接口送往CPU的信息,作为外设与CPU之间交换数据的联络信号,反映了当前外设所处的工作状态。 (3) 控制信息:是CPU通过接口传送给外设的信息,用来设置外设(包括接口)的工作方式、控制外设的工作等。,DB,CPU,外设,图7.2 CPU与外设交换的信息,I/O接口,数据信息,状态信息,控制信息,7.1.3 I/O接口的基本结构(接口与端口) 接口(Interface):介与主机和外设之间的缓冲电路。 端口(Por

5、t):接口中可以进行寻址读写的寄存器,简称口。 一个接口往往含有几个端口,CPU通过输入输出指令向这些端口取或存信息。端口主要有三类:一类为状态口,一类为命令口(或控制口),一类是数据口。 CPU通过输入指令从状态口获取外设的状态信息,通过输出指令从命令口发出控制命令,控制外设的工作。通过输入输出指令可以从数据端口与外设交换数据。因此说,计算机主机与外设之间交换信息都是通过接口中的端口来实现的。,CB,AB,DB,CPU,数据端口,状态端口,I/O,设,备,译,码,控制端口,图7.3 I/O接口的基本结构,I/O接口,7.1.4 I/O端口的编址 微机系统中,I/O端口的编址方式分为统一编址和

6、独立编址两大类。在Intel 80 x86系列微机中,采用独立编址方式。 1. I/O端口的统一编址方式 统一编址又称存储器映象编址(Memory-mapping Address Coding),就是将I/O端口看成是存储器空间的一个组成部分,按照存储器单元的编址方法统一编排地址号,每个I/O端口占用一个地址。这样,CPU对I/O端口的输入输出操作如同对存储单元的读写操作一样,对存储器的各种寻址方式也同样适用于I/O端口。,图7.4 I/O端口与内存单元统一编址,存储器,I/O,端口,00000H,XXXXXH,FFFFFH,整,个,地,址,空,间,(XXXXX+1)H,I/O端口,存储器空间

7、,I/O端口空间,2. I/O端口的独立编址方式(Isolated I/O Address Coding) 在独立编址方式下,I/O地址空间完全独立于存储器空间。在I/O地址空间中,每个端口有一个唯一的端口地址,CPU有专用的I/O指令,用于CPU与I/O端口之间的数据传输。Intel 80 x86系列CPU中设有IN、OUT指令作为专用的I/O指令和寻址方式。在直接寻址方式下,CPU只利用地址总线的低8位输出地址信息,所以只能寻址I/O地址空间的00HFFH地址,而在间接寻址方式下,CPU利用地址总线的低16位输出地址信息,可以寻址的I/O空间多达64K个端口。,00000H,FFFFFH,

8、存储器,I/O,FFFFH,0000H,图7.5 I/O端口与内存单元独立编址,7.2 CPU与外设之间数据传送的方法 各种外设的工作速度相差很大,有些相当高,如磁盘机的传送速度达0.26Mbs,而有些外设的工作速度却相当低,如键盘是用于人工输入数据的,输入1个字符通常需几十毫秒。 这里所说的输入输出方法就是指CPU通过接口与外设之间数据传送的方式,一般有三种:程序控制的输入输出方式、程序中断的输入输出方式和直接存储器存取方式。,7.2.1 程序控制的输入输出方式 该方式完全通过执行程序来控制CPU与外设之间的数据交换,IO指令序列事先就排在程序中所需要的位置。这种传送方式又分为无条件传送和有

9、条件传送。 1. 无条件传送:程序中I/O指令的执行不需要事先测试外设的状态,而是直接执行。这种传送方式只适用于对简单外设的操作,这些外设始终处于就绪状态,典型的输入是开关,典型的输出是LED。,(a),来自外设,的数据,数据总线,(DB),地址,译码器,地址总线,(AB),1,三态,缓冲器,至CPU,(b),至外设,数据总线,(DB),地址总线,(AB),锁存器,来自CPU的数据,地址,译码器,1,图7.6 无条件传送方式 (a) 无条件传送数据输入 (b) 无条件传送数据输出,2. 有条件传送:也称查询方式传送,程序中I/O指令的执行需要事先测试外设的状态,待外设准备就绪后,执行I/O指令

10、进行数据传送,否则循环测试等待。例如,CPU向打印机送打印字符,就需要测试打印接口电路的BUSY信号。,图7.7 查询传送方式的流程图,选,通,状态信息,READY,数据总线DB,至CPU,地址,译码器,&,5 V,锁,存,器,数据,缓冲器,三态,缓冲器,Q,D,输,入,设,备,数据,状态端口,译码输出,数据端口,译码输出,&,地址总线AB,图7.8 查询式输入的接口电路,去CPU,DB,输,出,设,备,&,数据,地址,译码器,数据端口,译码输出,地址总线,DB,状态端口,译码输出,状态,寄存器,BUSY,5 V,锁,存,器,Q,D,数据总线DB,来自CPU,选通信号,&,图7.9 查询式输出

11、的接口电路,7.2.2 程序中断的输入输出方式 该方式借助于CPU响应外部中断请求的能力,实现输入输出的控制。简单地说,就是外设将准备就绪的信号转换成有效的中断请求信号通知给CPU,CPU响应中断后,在中断服务子程序中执行I/O指令,进行数据传送。 查询传送方式是由CPU来查询外设的状态,CPU处于主动地位,而外设处于被动地位。中断传送方式则是由外设主动向CPU发出请求,等候CPU处理,在没有发出请求时,CPU和外设都可以独立进行各自的工作。,7.2.3 直接存储器存取方式(DMA:Direct Memory Access) 在DMA方式下,高速外部设备利用专用的接口电路直接和存储器进行高速数

12、据交换,CPU暂停指令的执行并让出总线控制权。 与前两种方式不同,在DMA方式下,数据的传送不依赖CPU执行IO指令,而是直接由专用的接口电路DMA控制器来控制外设和内存之间的数据传送。,7.3 中断技术 7.3.1. 中断的基本概念 1. 中断的定义 计算机在执行正常程序过程中,当出现某种异常事件或某种外部请求时,处理器就暂停执行当前的程序,而转去执行对异常事件或某种外部请求的处理操作。当处理完毕后,CPU再返回到被暂停执行的程序,继续执行,这个过程称为程序中断。,图7.10 中断过程示意图,2. 中断系统 为实现中断功能而设置的硬件电路和与之相应的软件,称为中断系统。 3. 中断源 所谓中

13、断源,是指引起中断的原因或发出中断请求的来源。中断源可分为硬件中断源和软件中断源两类。 4. 中断处理过程 对于一个中断源的中断处理过程应包括中断请求、中断响应、保护断点、中断处理和中断返回等五个过程。, 中断请求:是中断源向CPU发出的请求中断的要求。软件中断源是在CPU内部有中断指令或程序出错直接发中断;而硬件中断源必须通过专门的电路将中断请求信号送给CPU,CPU也有专门的引脚接收中断请求信号。 例如,8086/8088 CPU用INTR引脚(可屏蔽中断请求)和NMI引脚(非屏蔽中断请求)接收硬件中断请求信号。一般外设发出的都是可屏蔽中断请求。,&,输入,锁存器,数据总线,中断请求,D,

14、端口,译码,地址总线,Q,中断屏蔽,INT,5 V,输入,设备,三态,缓冲器,Q,&,图7.11 中断请求与屏蔽接口电路, 中断响应:是指当计算机系统接收到中断请求后应作出的反应。中断响应应具备两个条件:一是中断允许触发器的状态为1(即开中断),二是CPU在执行完现行指令之后。,&,R,1,允许中断,开中断指令,关中断指令,CPU,CPU响应中断信号,INTR,RESET,S,Q,图7.12 CPU内部设置中断允许触发器, 保护断点:所谓断点是指处理完中断后返回主程序时执行的第一条指令的逻辑地址(即当时的CS和IP的值)。因此,CPU一旦响应中断,需要对其正在执行程序的断点信息进行保护(即将C

15、S和IP的值压入堆栈),以便在中断处理结束后仍能回到该断点处继续执行。 中断处理:是指执行完成中断服务功能的处理程序。它主要包括保护现场(将中断服务程序中涉及到的寄存器内容压入堆栈)、中断服务(是中断服务的核心,可完成中断服务的功能)和恢复现场(将原先压入堆栈的寄存器内容再弹回到CPU相应的寄存器中)等。, 中断返回:是指执行完中断服务程序后返回到原先被中断的程序。它是保护断点的逆过程,即将原先压入堆栈的断点值弹回到CS和IP中,继续执行程序。,7.3.2 中断优先级和中断的嵌套 1中断优先级 中断请求是随机发生的,当系统具有多个中断源时,有时会同时出现多个中断请求,CPU只能按一定的次序予以

16、响应和处理,这个响应的次序称为中断优先级。对于不同级别的中断请求,一般的处理原则是: (1) 不同按高低。不同优先级的多个中断源同时发出中断请求,按优先级由高到低依次处理。,(2) 低级让高级。低优先级中断正在处理,出现高优先级请求,应转去处理高优先级请求,服务结束后再返回原优先级较低的中断服务程序继续执行。 (3) 高级封低级。高优先级中断正在处理,出现低优先级请求,可暂不响应。 (4) 同级等处理。中断处理时,出现同级别请求,应在当前中断处理结束以后再处理新的请求。,中断优先级 多个中断请求急, 要分中断优先级。 不同中断按高低, 同级中断等处理, 低级中断让高级, 高级中断封低级。 屏蔽

17、中断要允许, 等到最后一个T4。,2中断优先级的确定 在微机系统中通常用三种方法来确定中断源的优先级别,即,软件查询法 硬件排队电路法 专用中断控制芯片法,1) 软件查询法 软件查询法需要简单的硬件电路支持。以8个中断源为例,其硬件电路如图7.13所示,将8个外设的中断请求组合起来作为一个端口(中断寄存器),并将各个外设的中断请求信号相或,产生一个总的INT信号。,1,CPU,D,7,INTR,INT,1,中,断,寄,存,器,INT,D,0,INT,2,INT,8,图7.13 软件查询法的硬件电路,任一个外设有中断请求,该电路都可向CPU发中断请求信号(INT),CPU响应后进入中断处理程序,

18、在中断处理程序的开始先把中断寄存器的内容读入CPU,再对寄存器内容进行逐位查询,查到某位状态为1,表示与该位相连的外设有中断请求,于是转到与其相应的中断服务程序,同时该外设撤消其中断请求信号。软件查询方式的流程图如图7.14所示。,对1号中断源服务,N,N,N,Y,Y,Y,断点保护,INT,1,?,INT,2,?,对2号中断源服务,对8号中断源服务,INT,8,?,图7.14 软件查询方式的流程图,对于图7.13所示电路,设中断寄存器端口号为n,则软件查询的程序段如下: IN AL,n TEST AL,80H ;1号外设有请求? JNZ II1 ;有,转1号中断服务程序 TEST AL,40H

19、 ;2号外设有请求? JNZ II2 ;有,转2号中断服务程序 TEST AL,01H ;8号外设有请求? JNZ II2 ;有,转2号中断服务程序,可以看出,采用软件查询方式,各中断源的优先级是由查询顺序决定的,最先查询的设备,其优先级最高,最后查询的设备,其优先级最低。 采用软件查询方式的优点是节省硬件。但是,由于CPU每次响应中断时都要对各中断源进行逐一查询,所以其响应速度较慢。对于优先级较低的中断源来说,该缺点更为明显。,2) 硬件排队电路 采用硬件排队电路法,各个外设的优先级与其接口在排队电路中的位置有关。常用的硬件优先权排队电路有链式优先权排队电路、硬件优先级编码加比较器的排队电路

20、等。 图7.15给出了一个链式优先级排队电路。,图7.15 链式中断优先级电路,图7.15中,当响应信号沿链式电路进行传递时,最靠近CPU并发出中断请求的接口将首先拦截住响应信号,CPU进入相应外设的中断处理程序,在服务完成后,该外设撤消其中断请求,解除对下一级外设的封锁。 例如,当CPU收到中断请求信号并响应中断时,若1号外设有中断请求(高电平),则立即向1号外设接口发出应答信号,同时封锁2号、3号等外设的中断请求,转去对1号外设服务。,若1号外设没有中断请求,而2号外设有中断请求时,响应信号便传递给2号外设,向2号外设接口发出应答信号,同时封锁3号外设的中断请求。 若CPU在为2号外设进行

21、中断服务时1号外设发出了中断请求,CPU会挂起对2号外设的服务转去对1号外设服务,1号外设处理结束后,再继续为2号外设服务。,可以看出,链式优先级排队电路不仅能够确定各中断源的优先级,而且在相应软件的配合下,可实现高级别的请求中断低级别的服务(即中断的嵌套),上述两种方法虽然可以解决中断优先级控制问题,但实现起来在硬件和软件上都要做大量的工作,十分麻烦。目前,最方便的办法就是利用厂家提供的可编程中断控制器,这样的器件在各种微机中得到普遍应用。本章后面将介绍广泛应用于80 x86微机系统中的专用可编程中断控制芯片8259A。,3中断嵌套 CPU在执行低级别中断服务程序时,又收到较高级别的中断请求

22、,CPU暂停执行低级别中断服务程序,转去处理这个高级别的中断,处理完后再返回低级别中断服务程序,这个过程称为中断嵌套,如图7.16所示。,高级中断请求,低级中断请求,STI,STI,主程序,低级中断服务程序,高级中断服务程序,图7.16 中断嵌套示意图,RETI,RETI,7.4 8086/8088中断系统,7.4.1 8086/8088的中断源类型 8086/8088 CPU可以处理256种不同类型的中断,每一种中断都给定一个编号(0255),称为中断类型号,CPU根据中断类型号来识别不同的中断源。8086/8088的中断源如图7.17所示。从图中可以看出8086/8088的中断源可分为两大

23、类:一类来自CPU的外部,由外设的请求引起,称为硬件中断(又称外部中断);另一类来自CPU的内部,由执行指令时引起,称为软件中断(又称内部中断)。,NMI(17号引脚),中 断 逻 辑,非屏蔽中断请求,INT 2,硬件(外部)中断,软件(内部)中断,可屏蔽中断请求,中断类型号32255,INTR(18号引脚),中断指令,INT n,N32255,溢出中断,INTO,INT 4,断点,中断,INT 3,单步中断,(TF1),INT 1,除法,错误,INT 0,图7.17 8086/8088中断源,1软件中断(内部中断) 8086/8088的软件中断主要有三类共五种。 (1) 处理运算过程中某些错

24、误的中断 执行程序时,为及时处理运算中的某些错误,CPU以中断方式中止正在运行的程序,提醒程序员改错。 除法错中断(中断类型号为0)。在8086 /8088 CPU执行除法指令(DIV/IDIV)时,若发现除数为0,或所得的商超过了CPU中有关寄存器所能表示的最大值,则立即产生一个类型号为0的内部中断,CPU转去执行除法错中断处理程序。, 溢出中断INTO(中断类型号为4)。CPU进行带符号数的算术运算时,若发生了溢出,则标志位OF=1,若此时执行INTO指令,会产生溢出中断,打印出一个错误信息,结束时不返回,而把控制权交给操作系统。若OF=0,则INTO不产生中断,CPU继续执行下一条指令。

25、INTO指令通常安排在算术指令之后,以便在溢出时能及时处理。例如: ADD AX,BX INTO ;测试加法的溢出,(2) 为调试程序设置的中断 单步中断(中断类型号为1)。当TF=1时,每执行一条指令,CPU会自动产生一个单步中断。单步中断可一条一条指令地跟踪程序流程,观察各个寄存器及存储单元内容的变化,帮助分析错误原因。单步中断又称为陷阱中断,主要用于程序调试。 断点中断(中断类型号为3)。调试程序时可以在一些关键性的地方设置断点,它相当于把一条INT 3指令插入到程序中,CPU每执行到断点处,INT 3指令便产生一个中断,使CPU转向相应的中断服务程序。,(3) 中断指令INT n引起的

26、中断(中断类型号为n) 程序设计时,可以用INT n指令来产生软件中断,中断指令的操作数n给出了中断类型号,CPU执行INT n 指令后,会立即产生一个类型号为n的中断,转入相应的中断处理程序来完成中断功能。,2硬件中断(外部中断) 8086/8088 CPU有两条外部中断请求线NMI (非屏蔽中断)和INTR(可屏蔽中断)。 (1) 非屏蔽中断NMI(中断类型号为2) 整个系统只有一个非屏蔽中断,它不受 IF标志位的屏蔽。出现在NMI上的请求信号是上升沿触发的,一旦出现,CPU将予以响应。非屏蔽中断一般用于紧急故障处理。,(2) 可屏蔽中断INTR (中断类型32255) 可屏蔽中断请求信号

27、从INTR引脚送往CPU,高电平有效,受IF标志位屏蔽,IF0时,对于所有从INTR引脚进入的中断请求,CPU均不予响应;另外,也可以在CPU外部的中断控制器(8259A)中以及各个I/O接口电路中对某一级中断或某个中断源单独进行屏蔽。,当外设的中断请求未被屏蔽,且 IF=1,则 CPU 在当前指令周期的最后一个T状态去采样INTR引脚,若有效,CPU予以响应。CPU将执行两个连续的中断响应周期,送出两个中断响应信号 INTA。第一个响应周期,CPU将地址及数据总线置高阻;在第二个响应周期,外设向数据总线输送一个字节的中断类型号,CPU 读入后,就可在中断向量表中找到该类型号的中断服务程序的入

28、口地址,转入中断处理。,中断响应周期的时序,AD7AD0,ALE,INTA,CLK,中断类型,T1,T2,T3,T4,TI,T1,T2,T3,T4,TI,TI,空闲状态TI在8086系统中一般为三个,而在8088系统中则没有。,值得注意的是,对于非屏蔽中断和软件中断,其中断类型号由CPU 内部自动提供,不需去执行中断响应周期读取中断类型号。,38086/8088中断源的优先级 8086/8088中断源的优先级顺序由高到低依次为:软件中断(除单步中断外)、非屏蔽中断、可屏蔽中断、单步中断。 在PC机系统中,外设的中断请求通过中断控制器8259A连接到CPU的INTR引脚,外设中断源的优先级别由8

29、259A进行管理。,7.4.2 中断向量表 中断向量表是存放中断向量的一个特定的内存区域。所谓中断向量,就是中断服务子程序的入口地址。对于8086/8088系统,所有中断服务子程序的入口地址都存放在中断向量表中。 8086/8088可以处理256种中断,每种中断对应一个中断类型号,每个中断类型号与一个中断服务程序的入口地址相对应。,每个中断服务程序的入口地址占4 个存储单元,其中低地址的两个单元存放中断服务程序入口地址的偏移量(IP);高地址的两个单元存放中断服务程序入口地址的段地址(CS)。 256个中断向量要占 25641024个单元,即中断向量表长度为1K个单元。8086/8088系统的

30、中断向量表位于内存的前 1K字节,地址范围为00000H003FFH。 8086/8088的中断向量表如图7.18所示。,00000H,00003H,00008H,0000BH,00004H,00007H,0000CH,0000FH,00010H,00013H,00014H,0007FH,00080H,003FFH,IP内容,CS内容,类型0中断入口地址,(除法出错),专用中断,(5个),用户自定义中断(224个),系统保留中断(27个),类型1中断入口地址,(单步中断),类型2中断入口地址,(NMI),类型3中断入口地址,(断点中断),类型4中断入口地址,(溢出中断),类型5中断入口地址,类

31、型31中断入口地址,类型32中断入口地址,类型255中断入口地址,0007CH,003FCH,图7.18所示的中断向量表中有5个专用中断(类型0类型4),它们已经有固定用途;27个系统保留的中断(类型531)供系统使用,不允许用户自行定义;224 个用户自定义中断(类型32 255),这些中断类型号可供软中断INT n或可屏蔽中断INTR使用,使用时,要由用户自行填入相应的中断服务程序入口地址。(其中有些中断类型已经有了固定用途,例如,类型21H的中断已用做DOS的系统功能调用)。,由于中断服务程序入口地址在中断向量表中是按中断类型号顺序存放的,因此每个中断服务程序入口地址在中断向量表中的位置

32、可由“中断类型号4”计算出来。CPU响应中断时,把中断类型号N乘以4,得到对应地址4N(该中断服务程序入口地址所占4个单元的第一个单元的地址),然后把由此地址开始的两个低字节单元(4N,4N+1)的内容装入IP寄存器,再把两个高字节单元(4N+2,4N+3)的内容装入CS寄存器,于是CPU转入中断类型号为N的中断服务程序。,这种采用向量中断的方法,CPU 可直接通过向量表转向相应的处理程序,而不需要去逐个检测和确定中断源,因而可以大大加快中断响应的速度。,FLAGS 入栈,N,N,N,完成当前指令,有内部,中断吗?,从指令中或内部,获得中断类型号,从外部得到,中断类型号,TEMP=1?,令TEMPTF,调中断处理程序,Y,Y,Y,有NMI,中断吗?,有INTR,中断吗?,TF1?,执行下一条指令,N,N,N,N,Y,中断类型号2,Y,IF1?,中断类型号1,清IF、TF,CS、IP入栈,返回断点,FLAGS出栈,IP、CS出栈,中断服务,有NMI?,(1),(1),(1),(1),(2),(3),(4),(5),

温馨提示

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

评论

0/150

提交评论