第六章输入输出与中断_第1页
第六章输入输出与中断_第2页
第六章输入输出与中断_第3页
第六章输入输出与中断_第4页
第六章输入输出与中断_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、1 第六章第六章 输入输出与中断输入输出与中断2输入输出:输入输出:输入:从计算机外部把信息传入计算机主机输入:从计算机外部把信息传入计算机主机输出:将信息从计算机主机传送到外部输出:将信息从计算机主机传送到外部接口接口:连接计算机与外部设备的电路;连接计算机与外部设备的电路;计算机与外部设备的信息交换是通过计算机与外部设备的信息交换是通过“接口(接口(Interface)”电电路间接实现的路间接实现的 。345输入设备输入接口CPU设备专用电缆计算机总线(a) 输入信息的传送过程CPU输出接口计算机总线输出设备设备专用电缆(b) 输出信息的传送过程CPU与外部设备的连接与外部设备的连接6 端

2、口(端口(port)端口端口:接口电路内部的寄存器:接口电路内部的寄存器/缓冲器。缓冲器。这些寄存器这些寄存器/缓冲器有一个专用的地址,缓冲器有一个专用的地址,CPU可以使用这可以使用这个地址读写这些寄存器个地址读写这些寄存器/缓冲器。缓冲器。 端口的种类端口的种类: (1 1)数据输入端口)数据输入端口 (2 2)数据输出端口)数据输出端口 (3 3)状态端口(输入)状态端口(输入) (4 4)控制端口(输出)控制端口(输出) 7CPUCPU与接口之间的信号与接口之间的信号CPU与接口之间传送三种类型的信号与接口之间传送三种类型的信号: (1 1)数据信号)数据信号 (2 2)状态信号)状态

3、信号 (3 3)控制信号)控制信号 8I/O端口的编址方式端口的编址方式1 统一编址(存储器映象编址)统一编址(存储器映象编址) 这种编址方式的特点是存储器和这种编址方式的特点是存储器和I/O端口共用统一的地址空间。端口共用统一的地址空间。 所有访问存储器的指令(包括存储器的算术、逻辑运算指令)所有访问存储器的指令(包括存储器的算术、逻辑运算指令)都可用于都可用于I/O端口。端口。9存储器映象编址的优点:存储器映象编址的优点:任何对存储器数据的指令都可用于任何对存储器数据的指令都可用于I/O端口的数据操端口的数据操作,不需专用作,不需专用I/O指令,从而使系统编程比较灵活;指令,从而使系统编程

4、比较灵活;存储器映象编址的缺点:存储器映象编址的缺点:I/O占用了一部分内存空间,占用了一部分内存空间,且指令的机器码也长,且指令的机器码也长,执行时间较长。执行时间较长。1011 2 独立编址(专用的独立编址(专用的I/O端口编址)端口编址)存储器和存储器和I/O端口在两个独立的地址空间中,端口在两个独立的地址空间中,I/O端口的读、写操作由硬件信号端口的读、写操作由硬件信号 和和 来来实现,访问实现,访问I/O端口用专用的端口用专用的IN指令和指令和OUT指令。指令。IORIOW12独立编址方式的优点独立编址方式的优点nI/O端口的地址码较短(一般比同一系统中存储端口的地址码较短(一般比同

5、一系统中存储单元的地址码短);单元的地址码短);n译码电路比较简单,存储器同译码电路比较简单,存储器同I/O端口的操作指端口的操作指令不同,程序比较清晰;令不同,程序比较清晰;n存储器和存储器和I/O端口的控制结构相互独立,可以分端口的控制结构相互独立,可以分别设计。别设计。独立编址方式的缺点独立编址方式的缺点nI/O指令的功能一般不如存储器访问指令丰富;指令的功能一般不如存储器访问指令丰富;n程序设计灵活性较差。程序设计灵活性较差。13141. IN/OUT(输入(输入/输出)指令输出)指令IN和和OUT指令的共同特点是:必须使用累加器指令的共同特点是:必须使用累加器AL、AX或或EAX进行

