东华大学微机实验原理实验报告.doc

上传人:叶*** 文档编号:34972134 上传时间:2022-08-19 格式:DOC 页数:37 大小:126KB
返回 下载 相关 举报
东华大学微机实验原理实验报告.doc_第1页
第1页 / 共37页
东华大学微机实验原理实验报告.doc_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《东华大学微机实验原理实验报告.doc》由会员分享,可在线阅读,更多相关《东华大学微机实验原理实验报告.doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验一 基本程序编程和程序调试一、 实验目的1、 掌握数码转换等基本程序设计的技巧和方法。2、 熟悉DEBUG命令。3、 学会和掌握用DEBUG调试程序的方法。二、 实验设备PC机一台,装有DOS基本系统三、 实验内容及步骤用DEBUG建立、汇编和运行调试程序的操作。DEBUG是DOS系统支持的用于汇编语言源程序调试的系统软件。它共有19条命令完成相应的功能,命令及其格式可参阅附录一。(一) DEBUG操作练习1)实验调试程序程序的功能是从3500H内存单元开始建立0-15共16个数据。程序如下:地址(H)机器码(H)助记符2000BF0035MOVDI, 35002003B91000MOV

2、CX, 00102006B80000MOVAX, 000020099ESAHF200A8805MOV BYTEDI,AL200C47INC DI200D40INC AX200E27DAA200FE2F9LOOP 200A2011F4HLT2)实验步骤:(1)输入与修改 启动DOS,在DOS提示符下输入D E B U G后回车,屏幕立即显示DEBUG提示符“”,表明已进入DEBUG状态,可以执行DEBUG的各种命令。 用DEBUG中的汇编命令 “A 地址”将程序建立在内存单元中。 在提示符“”下键入 : “A 2000 ” 此时显示器上将会显示程序的段地址CS和偏移地址IP,你就可以输入以上的程

3、序了。即显示 169C :2000 键入 MOV DI, 3500 169C: 2003 MOV CX, 0010169C: 2011 HLT 用反汇编命令 “U 地址”检查程序在提示符“”下,键入 “U 2000”,将从2000内存单元开始的内容反汇编,屏幕上显示 169C:2000 BF0035 MOV DI, 3500 169C:2003 B91000 MOV CX, 0010 169C:2006 B8000 MOV AX, 0000 169C:2011 F4 HLT当发现程序有错时,可用汇编命令“A 地址”进行修改,如要修改200A单元中的指令, 则键入“A 200A” ,屏幕显示 1

4、69C:200A ,然后再键入MOV BYTEDI, AL,就把错误的程序改正了。(2)显示和修改数据用修改内存单元命令 “E 地址” 在指定内存单元中存入一个数。如要在3500为首址的单元中存入14H和25H两个数据,可在提示符“”下,键入:“ 3500”显示 169C:3500 键入14,按空格键 25,按空格键用显示内存命令 “D 地址” 检查指定单元的内容在提示符“”下,键入 “D3500”显示 1489:3500 14 25 48 02 1489:3510 * * * * 1489:3570 * * * * 若某单元内容有错则可用命令: “E 地址 ”进行修正。用显示和修改命令 “R

5、 ”或“R 寄存器名”显示寄存器或修改其内容在提示符“”下,键入 “R”显示 AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE DS=169C ES=169C SS=169C CS=169C IP=2000要修改IP的内容时,键入命令 “R IP”后, 显示 IP 2000,在2000之后键入新内容。(3)程序运行程序的运行方式有单步运行、断点运行和连续运行几种方式。单步运行 输入DEBUG跟踪命令“T”或“T=地址”或“T=地址 指定次数”,可从指定地址处运行该单元中的一条指令,以后只要连续输入“T”命令就能连续执行一条一条指令。如在提示符“”下,键入 “T=2

