微机原理与接口技术 第6章 输入输出技术_第1页
微机原理与接口技术 第6章 输入输出技术_第2页
微机原理与接口技术 第6章 输入输出技术_第3页
微机原理与接口技术 第6章 输入输出技术_第4页
微机原理与接口技术 第6章 输入输出技术_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

微机原理与接口技术任课教师:乔奎贤E-mail: cren616@126.com第6章输入输出与接口技术——CPU与外设的工作速度不一致,如何使两者高效、可靠地进行数据传送,是本章讨论的问题第6章输入输出与接口技术6.1 概述6.2 I/O接口6.3 中断与中断系统6.4 中断控制器8259A6.5 DMA控制器8237A6.1 概述输入和输出设备——外部设备、I/O设备在微机系统中,被计算机处理的信息,如程序、原始数据和各种现场采集的数据需通过输入设备送入计算机处理,而计算机处理的结果又需通过输出设备显示或打印。常用I/O设备:键盘、鼠标、磁盘、显示器、打印机、绘图仪等I/O设备的类型:机械式、电动式、电子式、光电式等I/O设备的信息:数字量、模拟量、开关量等接口:将来自外部设备的各种信号变换之后传送给CPU,而CPU将信息处理结果变换之后传送给外部设备46.1 概述键盘、鼠标——PS/2、USB扫描仪——EPP(增强并口)、USB显示器——15针D接口,也叫VGA接口5第6章输入输出与接口技术6.1 概述6.2 I/O接口6.3 中断与中断系统6.4 中断控制器8259A6.5 DMA控制器8237A6.2 I/O接口为什么需要I/O接口(电路)?微机的外部设备多种多样工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大I/O设备的功能多种多样I/O设备工作速度不同I/O设备处理的信号不同(模拟/数字信号、并行/串行)I/O设备所需的控制信号不同76.2 I/O接口I/O接口:将来自外设的各种信号变换之后传送给CPU,而CPU将信息处理结果变换之后传送给外部设备。I/O接口是CPU与外设之间传送信息的连接部件,通过系统总线与CPU相连。I/O接口位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路。PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路。I/O接口的特点:通用性可编程性86.2 I/O接口I/O接口的分类:通用接口:供多种外设使用的标准接口,使微机正常工作通用接口通常制造成集成电路芯片,称为接口芯片最初的IBM-PC使用了6块接口芯片:8284、8288、8255、8259、8237、8253后来的微机将这些芯片集成为大规模集成电路芯片,称为芯片组如:82430TX芯片组,由两片芯片组成:北桥:82439TX南桥:82371AB专用接口:96.2 I/O接口I/O接口的分类:通用接口:专用接口:为某种用途或某类外设而专门设计的接口电路,目的在于扩充微机系统的功能专用接口通常制成接口卡,插在主板总线插槽上使用通用接口和专用接口的界限并不严格106.2 I/O接口I/O接口的功能:I/O接口在它连接的CPU与I/O设备之间起信息转换作用,应具备如下功能:接口内有特定的硬件电路供CPU直接存取,称为I/O端口接口应有地址译码功能接口可传送除基本信息(数据信息)外的各种信息116.2 I/O接口6.2.1CPU与I/O设备间的信息种类CPUI/O接口外围设备数据状态控制数据状态控制I/O接口:与系统总线相连:实现与CPU的启动、选中接口等控制信号的配合,提供传输数据信息的I/O端口。与I/O设备相连:随接口类型的不同而异,其电路结构与设备传输数据的要求以及数据格式紧密相关。126.2 I/O接口6.2.1CPU与I/O设备间的信息种类接口传递的不同信息用不同的I/O端口区分(数据,状态和控制信息)数据信息:CPU和外设之间交换的基本信息数字量:通常以8/16位的二进制数及ASCII码的形式传输开关量:用0/1表示信息,如开关的通/断模拟量:模拟的电压、电流或非电量状态信息:反映当前外设所处工作状态,外设通过接口往CPU传送如:输出设备是否空闲,输入设备是否数据准备好等控制信息:CPU通过接口发送控制信息给外设如:外设的启动信号和停止信号就是常见的控制信息。实际上,控制信息常随外设的具体工作原理不同而含义不同136.2 I/O接口I/O接口的典型结构:数据寄存器状态寄存器控制寄存器数据缓冲器CS微处理器DBABCB数据控制状态I/O接口译码读写控制逻辑I/O设备××寄存器——××端口146.2 I/O接口6.2.2I/O端口及编址方式端口:I/O接口中能被CPU访问的寄存器端口地址:简称端口,为了使CPU能对端口进行操作而分配的地址I/O接口的内部端口(从应用角度):数据寄存器——数据端口:保存CPU与外设之间传送的数据状态寄存器——状态端口:保存外设或接口电路的状态控制寄存器——控制端口:保存CPU给外设或接口电路的命令CPU同外设之间的信息传递,实质上是对端口进行读/写操作156.2 I/O接口6.2.2I/O端口及编址方式I/O接口的的外部特性:主要体现在引脚上,分成两侧信号面向CPU一侧的信号:用于与CPU连接主要是数据、地址和控制信号面向外设一侧的信号:用于与外设连接提供的信号五花八门功能定义、时序及有效电平等差异较大166.2 I/O接口6.2.2I/O端口及编址方式