6、数据的传送。进行数据的传送。输入时,输入时,IN指令把端口的数据指令把端口的数据/状态信息读入状态信息读入AL(8位)位)、AX(16位)或位)或EAX(32位)中。位)中。 输出时,要输出的数据输出时,要输出的数据/命令先放人命令先放人AL(8位)、位)、AX(16位)或位)或EAX(32位)中,然后执行位)中,然后执行OUT指令,将指令,将AL、AX或或EAX中信息向端口输出中信息向端口输出 输入输入/ /输出指令输出指令151. IN/OUT(输入(输入/输出)指令输出)指令(p36 2.2.7)(1)IN(输入)指令(输入)指令 指令格式:指令格式:INACC, PORT INACC,

7、 DX操作:操作:AL/AX/EAX (PORT) AL/AX/EAX (DX)功能:把指定端口中的数据读入功能:把指定端口中的数据读入AL、AX或或EAX中中16输入指令举例输入指令举例:端口地址在端口地址在0255之间:之间: IN AL,35H;将地址为;将地址为35H的端口数据送的端口数据送AL 端口地址在端口地址在065535之间之间: MOV DX,21H;端口地址放入端口地址放入DX IN AL,DX;把地址为把地址为21H的端口数据送的端口数据送AL中中 MOV DX,312H;端口地址放入;端口地址放入DXIN EAX,DX;把地址为;把地址为312H的端口数据的端口数据(3

8、2位位);送;送EAX中中 17(2)输出指令输出指令 指令格式:指令格式:OUTPORT, ACC OUTDX, ACC操作:(操作:(PORT) AL/AX/EAX (DX) AL/AX/EAX 功能:把功能:把AL、AX或或EAX中的数据向指定端口输出中的数据向指定端口输出18输出指令举例输出指令举例:端口地址在端口地址在0255之间:之间: OUT60H,AL ;将;将AL中数据送到地址中数据送到地址; 为为60H的的8位端口中位端口中 端口地址在端口地址在065535之间之间: MOV DX,21H;端口地址送入;端口地址送入DX OUT DX,AL;将;将AL中数据从中数据从DX所

9、所; 指定的指定的8位端口输出位端口输出 MOV DX,310H;端口地址送入端口地址送入DX OUT DX,EAX;将;将EAX中数据向中数据向DX;所指定的;所指定的32位端口输出位端口输出 191. 输入输出方式输入输出方式编写输入、输出程序,必须根据外设的工作方式来决定输编写输入、输出程序,必须根据外设的工作方式来决定输入入/输出采用的方式。输出采用的方式。 三种基本的程序控制输入输出方式:三种基本的程序控制输入输出方式:(1)无条件输入)无条件输入/输出输出 (2)查询式输入)查询式输入/输出输出 (3)中断方式)中断方式 程序控制输入程序控制输入/ /输出输出20 外设始终处于就绪

10、状态,外设始终处于就绪状态,CPU在需要时可随时与外设交换在需要时可随时与外设交换数据,而无须知道外设所处的状态,就可以使用无条件输入数据,而无须知道外设所处的状态,就可以使用无条件输入/输输出方式进行数据的传输出方式进行数据的传输 例:扬声器发声电路例:扬声器发声电路无条件方式输入无条件方式输入/ /输出输出21SOUNDPROCPUSHAX; 保护现场保护现场PUSHCXINAL, 61H; 读读61H端口端口“当前值当前值”ANDAL, 11111110BOUT61H, AL; 使使D0=0,关闭,关闭Timer2TRIG:INAL, 61H; 读读61H端口端口“当前值当前值”XORA

11、L, 2OUT61H, AL; D1取反后输出,产生周期性信号取反后输出,产生周期性信号MOVCX, DXLOOP $; 延时,控制延时,控制1/0输出时间,控制发声频率输出时间,控制发声频率DEC BXJNZTRIG; 延时,控制发声的总时间延时,控制发声的总时间POPCX; 恢复现场恢复现场POPAXRETSOUNDENDP22 3. 查询方式输入查询方式输入/输出输出CPU必须通过必须通过“读读”外部设备的状态端口,了解外部设外部设备的状态端口,了解外部设备的当前状态,确定能否进行备的当前状态,确定能否进行“数据传输数据传输” 23(1)查询式输入)查询式输入 查询式输入的接口电路中,除