6、000 ”显示 :AX=0000 BX=0000 CX=001D DX-0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=169C ES=169C SS=169C CS=169C IP=2000 NV169C:2003 B91000 MOV CX, 0010断点运行用运行命令 “G=地址 地址断点 地址断点”执行指定地址的程序在提示符“”下,键入 “G=2000 2011 ”显示 169C:2011 F4 HLT 表示这段程序已经执行完毕。连续运行输入DEBUG命令“G=地址”,执行指定地址的程序(4)用显示内存命令检查运行结果在提示符“”下,键入命令 “D 地址

7、”,根据其中的内容判断程序运行是否正确。如检查以上程序执行后的结果,在提示符“”下,键入“ D 3500”,可显示169C:3500 00 01 02 03 04 15169C:3510 (二)数码转换程序及其调试1、 将ASCII码表示的十进制数转换为二进制数1)程序设计的算法及其程序十进制数据可表示为:DI代表十进制数1,2,3,9,0 上式可转换为: 由式(2)可归纳十进制数转换为二进制数的方法:从十进制的最高位Dn开始乘10加次位的操作,将结果再乘10再加下一次位,如此重复,则可求出二进制数结果来。程序流程及参考程序如图1-1。这里我们规定:被转换的ASCII码十进制数存放在3500H

8、3504H单位中。而转换结果存放在3510H3511H单元中。2)实验步骤(1)输入程序并检查无误。(2)在3500H3504H单元存入十进制数12的ASCII码,即E3500H,并输入3030303132H。(3)G=2000,运行程序,并用CTRL+C来中断程序返回监控状态。(4)用D3510来查看结果,应为:3510 0C 00(5)反复试几组数,考查程序的正确性。地址(H) 助记符 注释2000 MOV SI,3500 ;源地址2003 MOV DI,3510 ;结果地址2006 MOV BX,000A ;乘数 102009 MOV CX,0004 ;计数200C MOV AH,00

9、;AH 清零200E MOV AL,SI ;取被转换数2010 SUB AL,30 ;ASCII码变十进制数2012 IMUL BX ;高位(AX)*(BX)送AX2014 ADD AL,SI+01 ;取下一位1017 SUB AL,30 ;ASCII码减30变十进制数2019 INC SI ;源地址指针+1201A LOOP 2012 ;CX-1,若CX不等于零则继续201C MOV DI,AX ;若CX等于零则存结果201E INT 3 图1-12 将十进制数的ASCII码转换为BCD码1)程序流程和程序设从键盘输入的五位十进制数的ASCII码已存放在3500H起始的内存单元内,把它转换成

10、BCD码后,再按位分别存入350AH起始的内存单元内。若输入的不是十进制数的ASCII码,则对应存放结果的内容为“FF”。一字节ASCII码取其低四位即变为BCD码,程序流程图及考程序如图1-2所示。2)实验步骤(1) 输入程序并检查无误。(2) 在3500H3504H单元中存入五位十进制数的ASCII码,即E3500,并输入31,32,33,34,35。(3) G=2000,运行以上程序。(4) D350A,显示结果为:0000:350A 01 02 03 04 05 CC(5) 反复试几组数,考查程序的正确性。地址(H) 助记符 注释2000 MOV CX,0005;循环计数器赋初值200

11、3 MOV DI,3500;ASCII码首址2006 MOV BL,FF; 错误标志送BL2008 MOV AL,DI;送ASCII码至AL200A CMP AL,3A; 比较AL与3AH200C JNB 2014; 不低于3A则转2014200E SUB AL,30; 低于3A则取ASCII码的低四位2010 JB 2014; 低于30则转20142012 MOV BL,AL; 否则AL内容送BL,取代FF2014 MOV AL,BL; 结果或错误标志送AL2016 MOV DI+0A,AL2019 INC DI201A LOOP 2006201C INT 3图1-23 将十六位二进制数转换

12、为ASCII码表示的十进制数1)程序及其流程十六位二进制数的值域为065535,最大可转换为五位十进制数。算法:五位十进制数可表示为:Di:表示十进制数09。 因此,将十六位二进制数转换为五位ASCII码表示表示的十进制数,就是求D1D4,并将它化为ASCII码。程序流程图如图1-3所示,设源数据存于35003501H单元中,结果数存于35103514H单元中。2)实验步骤(1) 输入程序并检查无误。(2) 在35003501H单元中存放0C00,运行程序并检查结果,应看到35103514H单元中的数依次为3030303132。(3) 反复试几组数,并运行程序、观察结果。地址(H) 助记符 注