许多接口电路具有多种功能和工作方式,可以通过编程的方法选定其中一种。接口需要进行物理连接,还需要编写接口软件。接口软件有两类:初始化程序段——设定芯片工作方式等数据交换程序段——管理、控制、驱动外设,负责外设和系统间信息交换176.2 I/O接口端口编址方式:端口与存储器统一编址:(存储器映像编址)

将I/O接口中的每个寄存器看作存储器的一个存储器的一个存储单元,纳入统一的存储器地址空间,为每个端口分配一个存储器地址,CPU可以以访问存储器的方式访问端口。内存部分I/O部分存储器空间00000HFFFFFH优点:不需专用IO指令,使程序设计灵活;I/O端口的地址空间可大可小,可使外设数量几乎不受限制缺点:影响内存容量;访问I/O端口的执行时间增加186.2 I/O接口端口编址方式:端口独立编址:(专用的I/O端口编址)

I/O端口不占用存储器的地址空间,端口地址是独立的,CPU使用专门的I/O指令访问I/O端口。内存空间I/O空间FFFFFHFFFFH0优点:I/O端口的地址短,译码电路简单;M同I/O端口的操作指令不同,程序清晰;M和I/O端口控制结构相互独立,可分别设计缺点:需专用I/O指令;程序设计灵活性差80x86采用I/O端口独立编址196.2 I/O接口8088的I/O端口地址

8088只能通过输入输出指令与外设进行数据交换;呈现给程序员的外设是端口(Port),即I/O地址8088用于寻址外设端口的地址线为16条,端口最多为216=65536(64K)个,端口号为0000H~FFFFH地址线上的地址信号用IO/M*来区分每个端口用于传送一个字节的外设数据IBMPC只使用了1024个I/O地址(0~3FFH)206.2 I/O接口6.2.38086/8088的I/O指令IN输入指令:指令格式:

IN AL, PORT ;从端口读取字节信息

IN AX, PORT ;从端口读取字信息指令功能:AL←(PORT)字节数据;AX←(PORT)字数据说明:端口地址可以是8位立即数(直接寻址),范围:0~255(0~FFH)端口地址可存入DX寄存器(间接寻址),范围:0~65535(0~FFFFH)I/O指令不影响标志位例如: IN AX, 86H

IN AL, DX输入端口数据线地址译码(RD,IO/M)IOR216.2 I/O接口OUT输出指令:指令格式: OUT PORT,AL

;向端口输出字节信息

OUT PORT,AX

;向端口输出字信息指令功能:(PORT)←AL字节数据;(PORT)←AX字数据说明:端口地址和累加器的规定与输入指令IN相同例如: OUT 84H, AX OUT DX, AL输出端口数据线地址译码(WR,IO/M)IOW226.2 I/O接口6.2.38086/8088的I/O指令【例】向300H端口输出一个字节唯一的方法:间接寻址MOV