12、了有一个数据输入端口,还查询式输入的接口电路中,除了有一个数据输入端口,还必须有一个用于反映外设状态的状态端口必须有一个用于反映外设状态的状态端口 状态端口的每一位反映设备的一种状态,例如,用状态端口的每一位反映设备的一种状态,例如,用D7=1表表示设备已经完成了数据准备,可以传输数据。示设备已经完成了数据准备,可以传输数据。D7=0则表示则表示尚未完成数据准备,不能进行数据传输。这一位常常被称为尚未完成数据准备,不能进行数据传输。这一位常常被称为“READY”。24IN_TEST:INAL, STATUS_PORT;读状态端口;读状态端口TEST AL, 80H;检查数据准备是否就绪;检查数

13、据准备是否就绪(D7=1?)JZIN_TEST;未就绪,重新读状态端口;未就绪,重新读状态端口INAL, DATA_PORT;已就绪,读取数据;已就绪,读取数据 假设输入接口内数据端口地址为假设输入接口内数据端口地址为DATA_PORT,状态端口地,状态端口地址为址为STATUS_PORT,其中,其中D7为为“READY”位。一个数据的查位。一个数据的查询式输入过程如下:询式输入过程如下:25(2)查询式输出)查询式输出 采用查询方式进行输出的接口电路中,有一个用于数据输采用查询方式进行输出的接口电路中,有一个用于数据输出的端口,还有一个用于反映外设状态的端口。出的端口,还有一个用于反映外设状

14、态的端口。 输出设备一个常用的状态位称作输出设备一个常用的状态位称作“BUSY”,BUSY=1表示表示设备正处于数据准备阶段(设备正处于数据准备阶段(“忙忙”););BUSY=0表示设备已表示设备已经完成数据准备(经完成数据准备(“空闲空闲”),可以进入数据传输。),可以进入数据传输。26a) 状态寄存器(379H)b) 控制寄存器(37AH)备用打印出错(0=出错)联机状态(1=联机)D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7忙(0=忙)应答纸出界(1=出界)备用选通(负脉冲)自动换行(1=换行)初始化(0=初始化)设备选择(1=连接)中断允许(1=允许)打印机接口内的

15、状态、控制端口(寄存器)打印机接口内的状态、控制端口(寄存器)27. MODELSMALL. DATAOUT_DATA DB 0AH, 0DH, This is an example. COUNTEQU$-OUT_DATA. CODESTART: MOV AX, DATAMOVDS, AX; 装载装载DSLEASI, OUT_DATA; 装载输出缓冲区指针装载输出缓冲区指针MOVCX, COUNT; 装载计数器初值装载计数器初值AGAIN: MOV DX, 379HINAL, DX; 读状态端口读状态端口TEST AL, 80H; 测试测试D7位(位(“忙忙”位)位)JZAGAIN; 打印机打

16、印机“忙忙”则等待则等待 例例8-18-1查询方式打印机输出程序查询方式打印机输出程序28MOVDX, 378H; 数据端口地址装入数据端口地址装入DXMOVAL, SI; 取待输出字符代码取待输出字符代码OUTDX, AL; 字符代码向数据端口输出字符代码向数据端口输出MOVDX, 37AH; 命令端口地址送命令端口地址送DXMOVAL, 0DH; 打印机命令字:打印机命令字:“选通选通”位置位置“1”OUTDX, AL; 将将“选通选通”位置位置“1”NOP; 延时延时MOVAL, 0CH; 打印机命令字:打印机命令字:“选通选通”位置位置“0”OUTDX, AL; 将将“选通选通”位置位

17、置“0”INCSI; 修改输出缓冲区指针修改输出缓冲区指针LOOP AGAIN; 循环控制循环控制OVER:MOV AX,4C00HINT 21H ENDSTART29例、定时器与扬声器的接口与编程例、定时器与扬声器的接口与编程 SN75477 1.19MHZ CLK SPKDATA +5v TIM2GAT CLK2 OUT2 D0D7 GATE2 2A 2Y GND Vcc C S 30BEEP1 PROC NEAR PUSH AX PUSH CX PUSH DX PUSH DI MOV AL,0B6H OUT 43H,AL MOV DX,12H MOV AX,34DAH DIV DI OU