13、释2000 MOV DX,3500;取二进制数2004 MOV SI,3515; 目标首址在35102007 DEC SI2008 MOV AX,DX200A MOV DX,0000200D MOV CX,000A 2010 DIV CX; ; 除102012 XCHG AX,DX2014 ADD AL,302016 MOV SI,AL2018 CMP DX,0000201B JNE 2007201D CMP SI,3510 ; 填余下高位为02021 JZ 202A; 2023 DEC SI2024 MOV AL,302026 MOV SI,AL2028 JMP 201D202A INT 3

14、图1-34、 十六进制数转换为ASCII码1) 程序及其流程经过CPU处理后的十六进制数存放在起始地址为3500H的内存单元中,把它们转换成ASCII码之后,再分别存入起始地址为350AH的内存单元中。 从表2-1中可知,十六进制数加30H即可得到0H9H的ASCII码,而要得到AHFH的ASCII码,则需再加7H。程序流程图及参考程序如图1-4所示。2)实验步骤(1) 输入程序并检查无误。(2) 在35003501H单元中存入四位十六进制数203B,即E3500,并输入3B,20。(3) G=2000,运行以上程序(4) D350A,显示结果为:0000:350A 42 33 30 32 C

15、C输入数据与结果ASCII码对应顺序相反。(5) 反复试几组数。考查程序的正确性。地址(H) 助记符 注释2000 MOV CX,00042003 MOV DI,35002006 MOV DX,DI2008 MOV AX,DX200A AND AX,000F ;取低四位值200D CMP AL,0A; ; 判是否“0”-“9”200F JB 2013 ; 是“0”-“9”转20132011 ADD AL,07; 是“A”-“F”,加72013 ADD AL,30; 转换为ASCII码2015 MOV DI+0A,AL2018 INC DI2019 PUSH CX ;保护循环计数器内容201A

16、MOV CL,04; 移位次数送CL201C SHR DX,CL201E POP CX201F LOOP 20082021 INT 3图1-45 BCD码转换为二进制数1) 程序及其流程设四个二位十进制数的BCD码存放在起始地址为3500H的单元中,转换出的二进制数码存入起始地址为3510H的内存单元中,程序流程图及参考程序如图1-5所示。地址(H) 助记符 注释2000 MOV CX,00042003 MOV DI,35002006 MOV AL,DI2008 ADD AL,AL ;乘2200A MOV BL,AL200C ADD AL,AL ;乘2200E ADD AL,AL ;乘2201

17、0 ADD AL,BL ;乘102012 INC DI2013 MOV AH,002015 ADD AL,DI; BCD码十位与个位加2017 MOV DI+0F,AX;存结果 图1-5201A INC DI201B LOOP 2006201D INT 32) 实验步骤(1) 输入程序并检查无误。(2) 在35003507单元中存入四个十进制数(12,34,56,78)的BCD码,即E3500 输入01,02,03,04,05,06,07,08。(3) G=2000,运行以上程序。(4) D3510,显示结果为3510 0C 00 22 00 38 00 4E 00(5) 反复试几组数,考查程

18、序的正确性。四、思考题1、 图1-1程序,将一个五位十进制数转换为二进制数(十六位)时,这个十进制数最小可为多少,最大又可为多少?为什么?答:对于无符号数,这个五位十进制数最小可为10000(ASCII码为3130303030),最大可为65535(ASCII码为3635353335)。因为对于十进制数小于10000就不是五位数了,而大于65535就会 超过十六位二进制数的表示范围。2、 将一个十六位二进制数转换为ASCII码十进制数时,如何确定D1的值?答:五位十进制数可表示为:可先将这个十六位二进制数除以10,得到商和余数,余数就是D0 ,再将商除以10,得到的余数即是D1 。如此下去,求