AL

,

n

;n是字节数据MOV

DX

,

300HOUT

DX

,

AL236.2 I/O接口6.2.4主机与外设之间的数据传输方式CPU与外围设备之间的数据转送:即CPU与接口之间的数据传送I/O数据传送的方式:程序控制方式:直接传送方式:(CPU与外设同步工作)外部控制过程各种动作时间是固定的,而且是已知的查询传送方式:(CPU与外设不同步工作):传送前查询外设状态,准备好才传送,否则CPU等待中断控制方式:外设与CPU处于并行工作DMA(直接存储器存取)传送方式:由硬件实现存储器与外设之间交换数据246.2 I/O接口程序控制方式:I/O操作在程序控制下进行,用IN和OUT指令直接访问I/O端口直接传送方式:——CPU与外设同步工作外部控制过程各种动作时间是固定的,而且是已知的。实现方法:⑴CPU不查询外设工作状态;⑵与外设速度的匹配通过在软件上延时完成;⑶程序中直接用I/O指令,完成数据传送。特点:⑴这种传送有前提:外设必须随时就绪;⑵适合于简单设备,如开关、发光二极管、LED数码管、继电器、按键或按纽等设备;⑶无条件传送的接口和操作均十分简单。256.2 I/O接口程序控制方式:直接传送方式:接口电路——硬件保证:只在CPU执行从相应端口输入数据时,

三态门处于工作状态,使输入设备的数据送上总线侧;而CPU执行其它指令时,