18、T 42H,AL MOV AL,AH31 OUT 42H,AL MOV AL,03H OUT 61H,ALDELAY2: MOV CX,12500DELAY1: LOOP DELAY1 DEC BX JNZ DELAY2 MOV AL,00H OUT 61H,AL POP DI POP DX32 POP CX POP AX RET BEEP1 ENDP331.1. 中断与中断源中断与中断源中断中断:由于某种事件的发生,使由于某种事件的发生,使CPU中断(暂时停止)正在中断(暂时停止)正在执行的程序而转去执行该事件的处理程序,为该事件服务结执行的程序而转去执行该事件的处理程序,为该事件服务结束后

19、,继续执行原来被中断的程序,这个过程称为中断。束后,继续执行原来被中断的程序,这个过程称为中断。 中断源中断源:引起中断的事件称为中断源:引起中断的事件称为中断源 。断点断点:由于中断,将要执行但尚未执行的指令地址称为由于中断,将要执行但尚未执行的指令地址称为“断断点点”,包括,包括16位段基址和位段基址和16位偏移地址。位偏移地址。中断的概念中断的概念342. 中断分类中断分类中断可以划分为外部中断和内部中断两大类中断可以划分为外部中断和内部中断两大类 (1)内部中断)内部中断中断指令中断指令INT引起的中断(软件中断)引起的中断(软件中断)由于由于CPU的某些错误引起的中断,如除法错中断、