19、得D0D4 ,再各位加上30H,就转化为ASCII码。3、 在十六进制数转换为ASCII码时,存转换结果后,为什么要把DX向右移四次?答:因为四位二进制数对应一位十六进制数,而在程序中的语句AND AX, 000F的作用是取低四位,表明是从右边开始转换,所以要把DX向右移动四位(对应十六进制中一位),以便程序循环进行。4、 自编ASCII码十六进制、十进制小数二进制、二进制BCD码的程序,并调试运行。1)ASCII码转换成十六进制ASCII码存放在起始地址为3500H的内存单元中,把它们转为成十六进制放在起始地址为3510H的内存单元中。对于一位来说,ASCII码(3039)减去30H即得到十

20、六进制数(0009),ASCII码(4146)减去30H+07H即得到十六进制数(0A0F)。ASCII 3032434138(3500H3504H) 十六进制00020C0A08 (3505H3509H)1399:2000 B90500 MOV CX,00051399:2003 BE0035 MOV SI,35001399:2006 BF0535 MOV DI,35051399:2009 8A04 MOV AL,SI1399:200B 3C3A CMP AL,3A1399:200D 7202 JB 20111399:200F 2C07 SUB AL,071399:2011 2C30 SUB

21、AL,301399:2013 8805 MOV DI,AL1399:2015 46 INC SI1399:2016 47 INC DI1399:2017 E2F0 LOOP 20091399:2019 CC INT 32)十进制小数转换为二进制数十进制13.86 转换成 二进制 0000 1101.1101 1100(D15D0,小数点位置在D8后面,小数和整数各占8位)DATASEGMENTXSDB86ZSDB13BINXDB?BINZDB?DATAENDSSTACK SEGMENTPARASTACK STACK DB 100 DUP(?)STACKENDSCODESEGMENTASSUME

22、DS:DATA,CS:CODEMAINPROCFARPUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVCX,0008HMOVBX,0000HMOVDH,XSFF1:MOVAH,00HMOVAL,DHMOVDL,100ADDAX,AXDIVDL;商在AL,余数在AHSHLBL,1MOVDH,AHCMPAL,00HJEFF2ORBL,01HFF2:LOOPFF1MOVCX,0008HMOVDH,ZSFF3:MOVAH,00HMOVAL,DHMOVDL,2DIVDLSHRBH,1MOVDH,ALCMPAH,00HJEFF4ORBH,80HFF4:LOOPFF3MOVB

23、INX,BLMOVBINZ,BHRETMAINENDPCODEENDSENDMAIN3)二进制转换为BCD码二进制数 0000 0010 0001 1000(十进制大小为536) 转换成 为4位BCD码为0000 0101 0011 0110DATASEGMENTQUANDW1000,100,10,1ERDW0218H;0000 0010 0001 1000BCDDW?DATAENDSSTACK SEGMENTPARASTACK STACK DB 100 DUP(?)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODEMAINPROCNEARPUSHDSSUBAX

24、,AXPUSHAXMOVAX,DATAMOVDS,AXXORBX,BXMOVSI,OFFSET QUANMOVCX,4MOVAX,ERFF1:PUSHCXMOVCL,4SHLBX,CLMOVDX,0DIVWORD PTRSIORBX,AXMOVAX,DXPOPCXADDSI,2LOOPFF1MOVBCD,BXRETMAINENDPCODEENDSENDMAIN实验二 程序设计和PC机上程序调试操作实验一、实验目的掌握常用程序设计的基本技巧和方法。学会和熟悉使用MASM汇编程序和LINK连接程序。掌握使用PC机上编程和调试程序的方法。二、实验设备PC机一台,装有DOS基本系统和MASM宏汇编软件

25、三、实验内容及步骤(一)按要求编写程序并在DEBUG下建立、汇编和调试程序、 四字节二进制数的加法1)程序设计要求两个字的被加数存放于3500H3503H单元,加数存于3504H3507H单元(存放格式为高位存高地址单元,低位存低地址单元),两数之和(如不超过四字节)存放于3508H350BH单元。2)实验步骤()编写程序。()在DEBUG下输入程序并检查(程序可存放于2000H8000H单元)。()在3500H3507H单元中存入被加数014527和加数146758。()运行程序后,检查3508H350BH单元中内容。()反复选择几组被加数和加数,检查结果,验证程序正确性。0BB0:2000