三态门均处于高阻状态,使输入设备的数据线与总线侧断开AB输入设备三态缓冲器地址译码器DB(D7~D0)IOR(RD,IO/M)输入266.2 I/O接口程序控制方式:直接传送方式:输出AB输出设备锁存器地址译码器DB(D7~D0)IOW(WR,IO/M)276.2 I/O接口查询传送方式:CPU与外设不同步工作传送前先查询外设状态,准备好才传送,否则CPU处于等待状态实现方法:在与外设进行传送数据前,CPU先查询外设状态,当外设准备好后,才执行I/O指令,实现数据传送。准备好——就绪(Ready)输入:“就绪”说明输入接口已准备好送往CPU的数据,正等着CPU来读取。该状态也可用接口中数据缓冲器已“满”来描述。输出:“就绪”说明输出接口已做好准备,等待接收CPU要输出的数据该状态也可用接口数据缓冲器已“空”、或者用接口(外设)“闲”或不“忙(Busy)”来描述。286.2 I/O接口查询传送方式:CPU与外设不同步工作查询传送的两个环节⑴查询环节寻址状态口读取状态寄存器的标志位若不就绪就继续查询,直至就绪⑵传送环节寻址数据口若是输入,通过输入指令从数据端口读入数据若是输出,通过输出指令向数据端口输出数据输入状态就绪?数据交换YN296.2 I/O接口查询传送方式:——CPU与外设不同步工作当CPU需要对多个设备进行操作时,则CPU按一定顺序依次查询。所谓的优先级问题,先查询的外设将优先进行数据交换。CPU通过不断查询外设状态,实现与外设的速度匹配,CPU通过不断查询外设状态,实现与外设的速度匹配。缺点:不能对设备进行实时处理查询过程大大降低CPU的效率外设接口始终处于被动状态306.2 I/O接口中断控制方式:外设准备数据,CPU执行程序,此时,CPU与外设并行工作。外设准备就绪,向CPU发中断申请,CPU暂停程序执行,响应中断,进行数据传输。此时,CPU与外设是串行工作。中断服务程序中断请求中断请求外设中断服务程序CPU的运行中断方式下CPU执行程序流程:当外设准备好,向CPU发出中断请求信号CPU在满足响应中断的条件下,发出中断响应信号CPU暂停当前程序,转去执行中断服务程序,完成与外设的数据传送CPU从中断服务程序返回,继续执行被中断的程序316.2 I/O接口直接存储器存取(DMA)传送方式:外设可通过DMA控制器DMAC向CPU发出DMA请求CPU响应DMA请求,系统转变为DMA工作方式,且将总线控制权交给DMAC由DMA控制器发送存储器地址,且决定传送数据块的长度执行DMA传送DMA操作结束,且将总线控制权交还CPUDMA适用于大批量快速传送传送数据内存地址的修改、记数等均由DMAC控制器硬件完成CPU放弃对总线的控制权,其现场不受影响,无需进行保护和恢复326.2 I/O接口(1)DMA方式与其它方式比较DMA控制器内存/外设外设/内存无需CPU指令外设/内存CPUMOV[XX],ALOUTDX,ALINAL,DXMOVAL,[XX]内存/外设336.2 I/O接口(2)DMA传输的特点外设内存外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒)346.2 I/O接口(3)DMA传输的工作过程由外设向DMAC发出DMA请求通过HOLD信号线发出DMA请求通过HLDA信号线发出DMA响应发出DMA应答信号通过HOLD信号线撤消DMA请求使HLDA信号无效与内存传送数据(DMA控制器控制)外设DMA控制器CPU356.2 I/O接口(3)DMA传输的工作过程由DMA控制器向CPU发出总线请求CPU发回响应信号,并同时让出总线管理权给DMA控制器在DMA控制器控制下,数据在I/O接口与存储器之间直接传送传送完毕,DMA控制器向CPU发回结束中断请求,则CPU收回总线管理权366.2 I/O接口I/O数据传送的方式比较:程序控制方式:特点:传送数据可靠性高,计算机使用效率低应用:常用在任务比较单一的系统中中断控制方式:特点:传送数据可靠性高,效率也高应用:常用于外设工作速率比CPU慢很多而数据量不大的系统直接存储器存取(DMA)传送方式:特点:可靠性和效率都很高,但硬件电路复杂,开销也大应用:常用于传送速率快、数据量很大的系统中37第6章输入输出与接口技术6.1 概述6.2 I/O接口6.3 中断与中断系统6.4 中断控制器8259A6.5 DMA控制器8237A6.3中断与中断系统为何计算机中要引入中断?提高数据传输率避免CPU不断检测外设状态,提高CPU的利用率实现对特殊事件的实时响应。如多任务操作系统中:缺页中断设备中断各类异常396.3中断与中断系统什么是中断?事件发生事件处理继续执行程序实际场景执行程序计算机中断请求及响应中断处理中断返回正在看书电话铃响接电话继续看书406.3中断与中断系统中断:指CPU在正常执行程序的过程中,由于内部/外部事件或由程序的预先安排,引起CPU暂时中断当前程序的运行而转去执行为内部/外部事件或预先安排的事件服务的子程序,待中断服务子程序执行完毕后,CPU再返回到暂停处(断点)继续执行原来的程序中断具有随机性:CPU预先不知道外设何时产生中断中断的产生:-由外设硬件产生-由程序软件产生断点CPU响应中断中断返回中断请求现行程序中断服务程序416.3中断与中断系统中断的处理过程:1.中断请求:当外设要求CPU为其服务时,外设接口(中断源)发出中断请求信号,送到CPU的INTR或NMI引脚CPU每执行完一条指令都要检测中断请求输入线CPU是否响应取决于CPU的中断允许控制位IF——对于可屏蔽中断中断屏蔽:有中断请求但未被允许对于可屏蔽中断是否响应——中断触发器IF/中断允许控制位IFIF=1:允许中断 通过SLI开中断指令打开IFIF=0:允许中断 通过CLI关中断指令关闭IF426.3中断与中断系统对于可屏蔽中断是否响应——中断触发器IF/中断允许控制位IFIF=0:可屏蔽中断不会被响应关中断、禁止中断、中断屏蔽系统复位,使IF=0任何一个中断被响应,使IF=0执行指令CLI,使IF=0IF=1:可屏蔽中断会被响应开中断、允许中断、中断开放执行指令STI,使IF=1执行中断返回指令IRET恢复原IF状态436.3中断与中断系统2.中断响应:

当CPU检测到外设有中断请求时,即INTR高电平有效,而CPU又处于允许中断状态时(IF=1),则CPU进入中断响应周期。在中断响应周期,CPU将自动完成如下操作:⑴连续发出两个中断响应信号INTA完成一个中断响应周期。⑵关中断(IF清零),避免在中断过程中受到其他中断源的干扰⑶保护处理的现行状态,即保护现场将断点地址(IP、CS)及程序状态字(PSW)进栈保存446.3中断与中断系统2.中断响应:⑷在中断响应的第二个总线周期,读取中断类型号,获得中断服务程序的入口地址,自动将程序转到此中断源设备的中断处理程序的首地址,即将中断服务程序的段地址和偏移地址分别装入CS和IP。⑸从响应中断请求到中断现行程序且将程序转移到中断处理地址的过程称为中断响应过程。456.3中断与中断系统3.中断处理:由中断服务程序实现中断服务程序:为实现中断源所期望达到的功能而编写的程序中断服务程序的组成:保护现场:将有关寄存器的内容压入堆栈中断服务:完成为相应的中断服务恢复现场:将原压栈的寄存器内容弹回CPU相应的寄存器中断返回:4.中断返回:执行中断返回指令IRETIRET指令:将使CPU把堆栈内保存的断点信息弹出到IP、CS和FLAG中,保证被中断的程序从断点处能够继续往下执行466.3中断与中断系统中断服务程序:编写中断服务程序与编写子程序类似利用过程定义伪指令PROC/ENDP第1条指令通常为开中断STI(允许嵌套)最后用中断返回指令IRET通常采用寄存器传递参数主程序需要调用中断服务程序调用前,需要设置中断向量利用INTn指令调用中断服务程序476.3中断与中断系统中断服务程序:①保护现场②开中断——为实现中断嵌套,必须设置开中断③中断处理——这是中断服务程序的核心④关中断——为保证下一步恢复现场的操作不被打断⑤恢复现场⑥开中断——使系统可以响应中断⑦中断返回486.3中断与中断系统中断源的类型:中断源:引起中断的原因或发出中断请求的来源8086/8088的256种中断分为:外部中断:由外部硬件中断源引起的中断可屏蔽中断:由INTR信号线请求的中断,受IF标志位的影响和控制通常通过8259A中断控制器进行优先级控制后向CPU发送INTR非屏蔽中断:由NMI信号线请求的中断,不受IF标志位禁止的中断通常用于处理应急事件,如电源掉电内部中断:所有内部中断都是非屏蔽的内部硬件中断:系统运行程序时,内部硬件出错或某些特殊事件发生软中断:CPU执行软件中断指令INTn引起的中断496.3中断与中断系统中断源的类型: ◆外部中断:可屏蔽中断、非屏蔽中断

◆内部中断:内部硬件中断、软中断单步中断除法错误中断指令中断INTn断点中断INT3溢出中断INTO中断逻辑不可屏蔽中断请求中断控制系统8259ANMIINTR8086CPU内部中断外部中断

