ImageVerifierCode 换一换
格式:PPTX , 页数:56 ,大小:2.17MB ,
文档编号:3468758      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3468758.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文([工学]计算机硬件技术第03章新教材4glast课件(PPT 56页).pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

[工学]计算机硬件技术第03章新教材4glast课件(PPT 56页).pptx

1、第第3 3章章第1页,共56页。第第3章:章:3.3.5 程序控制类指令程序控制类指令 程序控制类指令用于实现程序控制类指令用于实现分支、循环、分支、循环、过程过程等程序结构,是仅次于传送指令等程序结构,是仅次于传送指令的常用指令的常用指令 控制转移类指令通过控制转移类指令通过改变改变IP(和(和CS)值,值,实现程序执行顺序的改变实现程序执行顺序的改变第2页,共56页。第第3章:目标地址的寻址方式章:目标地址的寻址方式直接寻址方式直接寻址方式指令代码中提供目的逻辑地址,转移后的指令代码中提供目的逻辑地址,转移后的CS和和IP值值直接直接来自指令操作码后的目的地址操作数来自指令操作码后的目的地

2、址操作数间接寻址方式间接寻址方式目的地址从寄存器或存储单元中目的地址从寄存器或存储单元中间接间接获得获得用标号表达用标号表达用寄存器或存储器操作数表达用寄存器或存储器操作数表达第3页,共56页。第第3章:目标地址的寻址范围:段内寻址章:目标地址的寻址范围:段内寻址段内转移段内转移近转移(近转移(near)在 当 前 代 码 段在 当 前 代 码 段 6 4 K B 范 围 内 转 移范 围 内 转 移(32KB范围)范围)不需要更改不需要更改CS段地址,段地址,只要改变只要改变IP偏偏移地址移地址段内转移段内转移短转移(短转移(short)转移范围可以用一个字节表达,在段转移范围可以用一个字节

3、表达,在段内内128127范围的转移范围的转移代码段代码段代码段代码段第4页,共56页。第第3章:目标地址的寻址范围:段间寻址章:目标地址的寻址范围:段间寻址段间转移段间转移远转移(远转移(far)从当前代码段跳转到另一个代码段,从当前代码段跳转到另一个代码段,CS段地址段地址:IP偏移地址偏移地址代码段代码段代码段代码段第5页,共56页。第第3章:章:程序控制类指令分为程序控制类指令分为5类类1.无条件转移无条件转移2.调用与返回调用与返回3.条件转移条件转移4.循环转移循环转移5.中断中断第6页,共56页。第第3章:一、章:一、无条件转移指令无条件转移指令 格式:格式:JMP 目标标号目标

4、标号 ;无条件转移到目标单元无条件转移到目标单元 指令标号指令标号直接转移,段内直接转移,段内/段间段间 REG间接转移,段内间接转移,段内 (16位通用位通用)内存内存间接转移,段内间接转移,段内/段间段间 第7页,共56页。第第3章:章:1.段内直接转移段内直接转移转移的目标标号转移的目标标号直接出现在指令中直接出现在指令中格式:格式:JMP DST ;目标地址目标地址 可使用符号地址可使用符号地址 第8页,共56页。第第3章:章:1.段内直接转移段内直接转移 若转移范围若转移范围128127 段内直接短转移段内直接短转移符号地址前加操作符符号地址前加操作符SHORT格式格式:JMP SH

5、ORT DST 若转移范围为整个若转移范围为整个CS段内任一位置(段内任一位置(+32KB)段内直接近转移段内直接近转移 符号地址前加操作符符号地址前加操作符NEAR PTR格式:格式:JMP NEAR PTR DST 可以省略可以省略第9页,共56页。第第3章:章:1.段内直接转移段内直接转移例:例:JMP 2000H ;直接转移到直接转移到IP+2000H去执行指去执行指令令JMP SHORT LPI ;段内短转移,转向符号地址段内短转移,转向符号地址 LPI处处JMP NEAR PTR KKK ;段内近转移,转向符段内近转移,转向符 号地址号地址KKK处处 第10页,共56页。第第3章:

6、章:2.段内间接转移段内间接转移格式:格式:JMP DST;寄存器寄存器IPREG 内存单元内存单元IP(EA+1),(EA)例:例:JMP BX JMP WORD PTR BX+25H若若(DS)=2000H,(BX)=0100H(20125H)=34H,(20126H)=12H则第一条指令执行的结果是则第一条指令执行的结果是:IP=0100H 第二条指令执行的结果是第二条指令执行的结果是:IP=1234H第11页,共56页。第第3章:章:3.段间直接转移段间直接转移JMP FAR PTR DST ;IPDST的段内偏移地址的段内偏移地址 CSDST所在段的段地址所在段的段地址 直接给直接给

7、seg16:offset16数值表达式数值表达式 符号地址前加符号地址前加FAR PTR例例1:DST用数值表达式表示用数值表达式表示JMP F000H:005BH;可省略可省略FAR属性说明属性说明 CSF000H,IP005BH第12页,共56页。第第3章:章:3.段间直接转移段间直接转移例例2:DST用符号地址表示用符号地址表示CSEG1 SEGMENT JMP FAR PTR PROGCSEG1 ENDSCSEG2 SEGMENTPROG:.CSEG2 ENDS第13页,共56页。第第3章:章:4.段间间接转移段间间接转移格式:格式:JMP DWORD PTR DST ;IP(EA)双

8、字数据双字数据 CS(EA+2)例:例:JMP DWORD PTR BX若若(DS)=2000H,(BX)=0100H(20100H)=1000H,(20102H)=4A00H则执行后:则执行后:IP=1000H,CS=4A00H 程序从程序从4B000H单元开始继续执行指令。单元开始继续执行指令。请问段间间接转移可以用请问段间间接转移可以用REG吗?吗?JMP指令不影响指令不影响FR第14页,共56页。第第3章:二、子程序指令(调用与返回)章:二、子程序指令(调用与返回)子程序是完成特定功能的一段程序子程序是完成特定功能的一段程序当主程序(调用程序)需要执行这个功能时,当主程序(调用程序)需

9、要执行这个功能时,采用采用CALL调用指令转移到该子程序的起始调用指令转移到该子程序的起始处执行处执行当运行完子程序功能后,采用当运行完子程序功能后,采用RET返回指令返回指令回到主程序继续执行回到主程序继续执行演示演示 转移转移指令指令有去无回有去无回 子程序子程序调用需要返回调用需要返回,其中利用堆栈保存返回地其中利用堆栈保存返回地址址第15页,共56页。第第3章:章:1.子程序调用指令子程序调用指令CALLCALL指令分成指令分成4种类型(类似种类型(类似JMP)CALL label;段内、直接;段内、直接CALL r16/m16;段内、间接;段内、间接CALL far ptr labe

10、l;段间、直接;段间、直接CALL far ptr mem;段间、间接;段间、间接注意:注意:CALL指令不采用段内直接指令不采用段内直接短短调用方式调用方式第16页,共56页。第第3章:章:1.子程序调用指令子程序调用指令CALLCALL指令需要保存返回地址:指令需要保存返回地址:n段内调用段内调用入栈偏移地址入栈偏移地址IPSPSP2,SS:SPIPn段间调用段间调用入栈偏移地址入栈偏移地址IP和段地址和段地址CSSPSP2,SS:SPCSSPSP2,SS:SPIP第17页,共56页。第第3章:章:段内直接调用段内直接调用 目标地址在指令中给出目标地址在指令中给出格式:格式:CALL NE

11、AR PTR DST ;SPSP2 SP+1,SP原原IP进栈进栈 IP子程序偏移地址子程序偏移地址 ;子程序子程序 入口地址入口地址 装入装入其中,其中,NEAR PTR可省略可省略 DST子程序名子程序名 或子程序首址或子程序首址 第18页,共56页。第第3章:章:段内间接调用段内间接调用格式:格式:CALL NEAR PTR DST SPSP2 SP+1,SP原原IP IP(EA);转向子程序入口转向子程序入口 DST REG 内存单元内存单元例:例:CALL BXCALL WORD PTR BX 第19页,共56页。第第3章:章:段间直接调用段间直接调用格式:格式:CALL FAR P

12、TR DST ;SP SP-2其中:其中:DST为另一为另一 SP+1,SP 原原CS段中某子程序的段中某子程序的 SP SP-2标号(或入口地标号(或入口地 SP+1,SP 原原IP址址 IP 偏移地址偏移地址 ;子程序入口子程序入口 CS段地址段地址 地址装入地址装入例:例:CALL 1000H:0100H ;IP=0100H CS=1000H CALL FAR PTR SUBPROC 第20页,共56页。第第3章:章:段间间接调用段间间接调用格式:格式:CALL DWORD PTR DST ;SP SP-2 SP+1,SPCS SPSP-2 SP+1,SPIP IP(EA)CS(EA+2

13、)例:例:CALL DWORD PTR DI ;IPDI CSDI+2第21页,共56页。第第3章:章:CALL 指令对标志位无影响指令对标志位无影响 实际应用中,实际应用中,较多采用直接寻址方式较多采用直接寻址方式,DST为调用为调用的子程序的子程序(过程过程)名。名。如:如:CALL NEAR PTR 子程序子程序(过程过程)名名CALL FAR PTR 子程序子程序(过程过程)名名第22页,共56页。第第3章:章:2.RET 返回指令返回指令 段内返回段内返回当过程被定义为当过程被定义为NEAR时时 格式:格式:RET ;IP SP+1,SP ;断点出栈断点出栈 SPSP+2第23页,共

14、56页。第第3章:章:2.RET 返回指令返回指令 段间返回段间返回当过程被定义为当过程被定义为FAR时时格式:格式:RET;IP SP+1,SP SP SP+2 CS SP+1,SP SP SP+2 差别:差别:段内返回代码为段内返回代码为 C3H(或(或C2H)段间返回代码为段间返回代码为 CBH(或(或CAH)第24页,共56页。第第3章:章:2.RET 返回指令返回指令可归纳为可归纳为:RET ;近(近(NEAR)IP断点(偏)出栈断点(偏)出栈 SP SP+2 远(远(FAR)CS:IP 断点出栈断点出栈 SP SP+4第25页,共56页。第第3章:章:2.RET 返回指令返回指令R

15、ET n 带立即数返回带立即数返回 ;RET SPSP+nn16位立即数,或数值表达式,称为弹出位立即数,或数值表达式,称为弹出 (POP)值。值。例:例:;子程序;子程序 MOV AX,N1 PUSH AX PROG-A PROC NEAR MOV AX,N2 PUSH AX RET 4 CALL PROG-A PROG-A ENDP MOV SUM,AX 第26页,共56页。第第3章:例:十六进制转换为章:例:十六进制转换为ASCII码的子程序码的子程序;子程序:;子程序:将将DLDL低低4 4位的一位位的一位1616进制数进制数转换转换成成ASCIIASCII码码htoaschtoasc

16、procprocand dl,0fhand dl,0fh;只取;只取DLDL的低的低4 4位位or dl,30hor dl,30h;DLDL高高4 4位变成位变成3 3cmp dl,39hcmp dl,39h;是;是0 09 9,还是,还是0Ah0Ah0Fh?0Fh?jbe htoendjbe htoend;是;是0 09 9,转移,转移add dl,7add dl,7;是;是0Ah0Ah0Fh0Fh,加上,加上7 7htoend:htoend:retret;子程序返回;子程序返回htoaschtoascendpendp;主程序:调用;主程序:调用子程序子程序mov dl,28hcall ht

17、oasc第27页,共56页。第第3章:三、章:三、条件转移指令条件转移指令条件转移指令条件转移指令Jcc根据指定的条件确定程序根据指定的条件确定程序是否发生转移。其通用格式为:是否发生转移。其通用格式为:Jcc label;条件满足条件满足,发生转移发生转移;装入新的;装入新的IP;否则,顺序执行否则,顺序执行label是一个标号、一个是一个标号、一个8位位移量,位位移量,Jcc只支持段内直接短转移只支持段内直接短转移(-128127)第28页,共56页。第第3章:章:Jcc指令的分类指令的分类Jcc指令不影响标志,但要利用标志(指令不影响标志,但要利用标志(表表310)根据利用的标志位不同,

18、分成三种情况:根据利用的标志位不同,分成三种情况:判断单个标志位状态判断单个标志位状态 比较无符号数高低比较无符号数高低 比较有符号数大小比较有符号数大小第29页,共56页。第第3章:章:1.判断单个标志位状态判断单个标志位状态 JZ/JE和和JNZ/JNE利用零标志利用零标志ZF,判断结果是否为零(或相等),判断结果是否为零(或相等)JS和和JNS利用符号标志利用符号标志SF,判断结果是正是负,判断结果是正是负 JO和和JNO利用溢出标志利用溢出标志OF,判断结果是否产生溢出,判断结果是否产生溢出 JP和和JNP利用奇偶标志利用奇偶标志PF,判断结果中,判断结果中“1”的个数是偶是奇的个数是

19、偶是奇 JC和和JNC利用进位标志利用进位标志CF,判断结果是否进位或借位,判断结果是否进位或借位第30页,共56页。第第3章:章:1.判断单个标志位状态判断单个标志位状态 适用于:测试某种运算结果,并根据不同适用于:测试某种运算结果,并根据不同的状态标志产生程序分支,以便做不同的的状态标志产生程序分支,以便做不同的处理。处理。第31页,共56页。第第3章:章:例例1:ADD AX,BXJC TOO_BIG;若加法有进位转至若加法有进位转至TOO-BIG 处理处理SUB AL,BLJZ ZERO;若减法结果为若减法结果为0,转至转至ZERO处处 理理第32页,共56页。第第3章:例题章:例题

20、判断单个标志位状态判断单个标志位状态题目:题目:将将AX中存放的无符号数除以中存放的无符号数除以2,如,如果是奇数则加果是奇数则加1后除以后除以2问题:问题:如何判断如何判断AX中的数据是奇数还是偶中的数据是奇数还是偶数?数?解答:解答:判断判断AX最低位是最低位是“0”(偶数),(偶数),还是还是“1”(奇数)。可以用位操作类指令(奇数)。可以用位操作类指令1:用逻辑与指令将除最低位外的其他位变成用逻辑与指令将除最低位外的其他位变成0,保留最低位,保留最低位不变。判断这个数据是不变。判断这个数据是0,AX就是偶数;否则,为奇数就是偶数;否则,为奇数2:将最低位用移位指令移至进位标志,判断进位

21、标志是将最低位用移位指令移至进位标志,判断进位标志是0,AX就是偶数;否则,为奇数就是偶数;否则,为奇数第33页,共56页。第第3章:章:2.比较无符号数高低比较无符号数高低无符号数的大小用高(无符号数的大小用高(Above)、低)、低(Below)表示,利用)表示,利用CF、ZF标志确定标志确定JB(JNAE):目的操作数低于源操作数):目的操作数低于源操作数JNB(JAE):目的操作数不低于源操作数):目的操作数不低于源操作数JA(JNBE):目的操作数高于源操作数):目的操作数高于源操作数JNA(JBE):目的操作数不高于源操作数):目的操作数不高于源操作数第34页,共56页。第第3章:

22、章:3.比较有符号数大小比较有符号数大小判断有符号数的大(判断有符号数的大(Greater)、小)、小(Less),),OF、SF、ZF标志确定标志确定JL(JNGE):目的操作数小于源操作数):目的操作数小于源操作数JNL(JGE):目的操作数不小于源操作数):目的操作数不小于源操作数JG(JNLE):目的操作数大于源操作数):目的操作数大于源操作数JNG(JLE):目的操作数不大于源操作数):目的操作数不大于源操作数第35页,共56页。第第3章:章:3.比较有符号数大小比较有符号数大小 例:例:MOV AL,0FEH CMP AL,01H JG GREATER 测试两数是否相等,均可以用测

23、试两数是否相等,均可以用JE/JZ 或或JNE/JNZ 条件转移指令对标志位无影响。条件转移指令对标志位无影响。第36页,共56页。第第3章:例章:例 求较大值求较大值cmp ax,bx;比较比较AX和和BXjae next;若若AXBX,转移,转移xchg ax,bx;若若AXBX,交换,交换next:mov wmax,ax第37页,共56页。第第3章:例章:例 求符号数的最大值求符号数的最大值设数据区设数据区1000H开始的区域中开始的区域中,存放着存放着50个字节的符号个字节的符号数。要求找出其中最大的一个数并存到数。要求找出其中最大的一个数并存到0FFFH单元单元。MOV BX,100

24、0H MOV AL,BX MOV CX,31H(49)L1:INC BX CMP AL,BX JGE L2 MOV AL,BX 多次重复操作多次重复操作 L2:DEC CX JNE L1 MOV BX,0FFFH MOV BX,AL第38页,共56页。第第3章:四、循环指令章:四、循环指令LOOP label;循环指令循环指令;首先;首先CXCX1;然后判断;若;然后判断;若CX0,转移,转移JCXZ label;为为0循环指令循环指令:如果:如果CX0,则转移,则转移label操作数采用段内直接短转移操作数采用段内直接短转移(-128+127)还有还有LOOPZ/LOOPE和和LOOPNZ/

25、LOOPNE两条指令两条指令dec cxjnz label第39页,共56页。第第3章:章:1.LOOP 指令指令格式格式:LOOP 目标标号目标标号 ;CXCX-1,CX 0则循环则循环DEC CX JNZ 目标标号目标标号 Y N CX循循环环次次数数 循循环环体体 CXC CX X-1 1 CX0 0 第40页,共56页。第第3章:章:1.LOOP 指令指令 MOV CX,NBEGIN:循环体循环体 DEC CX JNZ BEGIN MOV CX,NBEGIN:循环体 LOOP BEGIN 第41页,共56页。第第3章:例章:例 LOOP 指令指令例例1:有一个首地址为有一个首地址为AR

26、RAY的的M个字的数组个字的数组,试编写一试编写一个程序求出该数组的内容之和个程序求出该数组的内容之和(不考虑溢出不考虑溢出),并把结,并把结果存入果存入TOTAL中。中。MOV CX,M;字数组个数送入字数组个数送入CX MOV AX,0 LEA SI,ARRAYSTART_LOOP:ADD AX,SI ;将一个数组元素和送入将一个数组元素和送入AX ADD SI,2;修改数组指针修改数组指针 LOOP START_LOOP ;若若CX不为不为0则重复循环则重复循环 MOV TOTAL,AX;结果送结果送TOTAL第42页,共56页。第第3章:循环指令章:循环指令2.LOOPE/LOOPZ指

27、令指令有附加条件的循环指令有附加条件的循环指令格式格式:LOOPE/LOOPZ 目标标号目标标号 ;CXCX-1,若若CX0且且ZF=1,则循环则循环 3.LOOPNE/LOOPNZ指令指令格式格式:LOOPNE/LOOPNZ 目标标号目标标号 ;CXCX-1,若若CX0且且ZF=0,则循环则循环4.JCXZ指令指令格式格式:JCXZ 目标标号目标标号;CX=0,则循环则循环 不影响不影响CX的内容的内容第43页,共56页。第第3章:例章:例 LOOPZ 指令指令 检查检查64kB内存单元的读写性能内存单元的读写性能.为此为此,依次向每个内存单元写入指依次向每个内存单元写入指定的数据定的数据0

28、1010101B,然后读出来进行比较然后读出来进行比较,若正确则转入处理正确的若正确则转入处理正确的程序段程序段,否则转入出错处理程序段否则转入出错处理程序段.MOV CX,0000H ;设置计数器初值设置计数器初值 MOV BX,0000H ;设置地址指针设置地址指针 MOV AL,01010101B ;校验码校验码55HAGAIN:MOV BYTE PTR BX,AL INC BX CMP BYTE PTRBX-1,AL LOOPZ AGAIN JCXZ OKERROR:出错处理出错处理OK:正确处理正确处理第44页,共56页。第第3章:章:3.3.6 处理器控制类指令处理器控制类指令处理

29、器控制类指令用来控制处理器控制类指令用来控制CPU的状态,使的状态,使CPU暂暂停、等待或空操作等停、等待或空操作等 包括三种类型包括三种类型:1.标志操作指令(第标志操作指令(第17条)条)2.外部同步指(第外部同步指(第811条)条)3.空操作指令(第空操作指令(第12条)条)第45页,共56页。第第3章:章:3.3.6 处理器控制类指令处理器控制类指令处理器控制类指令用来控制处理器控制类指令用来控制CPU的状态,使的状态,使CPU暂停、暂停、等待或空操作等等待或空操作等1.进位标志操作进位标志操作 CLC;CF0 这三条指令常和这三条指令常和 STC;CF1 ADC,RCL,RCR CM

30、C;CFCF 指令配合使用指令配合使用第46页,共56页。第第3章:一、标志操作指令章:一、标志操作指令2.方向标志操作方向标志操作 CLD ;DF0 STD ;DF1 第47页,共56页。第第3章:一、标志操作指令章:一、标志操作指令3.中断标志操作中断标志操作 CLI ;IF0 以控制以控制CPU是否响应是否响应 STI ;IF1 可屏蔽中断可屏蔽中断INTR引引 线上出现的外部中线上出现的外部中 断请求断请求 CLI禁止禁止 CPU响应响应 STI允许允许第48页,共56页。第第3章:二章:二.、同步控制类同步控制类1.ESC 交权(处理机脱离指令)交权(处理机脱离指令)3.WAIT 等

31、待等待4.LOCK 封锁总线封锁总线 三三.其他控制类指令其他控制类指令暂停:暂停:HLT空操作:空操作:NOP 等同于等同于“xchg ax,ax”指令指令第49页,共56页。目的地址相对寻址方式目的地址相对寻址方式第50页,共56页。目的地址寄存器段内间接寻址方式目的地址寄存器段内间接寻址方式第51页,共56页。目的地址存储器段内间接寻址方式目的地址存储器段内间接寻址方式第52页,共56页。目的地址段间直接寻址方式目的地址段间直接寻址方式第53页,共56页。目的地址存储器段间间接寻址方式目的地址存储器段间间接寻址方式第54页,共56页。主程序与子程序主程序与子程序CALL label主程序主程序RET子程序子程序回到回到CALL指令后的指令处指令后的指令处返回地址返回地址第55页,共56页。主程序与中断服务程序主程序与中断服务程序主程序主程序IRET中断服务程序中断服务程序断点断点中断请求中断请求中断请求可以来自处理器外部的中断源,中断请求可以来自处理器外部的中断源,也可以由处理器执行指令引起:也可以由处理器执行指令引起:例如执行例如执行INT i8指令。指令。第56页,共56页。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|