26、 BE0035 MOV SI,35000BB0:2003 BF0835 MOV DI,35080BB0:2006 8B04 MOV AX,SI0BB0:2008 034404 ADD AX,SI+040BB0:200B 8905 MOV DI,AX0BB0:200D 8B4402 MOV AX,SI+020BB0:2010 134406 ADC AX,SI+060BB0:2013 8905 MOV DI+2,AX0BB0:2015 CC INT 3DATASEGMENTFIRSTDD014527SECONDDD146758THIRDDD?DATAENDSSTACK SEGMENTPARASTA

27、CK STACK DB 100 DUP(?)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVAX,WORDPTRFIRSTADDAX,WORD PTRSECONDMOVWORD PTR THIRD,AXMOVAX,WORD PTR FIRST+2ADCAX,WORD PTR SECOND+2MOVWORD PTR THIRD+2,AXMOVAH,4CHINT 21HCODE ENDSEND START03 00 00 00 FE FF 00 002、数据块的搬移1)程序设计思想和要求将内存中一数据区中数据(

28、源数据块)传送到另一数据区(目的数据块)。源数据块和目的数据块区在内存中的位置有两种情况:两区重叠和不重叠,如下图所示。对于两个数据块不重叠的情况,数据的传送可从数据块的首址开始,也可从数据块的末址开始;对于两个数据块重叠的情况,则要加以分析,否则重叠部分会因搬移而遭破坏。处理方法可以是:在源数据块首址目的数据块首址时,从数据块的首址开始传送,在数据块首址目的数据块首址时,从数据块的末址开始传送。若源数据块首址存放于SI 中,目的数据块首址存放于DI 中,块字节数存放于CX中。要求设计的程序能够实现不同情况下的数据块传送。源数源据块数据目的块数据目的数块据块)实验步骤()编写程序。()在DEB

29、UG下键入程序并检查(程序可存放于2000H8000H单元)。()确定源数据块和目的数据块区不重叠时的首址,确定数据块个数为16个。并在源数据区送入任意个数据。0BB0:2000 BE0035 MOV SI,35000BB0:2003 B91000 MOV CX,00100BB0:2006 8A04 MOV AL,SI0BB0:2008 884410 MOV SI+10,AL0BB0:200B 46 INC SI0BB0:200C E2F8 LOOP 20060BB0:200E CC INT 3()运行程序后,检查目的数据区的内容。()确定源数据块和目的数据块区重叠时, 源区首址目的区首址时的

30、首址, 以及数据块个数为16个,并在源数据区送入任意个数据。运行程序后,检查目的数据区的内容。0BB0:2000 BE0C35 MOV SI,350C0BB0:2003 B91000 MOV CX,00100BB0:2006 8A04 MOV AL,SI0BB0:2008 8844F4 MOV SI-0C,AL0BB0:200B 46 INC SI0BB0:200C E2F8 LOOP 20060BB0:200E CC INT 3从350A开始输入00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15,得到()确定源数据块和目的数据块区重叠时, 源区首址

31、目的区首址时的首址, 以及数据块个数为16个,并在源数据区送入任意个数据。运行程序后,检查目的数据区的内容。0BB0:2000 BE0035 MOV SI,35000BB0:2003 B91000 MOV CX,00100BB0:2006 8A440F MOV AL,SI+0F0BB0:2009 88441B MOV SI+1B,AL0BB0:200C 4E DEC SI0BB0:200D E2F7 LOOP 20060BB0:200F CC INT 3从3500开始输入00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15,运行程序,得到:3、无序数据

