欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第九章_BIOS和DOS中断15772.pptx

    • 资源ID:91088326       资源大小:172.22KB        全文页数:56页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第九章_BIOS和DOS中断15772.pptx

    第九章 BIOS 和DOS中断 9.1 键盘I/O 9.2 显示器I/O 9.3 打印机I/O 9.4 串行通信口I/O640KB RAM 基本内存0000:0000 0040:0000 0050:0000 0070:0000 A000:0000 B000:0000 C800:0000 F600:0000 FE00:0000 FE00:1FFF显示缓存区(显存)硬盘驱动器控制ROM32KB ROM BASIC8KB ROM BIOSIO.SYS模块COMMAND.COM常驻模块MSDOS.SYS模块用户程序空间COMMAND.COM暂驻模块256KB ROMDOS工作区ROM BIOS工作区128KB RAM 保留区1KB中断向量表 MS DOS系统中有两层内部子程序可供用户使用:基本输入输出子程序(BIOS)层功能模块及咖层功能模块。这些子程序对用户来说均可看成中断处理程序,它们的入口都在中断入口表中。用户用户不必过多地关心有关设备的物理性能及接口方面的细节,即不用直接使用IN或OUT语句,只需调用相应子程序即可使用设备。使用汇编语言程序可以直接调用它们,这极大地方便了用户对这些微机系统的扩充开发,因而掌握这些子程序的使用十分重要。在系统存储器中,从地址0FE000H开始的8KB ROM(只读存储器)中装有BIOS(basic input/output system,基本输入输出系统)例行程序。驻留在ROM中的BIOS提供了系统加电自检,引导装入,主要IO设备的处理以及接口控制等功能模块。使用BIOS功能调用,给程序员编程带来了很大的方便。程序员不必了解硬件IO接口的特性,可直接用指令设置参数,然后中断调用BIOS中的例行程序,所以利用BIOS功能编写的程序简洁,可读性好,而且易于移植。BIOSDOSDOS是IBM PC机的磁盘操作系统,IBMBIO.COM:是一个输入输出设备处理程序,它提供了DOS到ROM BIOS的低级接口,它完成将数据从外设读入内存,或把数据从内存写到外设去的工作。IBMDOS.COM包括一个文件管理程序和一些处理程序,在DOS运行的程序可以调用这些处理程序。为了完成DOS功能调用,IBMDOSCOM把信号传送给IBMBIO.COM,形成一个或多个BIOS调用。它的两个模块IBMBIO.COM和IBMDOS.COM使BIOS使用起来更方便。因为:DOS模块提供了更多重必要的测试,使DOS操作比使用相应功能的BIOS操作更简易,而且DOS对硬件的依赖性更少些。l 用户编程原则尽可能使用DOS的系统功能调用,提高程序可移植性。在DOS功能不能实现情况下,考虑用BIOS功能调用。在DOS和BIOS的中断子程不能解决问题时,使用IN/OUT 指令直接控制硬件。在一些情况下,既能选择DOS中断也能选择BIOS中断来执行同样的功能,但在少数情况下必须使用BIOS功能。DOS中断能处理大多数的IO,但有一些功能还没有提供。设置入口参数在AH设置功能号(如需要,在AL设置子功能号)执行中断指令INT N分析、应用出口参数Dos/Bios中断调用的基本步骤DOS功能调用 INT 21H 用户在程序中调用DOS提供的一些子功能:(1)一般设备的输入输出(2)磁盘的输入输出及磁盘文件的管理(3)其它 调用方法:(1)设置调用参数(2)MOV AH,功能号(3)INT 21H(1)DOS键盘功能调用(AH=1,6,7,8,A,B,C)例:单字符输入(AH=1)get-key:mov ah,1 int 21h cmp al,Y je yes cmp al,N je no jne get_key yes:no:例:输入字符串(AH=0ah)定义缓冲区:(1)maxlen db 32 actlen db?string db 32 dup(?)(2)maxlen db 32,0,32 dup(?)(3)maxlen db 32,33 dup(?)lea dx,maxlen mov ah,0ah int 21h20 maxlen actlen HOWAREYOU20200d string 0b(DX)(2)DOS显示功能调用(AH=2,6,9)例:显示单个字符(AH=2)mov ah,2mov dl,Aint 21h例:显示字符串(AH=9)string db HELLO,0dh,0ah,$mov dx,offset stringmov ah,9int 21h(3)DOS打印功能(AH=5)l 有关键盘 一种输入设备,通过键盘接口电路与计算机连接。键盘上的键有三种类型:字符数字键 AZ,09等 扩展功能键 F1F12,Page Up等 组合控制键 Shift,Ctrl,Alt等 键盘上的每个键都有一个扫描码。据扫描码可确定操作的是哪个键、是按下键还是释放键;扫描码用一个字节表示。低7位是扫描码的数字编码,与键盘上的键一一对应;最高位D7位表示键的操作状态:当按下键时,D7=0;当释放键时,D7=19.1 键盘 I/O一个ASCII码产生一个动作改变其它键所产生的字符码 键盘中断子程功能(09H类型中断子程)从键盘接口读取操作键的扫描码(8255的输入端口61H);将扫描码转换成字符码;大部分键的字符码为ASCII码,无ASCII码键(如组合键Shift、Ctrl等)的字符码为0。还有一些非ASCII码键产生一个指定的动作 将键的扫描码、字符码存放在键盘缓冲区KB_BUFFER,供其它有关键盘的中断子程应用。键盘接口对按下键和释放键均向计算机发出中断申请,如果中断响应条件满足,CPU转去执行键盘中断子程。键盘中断子程类型号为09H。键盘缓冲区 0040:001A BUFF_HEAD DW?0040:001C BUFF_TAIL DW?0040:001E KB_BUFFER DW 16 DUP(?)0040:001A KB_BUFFER _END LABEL WORD 先进先出的循环队列首地址末地址大小单字符输入(01H、07H、08H功能)入口参数 无 功能号 AH=01H 类型号 21H 出口参数 AL=键入字符的ASCII码 实现功能 等待从键盘输入一个字符,并在屏幕上回显,光标移动,检测Ctrl-Break键例 利用键盘输入的字符产生分支:MOV AH,1;等待从键盘输入 INT 21H CMP AL,Y;是Y?JZ yes CMP AL,y;是y?JZ yes no:.JMP exit yes:.exit:.例 在中断向量表中查找从键盘输入的字符,并将其个数用二进制形式显示出来。(scanskey.asm)code SEGMENT;代码段开始 ASSUME CS:code begin:MOV AX,0000H;设置查找首地址 MOV DS,AX MOV SI,0000H MOV CX,0400H;设置查找长度 MOV BX,0;计算值初值 MOV AH,01H;从键盘输入 INT 21H;输入关键字 MOV DL,AL;保存在DL中 next:LODSB;从串取 CMP AL,DL;与关键字比较 JNZ point INC BX;计算值加1 point:LOOP next;查找结束?CALL display;调用显示子程 MOV AH,4CH;调用4CH功能 INT 21H;返回DOS;用二进制显示BX内容子程 display PROC MOV CX,16;显示位数 rotate:ROL BX,1 MOV DL,BL AND DL,01H ADD DL,30H MOV AH,2H INT 21H LOOP rotate RET;子程返回 display ENDP code ENDS;代码段结束 END begin 入口参数 无 功能号 AH=07H类型号 21H出口参数 AL=键入字符的ASCII码实现功能 等待从键盘输入一个字符,不在屏幕上回显,不检测Ctrl-Break键例 用不带回显功能输入密码时:input:MOV AH,07H;等待从键盘输入 INT 21H MOV DI,AL;存入缓冲区 CMP AL,0DH;是回车符?JNZ input;不是,继续输入 check:、4.字符串输入(0AH 功能)入口参数 DS:DX=缓冲区的首地址(DS:DX)=限制最多输入的字符数 功能号 AH=0AH 类型号 21H 出口参数(DS:DX+1)=实际键入的字符(不含回车符)从(DS:DX+2)开始顺序存放键入的字符串,回车符0DH为串尾最后一字符。实现功能 等待从键盘输入字符串,并存入设定的缓冲区内,同时回显字符串,光标随着移动,回车符使光标回到行首。注意事项:应按要求先定义缓冲区,再调用。例 应用0AH功能输入字符串。data SEGMENT;定义缓冲区max DB 11;定义限制最多输入个数lenth DB?;用于存放实际输入个数stri DB 11 DUP(?);用于存放输入的字符串data ENDScode SEGMENT ASSUME CS:code,DS:datastart:MOV AX,data;置缓冲区地址于DS:DX MOV DS,AX LEA DX,max MOV AH,0AH INT 21H;调0A输入功能 MOX CH,0 MOV CL,lenth;取字符串长度放CX中 LEA BX,stri;取字符串首址于BX中 MOV AL,BX;应用输入字符、code ENDS data SEGMENT;定义缓冲区max DB 11;定义限制最多输入个数lenth DB?;用于存放实际输入个数stri DB 11 DUP(?);用于存放输入的字符串data ENDS从键盘输入ABCD,回车,内存的存放结果:0B 04 41 42 43 44 0D 00max0 700 00 00 00 00 00 00 008 0a 0b0f1 23 4 5 6 90c 0d0elenthstri地址内容DS:DX如下编程与上例相同:data SEGMENT max DB 11 等价于:DB?max DB 11,?,11 DUP(?)DB 11 DUP(?)data ENDS code SEGMENT ASSUME CS:code,DS:datastart:MOV AX,data;置缓冲区地址于DS:DX MOV DS,AX LEA DX,max MOV AH,0AH;调输入功能 INT 21H MOX CH,0 MOV CL,max+1;取字符串长度放CX中 LEA BX,max+2;取字符串首址于BX中 MOV AL,BX;应用输入字符、code ENDSdata SEGMENTmax DB 11 DB?DB 11 DUP(?)data ENDS从键盘输入ABCD,回车,内存的存放结果:等价于max DB 11,?,11 DUP(?)0B 04 41 42 43 44 0D 00max0 700 00 00 00 00 00 00 008 0a 0b0f1 23 4 5 6 90c 0d0e地址内容DS:DX0AH功能执行过程:若(DS:DX)字节单元的值为0,则不等待从键盘输入,结束调用。若(DS:DX)字节单元的内容大于0,则等待从键盘输入,并把输入键的ASCII码顺序存放在DS:DX+2开始的单元,按回车键表示结束输入。当按下键的个数超过(DS:DX)中值,发出警告声 嘟嘟,不再接收输入的数据,直到输入回车键。将实际输入的字符个数(不包括回车键)填入(DS:DX+1),结束调用。DS:DX00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000AH功能注意事项:输入的字符均带回显,且光标随字符移动。当输入回车符结束时,也回显回车符。表现为功能调用结束后,光标回到了行首。回车符0DH作为一个输入的字符存放在字符串尾,但计数输入个数时,不包括回车键。实际最多能输入的字符数=限制的最多数-1(回车符占一个)执行完0AH功能后,DS和DX的值不变,DS:DX仍指向缓冲区的首地址。整个缓冲区的大小应为:限制的最多数+2 max DB 11,?,11 dup(?)例 利用DEBUG查看0A功能输入结果。data SEGMENT max DB 11,?,11 DUP(?)data ENDScode SEGMENT ASSUME CS:code,DS:datastart:MOV AX,data;置缓冲区地址于DS:DX MOV DS,AX LEA DX,max MOV AH,0AH;调输入功能 INT 21H MOV CH,0 MOV CL,max+1;取输入长度到CX中 MOV AH,4CH;返回DOS INT 21Hcode ENDS END startD:MASMDEBUG TEST0a.exe;装入执行文件-U;反汇编程序 129E:0000 B89D12 MOV AX,129D129E:0003 8ED8 MOV DS,AX129E:0005 8D160000 LEA DX,0000129E:0009 B40A MOV AH,0A129E:000B CD21 INT 21129E:000D B500 MOV CH,00129E:000F 8A0E0100 MOV CL,0001129E:0013 B44C MOV AH,4C129E:0015 CD21 INT 21、-D 129D:0 L10;查看程序执行前缓冲区内容 129D:0000 0B 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00.-G 000D;执行程序 Hello;从键盘输入字符串 Program terminated normally-D 129D:0 L10;查看程序执行后缓冲区内容 129D:0000 0B 05 48 65 6C 6C 6F 0D-00 00 00 00 00 00 00 00.Hello.-思考:1.若将程序改为如下形式,设想程序执行的结果。data SEGMENT max DB 100H DUP(?)data ENDScode SEGMENT ASSUME CS:code,DS:datastart:MOV AX,data;置缓冲区地址于DS:DX MOV DS,AX LEA DX,max MOV AH,0AH;调输入功能 INT 21H MOV AH,4CH;返回DOS INT 21Hcode ENDS END start结果是:不等待输入,结束0AH功能调用。00 00 00 00 00 00 00 00max0 700 00 00 00 00 00 00 008 0a 0b0f1 23 4 5 6 90c 0d0e地址内容DS:DX注意:由于DS:DX限制输入最大字符数为0,所以不等待输入,结束0AH功能调用。原因是:2.若将程序改为如下形式,设想程序执行的结果。data SEGMENT max DW 100H,?,100H DUP(?);定义为字类型data ENDScode SEGMENT ASSUME CS:code,DS:datastart:MOV AX,data;置缓冲区地址于DS:DX MOV DS,AX LEA DX,max MOV AH,0AH;调输入功能 INT 21H MOV AH,4CH;返回DOS INT 21Hcode ENDS END start结果是:不等待输入,结束0AH功能调用。00 01 00 00 00 00 00 00max0 700 00 00 00 00 00 00 008 0a 0b0f1 23 4 5 6 90c 0d0e地址内容DS:DX注意:0AH功能以字节类型应用DS:DX指向的缓冲区。并不随缓冲区类型定义的变化而变化。原因是:例 编程从键盘输入字符串,给出显示提示Please input:data SEGMENT stri DB Please Input:,$max DB 11,?,11 DUP(?)data ENDScode SEGMENT ASSUME CS:code,DS:datastart:MOV AX,data;置缓冲区地址于DS:DX MOV DS,AX LEA DX,stri MOV AH,09H;显示提示 INT 21H LEA DX,max;等待从键盘输入 MOV AH,0AH INT 21H MOV AH,4CH INT 21H code ENDS END start利用DOS 功能调用,编写小程序D:MASMDEBUG e0a09.exe-U;查看程序129F:0000 B89D12 MOV AX,129D129F:0003 8ED8 MOV DS,AX129F:0005 8D160000 LEA DX,0000129F:0009 B409 MOV AH,09129F:000B CD21 INT 21129F:000D 8D160F00 LEA DX,000F129F:0011 B40A MOV AH,0A129F:0013 CD21 INT 21129F:0015 B44C MOV AH,4C129F:0017 CD21 INT 21-D 129D:0 L20;执行程序前查看 data段内容129D:0000 50 6C 65 61 73 65 20 49-6E 70 75 74 20 3A 24 0B Please Input:$.129D:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00.-G;执行程序 Please Input:Hello!Program terminated normally-D 129 D:0 L20;执行程序后查看 data段内容 129D:0000 50 6C 65 61 73 65 20 49-6E 70 75 74 20 3A 24 0B Please Input:$.129D:0010 06 48 65 6C 6C 6F 21 0D-00 00 00 00 00 00 00 00.Hello!.-data段内存情况:striP l e a s e I n p u t:$0B06 H e l l o!0D 00 00 00 00 00 00 00 00max思考:程序中少了一个$符的后果。data SEGMENT stri DB Please Input:max DB 11,?,11 DUP(?)data ENDScode SEGMENT ASSUME CS:code,DS:datastart:MOV AX,data;置缓冲区地址于DS:DX MOV DS,AX LEA DX,stri MOV AH,09H;显示提示 INT 21H LEA DX,max;等待从键盘输入 MOV AH,0AH INT 21H MOV AH,4CH INT 21H code ENDS END startdata SEGMENT stri DB Please Input:max DB 11,?,11 DUP(?)data ENDSstriP l e a s e I n p u t:0B 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00maxB8 A8 12 8E D8 8D 16 00 00 B4 09 CD 21 8D 16 0Estart 注意:09H功能只在遇到$符才结束显示。5检测键盘状态(0BH功能)入口参数 无功能号 AH=0BH类型号 21H出口参数 AL=FFH,表示有键按下。AL=0,表示无键按下。实现功能 检测键盘状态(通过检测键盘缓冲区实现)例 利用0B功能实现按键退出循环。、continue:、MOV AH,0BH;检测键盘缓冲区是否有键按下 INT 21H CMP AL,0FFH JNZ continue;无键按下继续循环、MOV AH,4CH INT 21H有关显示器的基本知识(1)显示设备 微机中与显示直接有关的设备主要有3个:监视器,显示控制器(显示适配器)及显示存储器。9.2 显示器I/Oa常用技术参数监视器与显示适配器有两个常用技术参数。(1)分辨率。指屏幕上能显示多少点(象素)。显示的点多,分辨率就高,显示的图形质量 就好。分辨率通常表示为320200,640480等,其中第1个参数表示屏幕每行有多少点;第2个参数表示屏幕有多少行。故320X 200表示屏幕有64000个象家。(2)颜色。指屏幕能显示多少种颜色。通常有单色(黑白2色),4色,16色,256色及 256K色等。b监视器监视器用于把显示存储器中的位图数据显示到屏幕上,从而形成画面,监视器种类很多,常见的是CRT、液晶、c显示控制器 显示控制器又称显示适配器,通称显(示)卡,它是监视器与CPU之间的接口设备,其中有许多程序可访问的寄存器。对软件工作者来说,直接使用的是显示卡中的寄存器。显卡也有很多种,常见的有MDA、CGA、EGA、VDAd显示存储器显示存储器简称显存,它专门存放屏幕画面的位图数据,故又称为位图存储器或帧缓冲区或视频存储器。它虽占用内存编址但不能作内存使用。它的内容与屏幕上的点一一对应,只要把位因数据送到显存巾,监视器就自动使屏幕显示出位因数据所表示的画面。分辨率越高,色彩越多,需要的显存也越大。显示器的显示方式有两种类型:字符方式(TEXT)和图形方式(GRAPHICS)字符方式的显示单位是字符(或称方块)。屏幕按字符划分为40列25行,用坐标记为4025,或者划分为80 x25,等等。图形方式的显示单位是点(也称象素),屏幕最大坐标就是显示器的分辨率。不同的分辨率与不同的颜色可以组合出许多显示模式,把它们编成号称为模式号来描述这些显示模式,本节仅介绍与字符相关的BIOS和DOS功能调用注:在字符方式下,MDACGAEGA VGA是兼容的字符方式将屏幕划分为 m列和n行(m n),在每个网格位置上显示一个字符。8025 文本方式A0列0行79列24行B C显示屏幕是“存储器映像”的640480 图形方式640 点480点图形方式:将屏幕划分为 mn的点阵,在每个点的位置显示一个象素,在文本(单色/彩色)方式下,对应屏幕上的每个字符,在显示缓冲区中占用两个单元:一个存放ASCII码,一个存放显示属性。41H07H42H07H61H70H62H70H、显示缓冲区(显存)字符A,黑底白字字符B,黑底白字字符a,白底黑字字符b,白底黑字字符属性1、单色属性字节的含义:闪烁背景 前景亮度 7 6 5 4 3 2 1 00 正常显示1 闪烁显示0 正常亮度1 加强亮度000 黑111 白例 00000111B 或 07H 表示黑底白字,不闪烁 10000111B 或 87H 表示黑底白字,闪烁 01110000B 或70H 表示白底黑字,不闪烁16种颜色中的一种 如:0000 黑 1000 灰 1010 浅绿0100 红 BL R G B I R G B闪烁背景前景7 6 5 4 3 2 1 0有8种可以选择,如000 黑 010 绿 0 不闪烁1 闪烁2、彩色属性字节的含义:显存的大小(决定可存储多少页的字符象素)例 16KB 显存能存储:8025方式,4页(0 3),802524=16000 4025方式,8页(0 7),402528=160003、显示存储器显存的起始地址:MDA:B000:0000CGA、EGA、VGA:B800:0000光标的位置及大小 光标主要在文本方式下使用,文本位置可用光标指示。光标的高度可以改变,通常用指示光标起始位置及结束位置之差表示光标的高度。BIOS显示中断调用INT10H中的功能1可以控制光标显现或关闭,光标的大小,而功能2可以控制光标的位置1设置显示方式入口参数 AL=显示方式值 00 4025 黑白文本方式 01 4025 彩色文本方式 02 8025 黑白文本方式 03 8025 彩色文本方式 04 320320 彩色图形方式 功能号 AH=00H类型号 10H出口参数 无 实现功能 将显示方式设置为指定形式例 将显示方式设置为 8025 彩色文本方式 MOV AL,03H MOV AH,00 INT 10H2.清屏、清窗口功能入口参数 AL=0 CH=窗口左上角行号 CL=窗口左上角列号 DH=窗口右下角行号 DL=窗口右下角列号 BH=窗口属性功能号 AH=06H 或 AH=07H类型号 10H出口参数 无 实现功能 按给定属性清除指定的窗口内容例 清除屏幕显示,将其属性置为反白(白底黑字)显示。MOV AL,0;清屏功能 MOV BH,70H;白底黑字 MOV CH,0;左上角 行号MOV CL,0;左上角 列号 MOV DH,24;右下角 行号 MOV DL,79;右下角 列号 MOV AH,6;功能号 INT 10H;中断调用3.置光标位置l 光标控制开始显示的位置,计算机有专门的硬件控制光标的显示大小、位置。l 光标只在文本方式中出现,在图形方式下光标消失。0列0 行79列24行5列1列1 行2 行置光标位置 入口参数 DH=行号 DL=列号 BH=页号 功能号 AH=02H 类型号 10H 出口参数 无 实现功能 将光标设置在指定的位置例 将光标设置在2行5列的位置MOV DH,2MOV DL,5MOV BH,0MOV AH,2INT 10H0列0行79列24行5列1列1行2行DOS 3 号 从串行口输入一个字符MOV R0,#30HMOV AH,3INT 21HMOV R0,ALDOS 4 号 从串行口发送一个字符 待发送的字符放在DL 中MOV DL,AMOV AH,4INT 21H串行通信的BIOS 功能调用 14H功能号 0 初始化串行口 AH=初始化参数 DX=T

    注意事项

    本文(第九章_BIOS和DOS中断15772.pptx)为本站会员(jix****n11)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开