20、溢出中断的某些错误引起的中断,如除法错中断、溢出中断(异常中断)(异常中断) 为调试程序设置的中断(陷阱中断)为调试程序设置的中断(陷阱中断)(2)外部中断)外部中断不可屏蔽中断(不可屏蔽中断(NMI),通常代表),通常代表CPU外部的故障外部的故障 可屏蔽中断(可屏蔽中断(INTR),外设完成数据准备,请求进行数据传输外设完成数据准备,请求进行数据传输35不可屏蔽中断8086 CPU中断逻辑INT n指令INT 3断点除法出错单步中断 8259A可屏蔽中断请求I N TO溢出NMIINTR80X86CPU中断分类中断分类36 非屏蔽中断非屏蔽中断NMI 硬件中断(外部中断)硬件中断(外部中断

21、) 可屏蔽中断可屏蔽中断INTR 溢出中断溢出中断中断中断 软件中断软件中断 (内部中断)(内部中断) 除法错中断除法错中断 单步中断单步中断 INT n 指令中断指令中断 断点中断断点中断37n软件中断(内部中断)软件中断(内部中断)除法错中断:类型除法错中断:类型0中断。也称为除数为中断。也称为除数为0的中的中断。断。单步中断:类型单步中断:类型1中断。执行一条指令产生一次中断。执行一条指令产生一次中断。中断。CPU进入单步中断的依据是标志寄存器进入单步中断的依据是标志寄存器中的单步标志中的单步标志TF为为1。断点中断:类型断点中断:类型3中断。断点可以设置在程序的中断。断点可以设置在程序

22、的任何地方,设置断点实际上是把一条断点指令任何地方,设置断点实际上是把一条断点指令INT3插入程序中,插入程序中,CPU执行到断点处的执行到断点处的INT3指指令,便产生一个中断。令,便产生一个中断。溢出中断:类型溢出中断:类型4中断。如果溢出标志中断。如果溢出标志OF为为1,有一条专门的指令有一条专门的指令INTO来中断发生溢出的算术来中断发生溢出的算术操作。操作。38中断指令中断指令INT引起的内中断:引起的内中断:CPU执行完一条执行完一条INT n指令后,会指令后,会立即产生中断,中断指令的操作立即产生中断,中断指令的操作数数n指出中断类型。实际上就是利指出中断类型。实际上就是利用软件

23、来调用中断处理子程序。用软件来调用中断处理子程序。INT指令可以指定指令可以指定00FFH中的任中的任何类型号。何类型号。39n软件中断有如下特点:软件中断有如下特点:用一条指令来进入中断处理子程序,用一条指令来进入中断处理子程序,并且中断类型码由指令提供并且中断类型码由指令提供进入中断时,不需要执行中断响应总进入中断时,不需要执行中断响应总线周期,也不从数据总线读取中断类线周期,也不从数据总线读取中断类型码型码不受中断允许标志不受中断允许标志IF的影响的影响40n硬件中断硬件中断非屏蔽中断:是通过非屏蔽中断:是通过CPU的引脚的引脚NMI引入的,不受中断允许标志引入的,不受中断允许标志IF的

24、屏蔽,并且在整个系统中只的屏蔽,并且在整个系统中只有一个非屏蔽中断。非屏蔽中断有一个非屏蔽中断。非屏蔽中断是一个由低到高的上升沿。每当是一个由低到高的上升沿。每当NMI端进入一个上升沿信号时,端进入一个上升沿信号时,CPU就会在结束当前指令后,进就会在结束当前指令后,进入非屏蔽中断处理程序。入非屏蔽中断处理程序。41可屏蔽中断:当可屏蔽中断:当CPU 在在INTR引脚上接收到一引脚上接收到一个高电平的中断请求信号,并且当前的中断个高电平的中断请求信号,并且当前的中断允许标志为允许标志为1时,时,CPU就会在当前指令执行完就会在当前指令执行完以后,开始响应外部的中断请求,具体地说,以后,开始响应

25、外部的中断请求,具体地说,就是就是CPU往往INTA引脚上发两个负脉冲,外设引脚上发两个负脉冲,外设接到第二个负脉冲以后,立即往数据线上送接到第二个负脉冲以后,立即往数据线上送中断类型码。中断类型码。CPU在响应外部中断,并进入在响应外部中断,并进入中断子程序的过程中,要依次作下面几件事:中断子程序的过程中,要依次作下面几件事: 从数据总线上读取中断类型码,将其存入内部暂从数据总线上读取中断类型码,将其存入内部暂存器。存器。 将标志寄存器的值推入堆栈。将标志寄存器的值推入堆栈。 将将IF,TF清零。清零。42将断点保持到堆栈中。将断点保持到堆栈中。根据中断类型码,到内存根据中断类型码,到内存0

26、000段的中断段的中断向量表中找中断向量,再根据中断向量向量表中找中断向量,再根据中断向量转入响应的中断处理子程序。转入响应的中断处理子程序。 对于非屏蔽中断和可屏蔽中断的处理仅仅有两点对于非屏蔽中断和可屏蔽中断的处理仅仅有两点差别:即差别:即CPU迂到可屏蔽中断请求时,先要判断迂到可屏蔽中断请求时,先要判断IF是否为是否为1,如果为,如果为1,CPU便进入中断响应过程,便进入中断响应过程,进入响应过程后,进入响应过程后,CPU还要读取此中断的类型码;还要读取此中断的类型码;而非屏蔽中断不需要这两个步骤。而非屏蔽中断不需要这两个步骤。43中断类型中断类型 (中断类型号中断类型号)为了区分不同的

27、中断源,为了区分不同的中断源,80X86给每一个中断源一个编号,给每一个中断源一个编号,称为中断类型称为中断类型(中断类型号(中断类型号)中断向量表中断向量表中断向量:中断向量:每种类型的中断都有一个相应的中断服务程序来每种类型的中断都有一个相应的中断服务程序来进行处理,中断服务程序的入口地址称为进行处理,中断服务程序的入口地址称为“中断向量中断向量” 中断向量表中断向量表:80 x86微机系统中把微机系统中把256个中断向量按照它们中个中断向量按照它们中断类型的顺序组织成一张表,存放在内存最低的断类型的顺序组织成一张表,存放在内存最低的1KB中,地中,地址范围址范围000H3FFH,这张表称

28、为,这张表称为“中断向量表中断向量表”(图(图8-5)44类型0中断服务程序入口地址类型1中断服务程序入口地址类型1CH中断服务程序入口地址类型0FFH中断服务程序入口地址0000:0000H0000:0004H0000:0070H0000:03FFH80X86 CPU中断向量表中断向量表45中断处理过程中断处理过程中断发生时,计算机中断机构自动完成如下操作中断发生时,计算机中断机构自动完成如下操作 :(1)取中断类型号)取中断类型号N(2)标志寄存器()标志寄存器(FLAGS)内容入栈)内容入栈(3)当前代码段寄存器()当前代码段寄存器(CS)内容入栈)内容入栈(4)当前指令计数器()当前指