32、块的递增排序)程序设计思想和要求在首址为3000H 的数据区中存放着一组无符号数, 数据的长度存于3500H单元内,要求用冒泡法对该区中的数据按递增次序排列。冒泡法的基本思想是从最后一个数(或从第一个数)开始,依次把相邻两个数比较,即第个数与第个数比较,若大则交换,否则不交换,直到个数都比较完为止。此时,其中最小数排在最前列。然后将剩下的-1个数再按前述方法进行,找到N-1个数中最小的数。以后重复进行,直到全部按序排列。)实验步骤()编写程序。()在DEBUG下键入程序并检查(程序可存放于2000H8000H单元,只要不与数据区重叠即可)。()确定数据个数并输入3500H单元中,在首址为350

33、0H的数据区中存入任意无符号数。()运行程序并检查运行结果。()反复修改数据个数和数据区中的数,运行程序、观察结果,验证程序的正确性。DATASEGMENTARRAYDB89,67,10,1,29,100,98,45COUNTEQU8FLAGDB-1DATAENDSSTACK SEGMENTPARASTACK STACK DB 100 DUP(?)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODESORT:MOVAX,DATAMOVDS,AXMOVBX,COUNTLP1:CMPFLAG,0JEEXITDECBXMOVCX,BXMOVSI,0MOVFLAG,0LP

34、2:MOVAL,ARRAYSICMPAL,ARRAYSI+1JBENEXTXCHGAL,ARRAYSI+1MOVARRAYSI,ALMOVFLAG,-1NEXT:ADDSI,1LOOPLP2JMPLP1EXIT:MOVAH,4CHINT21HCODEENDSENDSORT4、求数的平方根)程序设计思想和要求减奇数法是一种求取近似平方根和平方根的整数部分的方法。有公式:nS(2K-1)=N2=1若要求数S的平方根S, 则可以从S中减去奇数1、3、5直到减为零或不够减下一个奇数为止,然后统计减去的奇数个数,它就是S的近似平方根。被开方数为一个足够大的二进制数, 存于首址为4000H的单元内,它的方

35、根存放在以4500H为首的单元内。)实验步骤()编写程序。DATASEGMENTORG4000HSDW12345 ;3039H,开方后约为111(6FH)DB4FEH DUP(?)SQDW?DATAENDSSTACK SEGMENTPARASTACK STACK DB 100 DUP(?)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVCX,0000HMOVBX,0001HMOVAX,SLP:SUBAX,BXADDBX,2INCCXCMPAX,0000HJEEXITCMPAX,BXJLEEXITJMPLPE

36、XIT:MOVSQ,CXMOVAH,4CHINT21HCODEENDS ENDSTART()在DEBUG下输入程序并检查(程序可存放于2000H8000H单元,和数据存放单元不要重叠)。()在4000H为首的单元中存入一个任意大的数。()运行程序并检查运行结果。()反复修改被开方数,运行程序、观察结果,验证程序的正确性。5、思考题 如果二进制加数和被加数不限于四字节而为任意字节时,程序应作如何改动?答:若二进制加数和被加数为任意字节时,可以修改为如下程序:此程序的加数和被加数均为八字节,若要求任意字节的和,程序中只要赋给CX不同的值即可。DATASEGMENTFIRSTDW0003H,1111

37、H,1111H,1111HSECONDDW0FFFEH,1111H,1111H,1111HTHIRDDW4 DUP(?)DATAENDSSTACK SEGMENTPARASTACK STACK DB 100 DUP(?)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVSI,0MOVCX,3MOVAX,DATAMOVDS,AXMOVAX,FIRSTSIADDAX,SECONDSIMOVTHIRDSI,AXFF1:INCSIINCSIMOVAX,FIRSTSIADCAX,SECONDSIMOVTHIRDSI,AXLOOP FF1MOVAH,4CHINT 21HCODE ENDSEND START 修改原有的无符号数的排序程序为带符号数的排序程序。答:只要将原程序中得JBE指令换成JLE即可,程序如下:DATASEGMENTARRAYDB89,67,10,-1,29,-100,98,45COUNTEQU8FLAGDB-1DATAENDSSTACK SEGMENTPARASTACK STACK DB 100 DUP(?)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODESORT:MOVAX,DATAMOVDS,AXMOVBX,COUNTLP1:CMPFLAG,0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

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

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