可屏蔽中断请求506.3中断与中断系统◆外部中断:外部中断是由于8088外部提出中断请求引起的利用外部中断,微机系统可以实时响应外设的数据传送请求,及时处理外部意外或紧急事件外部中断的原因是处理器外部随机产生的(Interrupt)内部中断的原因是处理器执行程序出现异常,所以经常被称为异常(Exception)非屏蔽中断——中断类型码n=2可屏蔽中断——中断类型码n由申请中断的中断源提供516.3中断与中断系统⑴非屏蔽中断NMI通过非屏蔽中断请求信号NMI向微处理器提出的中断请求,微处理器无法禁止,将在当前指令执行结束予以响应,这个中断被称为非屏蔽中断8088的非屏蔽中断的向量号为2非屏蔽中断主要用于处理系统的意外或故障。例如:电源掉电前的数据保护存储器读写错误的处理526.3中断与中断系统⑵可屏蔽中断INTR外部通过可屏蔽中断请求信号INTR向微处理器提出的中断,微处理器在允许可屏蔽中断的条件下,在当前指令执行结束予以响应INTA*,同时输出可屏蔽中断响应信号,这个中断就是可屏蔽中断IF=1,允许中断;IF=0,禁止中断8088通常需要配合中断控制器8259A共同处理可屏蔽中断可屏蔽中断主要用于主机与外设交换数据536.3中断与中断系统◆内部中断:8088内部执行程序出现异常引起利用内部中断,微处理器为用户提供了发现、调试并解决程序执行时异常情况的有效途径例如,ROM-BIOS和DOS系统利用内部中断为程序员提供了各种功能调用内部中断的中断向量号已定。546.3中断与中断系统⑴除法错中断:执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则CPU自动产生一个向量号为0的内部中断,称为除法错中断0号中断没有对应的中断指令例如:MOV BL, 0IDIV BL

;除数BL=0,产生除法错中断MOVAX, 200HMOVBL, 1DIVBL

;商=200H,不能用AL表达

;产生除法错中断556.3中断与中断系统(2)单步中断:由CPU对状态标志寄存器中的陷阱标志TF的测试而产生的1号中断若TF=1,则在每条指令执行结束后产生1号内部中断,称为单步中断。类似0号(除法错)中断:不是由外部硬件或者软件指令产生,是由CPU对标志位TF的测试而产生的。例如:DEBUG.EXE调试程序的单步命令T就利用单步中断实现对程序的单步调试。566.3中断与中断系统(3)断点中断:CPU执行INT指令而产生的3号中断。是8086提供给用户使用的一种调试程序手段。对较长程序,通过设置断点(插入INT指令),使程序运行一段后进入断点中断,检查程序是否达到要求。例如:DEBUG.EXE调试程序的运行命令G设置的断点,就是利用INT3指令实现的。576.3中断与中断系统(4)溢出中断:由于CPU本身不能判别当前处理的数据是否带符号,因此,它提供了INTO指令给用户。在带符号运算后安排一条INTO指令,当运算后OF=1,则产生4号内部中断(溢出中断),进入溢出中断服务程序进行处理。MOV AX, 2000HADD AX,

7000H

;2000H+7000H=9000H,溢出:OF=1INTO

;因为OF=1,所以产生溢出中断586.3中断与中断系统(5)软件中断:在执行中断调用指令INTn时产生的一个向量号为n(0~255)的内部中断,n为一个字节的中断类型码,称为指令中断。用INTn指令来产生中断,运行用户自行设计的一些中断服务程序,这与段间调用子程序相似。如:系统功能调用INT21H596.3中断与中断系统中断向量表:中断向量表:也称中断指针表,用来按中断类型号顺序存放256种中断源对应的中断服务程序入口地址表内容:所有中断服务程序的入口地址,即256个中断向量表长度:一个中断向量4个字节,256个中断向量共256×4=1024字节,即占用1K存储空间表位置:物理地址00000H(0~3FFH)开始,依次安排各个中断向量,向量号也从0开始存放次序:按中断类型码从小到大依次存放。每个中断向量占用的4个单元中,小地址存放偏移地址,大地址存放段地址向量号为N的中断向量的物理地址=N×4606.3中断与中断系统8088的中断向量表:003FFH向量号255的CS值用户中断(向量号FFH)003FCH向量号255的IP值……(中断向量)向量号2的CS值非屏蔽中断(向量号2)00008H向量号2的IP值向量号1的CS值单步中断(向量号1)00004H向量号1的IP值向量号0的CS值除法错中断(向量号0)00000H向量号0的IP值中断向量地址616.3中断与中断系统中断的优先级:软件中断除法错中断指令中断溢出中断非屏蔽中断NMI可屏蔽中断INTR单步中断高低626.3中断与中断系统例题1:如果在00080H~00083H这

温馨提示

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

最新文档

评论

0/150

提交评论