29、令计数器(IP)内容入栈)内容入栈(5)禁止外部中断和单步中断()禁止外部中断和单步中断(TF=0,IF=0)(6)从中断向量表中取地址)从中断向量表中取地址4N的的2字节内容送字节内容送IP,取地址,取地址4N+2的的2字节内容送字节内容送CS(7)进入中断处理程序)进入中断处理程序。 46中断优先级和中断嵌套中断优先级和中断嵌套中断优先级中断优先级 :多个中断源同时请求中断时,中断响应的先:多个中断源同时请求中断时,中断响应的先后次序。后次序。中断嵌套中断嵌套 :中断服务程序执行过程中,可以响应较高优先:中断服务程序执行过程中,可以响应较高优先级中断请求,进入较高级中断的中断服务程序,该中

30、断处理级中断请求,进入较高级中断的中断服务程序,该中断处理结束后,继续较低级别的中断处理,称为中断嵌套结束后,继续较低级别的中断处理,称为中断嵌套 。47使用中断方式进行输入使用中断方式进行输入/输出时,用户需要编制两个程序模输出时,用户需要编制两个程序模块块 :“主程序主程序” 和和“中断服务程序中断服务程序” 主程序主程序:主要任务是为进入中断服务程序进行各种准备:主要任务是为进入中断服务程序进行各种准备 ,输入输出完成后进行结束处理输入输出完成后进行结束处理 中断服务程序中断服务程序:中断发生时由:中断发生时由CPU执行该程序,进行所需要执行该程序,进行所需要的输入输出处理的输入输出处理

31、 中断服务程序中断服务程序481. 主程序主程序(1)设置中断向量)设置中断向量 :设置中断向量就是把中断服务程序的入口地址放入中断向量设置中断向量就是把中断服务程序的入口地址放入中断向量表中表中 设置中断向量有两种可选的方法:设置中断向量有两种可选的方法: 用用MOV指令将中断向量直接写入中断向量表中,称为直指令将中断向量直接写入中断向量表中,称为直接写入法。接写入法。 用用DOS功能调用,设置中断向量功能调用,设置中断向量 。49PUSHDS; 保护保护DS寄存器内容寄存器内容MOV AX, 0MOV DS, AX ;数据段指向中断向量表;数据段指向中断向量表MOV BX, 4*N; 中断

32、向量安放位置(偏移地址)送中断向量安放位置(偏移地址)送BXMOV WORD PTR BX, OFFSET INTERRUPT ; 写入偏移地址写入偏移地址MOV WORD PTR BX+2, SEG INTERRUPT ; 写入段基址写入段基址 POPDS; 恢复恢复DS寄存器寄存器 例例 :用直接写入法设置中断向量。假设中断类型为:用直接写入法设置中断向量。假设中断类型为N,中,中 断服务程序入口标号为断服务程序入口标号为INTERRUPT 50用用DOS功能调用功能调用25H用来设置中断向量:用来设置中断向量: 入口参数为:入口参数为: AH25H AL中断类型号中断类型号 DS: DX中断向量中断向量用用DOS功能调用功能调用35H用来读中断向量用来读中断向量 : 入口参数为:入口参数为: AH25H AL中断类型号中断类型号出口参数为:出口参数为:ES: BX中断向量中断向量51PUSHDSMOVAX, SEG INTERRUPTMOVDS, AXMOVDX, OFFSET INTERRUPTMOVAL, NMOVAH, 25HINT21HPO

温馨提示

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

评论

0/150

提交评论