汇编语言课件05其他指令_第1页
汇编语言课件05其他指令_第2页
汇编语言课件05其他指令_第3页
汇编语言课件05其他指令_第4页
汇编语言课件05其他指令_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

汇编语言课件05

其他指令汇编语言课件05

其他指令1串操作指令串操作:对内存中一个连续区域的数据(如数组、字符串等)进行传送、比较等操作。为了更好地支持这种数据串类型的操作,8086设计了串操作指令,同时还有重复前缀可以实现循环。串操作指令采用了特殊的寻址方式串操作指令串操作:对内存中一个连续区域的数据(如数组、字符串2源操作数用寄存器SI间接寻址,段址在数据段DS中,目的操作数用寄存器DI间接寻址,段址在附加段ES中每执行一次串操作,源地址指针SI和目的地址指针DI将自动修改:±1或±2对于以字节为单位的数据串(指令助记符用B结尾)操作,地址指针应该±1对于以字为单位的数据串(指令助记符用W结尾)操作,地址指针应该±2当DF=0,指针自动加(可用CLD指令清标志),当DF=1,指针自动减(可用STD指令置标志)源操作数用寄存器SI间接寻址,段址在数据段DS中,目的操作数3数据串传送指令这组串操作指令实现对数据串的传送

MOVS、存储STOS和读取LODS,可以配合REP重复前缀,它们不影响标志。串传送指令MOVS将数据段中的一个字节或字数据,传送至附加段的主存单元。MOVSB

;字节串传送:ES:[DI]←DS:[SI];然后:SI←SI±1,DI←DI±1MOVSW

;字串传送:ES:[DI]←DS:[SI];然后:SI←SI±2,DI←DI±2数据串传送指令这组串操作指令实现对数据串的传送4串存储指令STOS将AL或AX的内容存入附加段的主存单元:STOSB

;字节串存储:ES:[DI]←AL;然后:DI←DI±1STOSW

;字串存储:ES:[DI]←AX;然后:DI←DI±2串存储指令STOS将AL或AX的内容存入附加段的主存单元:5串读取指令LODS将数据段中的一个字节或字数据读到AL或AX寄存器:LODSB ;字节串读取:AL←DS:[SI];然后:SI←SI±1LODSW ;字串读取:AX←DS:[SI];然后:SI←SI±2串读取指令LODS将数据段中的一个字节或字数据读到AL或A6复前缀指令REP用在MOVS,STOS,LODS指令前,利用计数器CX保存数据串长度,可以理解为“当数据串没有结束(CX≠0),则继续传送”:REP ;每执行一次串指令,CX减1;直到CX=0,重复执行结束注意,串操作指令本身仅进行一个数据的操作,利用重复前缀才能实现连续操作,实际上与LODS联用不多。复前缀指令REP用在MOVS,STOS,LODS指令前,利用7例:将数据段的sbuf指示的1KB数据传送到附加段的dbuf缓冲区movcx,1024;

;设置数据串长度(循环次数):movsi,offsetsbuf

;SI指向数据段源缓冲区开始movdi,offsetdbuf;DI指向附加段目的缓冲区开始cld

;规定DF=0,进行地址增量repmovsb

;重复字节传送:ES:[DI]←DS:[SI];如果设置CX=512,则用REPMOVSW例:将数据段的sbuf指示的1KB数据传送到附加段的dbuf8例:将附加段64KB主存区全部设置为0cldmovdi,0movax,0movcx,32*1024 ;CX←传送次数repstosw ;重复字传送:ES:[DI]←0思考:如果不要cld行不行?例:将附加段64KB主存区全部设置为0cld思考:如果9串比较和串搜索指令这组串操作指令实现对数据串的比较CMPS和扫描(查找)SCAS。由于串比较和扫描的实质是进行减法运算,所以它们像减法指令一样影响标志。这两个串操作指令可以配合重复前缀REPE/REPZ和REPNE/REPNZ,通过ZF标志说明两数是否相等。串比较和串搜索指令这组串操作指令实现对数据串的比较10串比较指令CMPS用源数据串减去目的数据串,以比较两者间的关系:CMPSB ;字节串比较:DS:[SI]-ES:[DI];然后:SI←SI±1,DI←DI±1CMPSW ;字串比较:DS:[SI]-ES:[DI];然后:SI←SI±2,DI←DI±2串比较指令CMPS用源数据串减去目的数据串,以比较两者间的关11串扫描指令SCAS用AL/AX内容减去目的数据串,以比较两者间的关系:SCASB

;字节串扫描:AL-ES:[DI];然后:DI←DI±1SCASW;字串扫描:AX-ES:[DI];然后:DI←DI±2时间:15+1//(rep)9+15/rep+1/rep串扫描指令SCAS用AL/AX内容减去目的数据串,以比较两者12重复前缀指令REPE(或REPZ)用在CMPS、SCAS指令前,利用计数器CX保存数据串长度,同时判断比较是否相等,可以理解为“当数据串没有结束(CX≠0),并且串相等(ZF=1),则继续比较”。REPE/REPZ

;每执行一次串指令,CX减1;当CX=0或ZF=0,不再重复执行重复前缀指令REPE(或REPZ)用在CMPS、SCAS指令13重复前缀指令REPNE(或REPNZ)用在CMPS、SCAS指令前,利用计数器CX保存数据串长度,同时判断比较是否不相等,可以理解为“当数据串没有结束(CX≠0),并且串不相等(ZF=0),则继续比较”。REPNE/REPNZ

;每执行一次串指令,CX减1;只要CX=0或ZF=1,不再重复执行重复前缀指令REPNE(或REPNZ)用在CMPS、SCAS14例比较两个等长的字符串是否相同假设一个字符串string1在数据段,另一个字符串string2在附加段,都具有count字符个数。movsi,offsetstring1;leasi,string1

movdi,offsetstring2;leasi,string2

movcx,count

cld

repz cmpsb

;比较两个字符;最后判断ZF,若ZF=1,表示两个字符串相同;若ZF=0,表示两个字符串不同,SI-1的值即为第一个不同字符所在单元的地址。例比较两个等长的字符串是否相同假设一个字符串stri15例在字符串中查找字符‘i’leadi,stringmoval,‘i’movcx,count;count中是字符串的长度cldrepnzscasb最后判断ZF,若ZF=1,表示找到字符,此时,SI-1的值即为字符所在单元的地址偏移;ZF=0,表示没找到,例在字符串中查找字符‘i’leadi,st16中断中断:使CPU暂时中断正执行的程序,去处理特殊事件的操作,处理完成后应该能继续以前(被中断的)操作。中断源:发出中断请求,引起CPU中断的事件、来源。中断传送方式是CPU与外设之间通信的一种有效方法,避免了CPU反复查询状态、等待外设,提高了CPU的利用率,也提高了计算机处理各种突发事件或外部事件的能力。中断中断:使CPU暂时中断正执行的程序,去处理特殊事件的操作17例:有n个字符通过串行口1(com1)送到调制/解调器查询方式发送:cx=0si=数据区开始地址(缓冲区)cx=n?结束com1口空?是否是否lodsboutcom1口,alinccx例:有n个字符通过串行口1(com1)送到调制/解调器查询方18例:有n个字符通过串行口1(com1)送到调制/解调器中断方式发送:com1口空?中断部分数据准备结束是否否第一个数据送com1口数据传输完?后续数据送com1口计数加1中断返回是传送结束工作例:有n个字符通过串行口1(com1)送到调制/解调器中断方19外部设备中断处理过程概述每当外部设备准备好接受/提供数据时:1)向CPU发出中断请求;2)CPU暂停执行当前的程序(响应中断);3)转去执行输入/输出操作(中断服务);4)输入/输出完成后返回原程序继续执行(中断返回)。外部设备中断处理过程概述每当外部设备准备好接受/提供数据时:2080X86处理器计算机系统的中断源软件中断:由执行处理器指令引起的中断,也称内部中断。硬件中断:由计算机故障、异常事件、外部设备的I/O请求引起的中断,也称外部中断。中断优先级:根据各中断源的重要性(轻重缓急)给中断请求赋予的等级编号。当有多个中断请求发生时,按中断优先级顺序响应中断请求。80X86处理256种类型的中断,编号为0~255,称为中断类型号。不同的中断类型号标识了不同的中断源。80X86处理器计算机系统的中断源软件中断:由执行处理器指令21IBMPC的中断源(P143)IBMPC的中断源(P143)22中断的分类外部中断:非CPU内部原因产生的中断内部中断:CPU内部原因产生的中断非屏蔽中断NMI:不受IF限制,CPU必须响应可屏蔽中断INTR:CLI IF=0 关中断STI IF=1 开中断CPU错误:除法出错、溢出INTO由INT指令引起的软中断DEBUG设置的中断中断的分类外部中断:非CPU内部原因产生的中断非屏蔽中断NM23在计算机系统中,各中断源产生的中断请求是随机的,CPU如何及时响应和处理各中断请求?中断响应和处理流程中断优先级:内部中断—>非屏蔽中断—>可屏蔽中断—>单步执行CPU每执行完一条指令后都要检测是否有中断请求产生。

在计算机系统中,各中断源产生的中断请求是随机的,C24

8086/8088中断响应和处理流程YN栈顶内容依此退栈到IP,CS,FLAG(IRET指令)非屏蔽中断可屏蔽中断允许中断单步中断继续下条指令AA标志进栈置中断允许清单步标志CS进栈IP进栈根据中断号置CSIP中断处理程序INTOINTn除以0YNYN8086/8088中断响应和处理流程YN栈顶内容依此退栈25

8086/8088中断响应和处理流程YN栈顶内容依此退栈到IP,CS,FLAG(IRET指令)非屏蔽中断可屏蔽中断允许中断单步中断继续下条指令AA标志进栈置中断允许清单步标志CS进栈IP进栈根据中断号置CSIP中断处理程序INTOINTn除以0?NYNY8086/8088中断响应和处理流程YN栈顶内容依此退栈26中断向量表

当处理器接收到某个中断请求后,如何快速找到处理该中断请求的中断服务程序入口地址,以便及时地完成中断服务呢?

将主存开始的1K字节构成中断向量表(每四个字节一项,共256个,编号为0-255(00H-0FH)中断向量表当处理器接收到某个中断请求后,如何快27中断向量表每个中断类型号在中断向量表中都对应有一个中断向量中断向量占用4字节:(前两个字节)=存放中断服务程序入口地址的偏移地址(后两个字节)=存放中断服务程序入口地址的段地址中断向量表每个中断类型号在中断向量表中都对应有一个中断向量28中断入口偏移中断入口段址中断入口偏移中断入口段址中断入口偏移中断入口段址………..00000H00004H003FCH0号中断入口1号中断入口0FF号中断入口中断入口偏移中断入口段址中断入口偏移中断入口段址中断入口偏移29YN栈顶内容依此退栈到IP,CS,FLAG(IRET指令)非屏蔽中断可屏蔽中断允许中断单步中断继续下条指令AA标志进栈置中断允许清单步标志CS进栈IP进栈根据中断号置CSIP中断处理程序INTOINTn除以0?NYNYYN栈顶内容依此退栈到IP,CS,FLAG(IRET指令)非30YN栈顶内容依此退栈到IP,CS,FLAG(IRET指令)非屏蔽中断可屏蔽中断允许中断单步中断继续下条指令AA标志进栈置中断允许清单步标志CS进栈IP进栈根据中断号置CSIP中断处理程序INTOINTn除以0IP=[中断号*4]CS=[中断号*4+2]NYNYYN栈顶内容依此退栈到IP,CS,FLAG(IRET指令)非31中断嵌套问题:

当在中断处理程序过程中又发生中断,就形成了中断嵌套。中断嵌套问题:32中断处理的基本流程:CLI;关中断利用PUSH指令保护中断现场;STI;开中断…..中断处理;……用POP指令恢复现场;IRET;中断返回中断处理的基本流程:33INTn

;中断调用指令:产生n号软中断IRET

;中断返回指令:实现中断返回INTO

;溢出中断指令: ;若溢出标志OF=1,产生4号中断 ;否则顺序执行中断的有关指令INTn ;中断调用指令:产生n号软中断中断的有关指令34INT指令称为软中断指令,处理器执行到该指令时,将产生中断请求,完成指定类型的中断服务。格式:INTn(n:0-255)操作:(SP)←(SP)-2,((SP)+1,(SP))←(FR) (SP)←(SP)-2,((SP)+1,(SP))←(CS) (SP)←(SP)-2,((SP)+1,(SP))←(IP)(IP)←(n4)(CS)←(n4+2)功能:保护中断断点

按中断类型号N获取中断服务程序入口地址->CS:IP转移到中断服务程序执行INTO:等同于INT4INT指令称为软中断指令,处理器执行到该指令时,将产生中断请35IRET指令格式:IRET操作:(IP)←((SP)+1,(SP)),(SP)←(SP)+2(CS)←((SP)+1,(SP)),(SP)←(SP)+2 (FR)←((SP)+1,(SP)),(SP)←(SP)+2 恢复中断断点功能:返回到软中断指令的下一条指令(中断断点)继续执行,实现中断返回。 IRET指令恢复中断断点功能:返回到软中断指令的下一条指令(36处理器控制类指令处理器控制类指令用来控制CPU的状态,使CPU暂停、等待或空操作等NOP

;空操作指令(时间:3)HLT

;暂停指令:CPU进入暂停状态ESC6位立即数,reg/mem

;交权指令ESC:把浮点指令交给浮点处理器WAIT

;等待指令:CPU进入等待状态SEG:

;段超越前缀,即CS:、SS:、DS:、ES:LOCK

;封锁前缀:封锁总线处理器控制类指令处理器控制类指令用来控制CPU的状态,使CP37其它待介绍的指令控制转移指令其它待介绍的指令控制转移指令38汇编语言课件05

其他指令汇编语言课件05

其他指令39串操作指令串操作:对内存中一个连续区域的数据(如数组、字符串等)进行传送、比较等操作。为了更好地支持这种数据串类型的操作,8086设计了串操作指令,同时还有重复前缀可以实现循环。串操作指令采用了特殊的寻址方式串操作指令串操作:对内存中一个连续区域的数据(如数组、字符串40源操作数用寄存器SI间接寻址,段址在数据段DS中,目的操作数用寄存器DI间接寻址,段址在附加段ES中每执行一次串操作,源地址指针SI和目的地址指针DI将自动修改:±1或±2对于以字节为单位的数据串(指令助记符用B结尾)操作,地址指针应该±1对于以字为单位的数据串(指令助记符用W结尾)操作,地址指针应该±2当DF=0,指针自动加(可用CLD指令清标志),当DF=1,指针自动减(可用STD指令置标志)源操作数用寄存器SI间接寻址,段址在数据段DS中,目的操作数41数据串传送指令这组串操作指令实现对数据串的传送

MOVS、存储STOS和读取LODS,可以配合REP重复前缀,它们不影响标志。串传送指令MOVS将数据段中的一个字节或字数据,传送至附加段的主存单元。MOVSB

;字节串传送:ES:[DI]←DS:[SI];然后:SI←SI±1,DI←DI±1MOVSW

;字串传送:ES:[DI]←DS:[SI];然后:SI←SI±2,DI←DI±2数据串传送指令这组串操作指令实现对数据串的传送42串存储指令STOS将AL或AX的内容存入附加段的主存单元:STOSB

;字节串存储:ES:[DI]←AL;然后:DI←DI±1STOSW

;字串存储:ES:[DI]←AX;然后:DI←DI±2串存储指令STOS将AL或AX的内容存入附加段的主存单元:43串读取指令LODS将数据段中的一个字节或字数据读到AL或AX寄存器:LODSB ;字节串读取:AL←DS:[SI];然后:SI←SI±1LODSW ;字串读取:AX←DS:[SI];然后:SI←SI±2串读取指令LODS将数据段中的一个字节或字数据读到AL或A44复前缀指令REP用在MOVS,STOS,LODS指令前,利用计数器CX保存数据串长度,可以理解为“当数据串没有结束(CX≠0),则继续传送”:REP ;每执行一次串指令,CX减1;直到CX=0,重复执行结束注意,串操作指令本身仅进行一个数据的操作,利用重复前缀才能实现连续操作,实际上与LODS联用不多。复前缀指令REP用在MOVS,STOS,LODS指令前,利用45例:将数据段的sbuf指示的1KB数据传送到附加段的dbuf缓冲区movcx,1024;

;设置数据串长度(循环次数):movsi,offsetsbuf

;SI指向数据段源缓冲区开始movdi,offsetdbuf;DI指向附加段目的缓冲区开始cld

;规定DF=0,进行地址增量repmovsb

;重复字节传送:ES:[DI]←DS:[SI];如果设置CX=512,则用REPMOVSW例:将数据段的sbuf指示的1KB数据传送到附加段的dbuf46例:将附加段64KB主存区全部设置为0cldmovdi,0movax,0movcx,32*1024 ;CX←传送次数repstosw ;重复字传送:ES:[DI]←0思考:如果不要cld行不行?例:将附加段64KB主存区全部设置为0cld思考:如果47串比较和串搜索指令这组串操作指令实现对数据串的比较CMPS和扫描(查找)SCAS。由于串比较和扫描的实质是进行减法运算,所以它们像减法指令一样影响标志。这两个串操作指令可以配合重复前缀REPE/REPZ和REPNE/REPNZ,通过ZF标志说明两数是否相等。串比较和串搜索指令这组串操作指令实现对数据串的比较48串比较指令CMPS用源数据串减去目的数据串,以比较两者间的关系:CMPSB ;字节串比较:DS:[SI]-ES:[DI];然后:SI←SI±1,DI←DI±1CMPSW ;字串比较:DS:[SI]-ES:[DI];然后:SI←SI±2,DI←DI±2串比较指令CMPS用源数据串减去目的数据串,以比较两者间的关49串扫描指令SCAS用AL/AX内容减去目的数据串,以比较两者间的关系:SCASB

;字节串扫描:AL-ES:[DI];然后:DI←DI±1SCASW;字串扫描:AX-ES:[DI];然后:DI←DI±2时间:15+1//(rep)9+15/rep+1/rep串扫描指令SCAS用AL/AX内容减去目的数据串,以比较两者50重复前缀指令REPE(或REPZ)用在CMPS、SCAS指令前,利用计数器CX保存数据串长度,同时判断比较是否相等,可以理解为“当数据串没有结束(CX≠0),并且串相等(ZF=1),则继续比较”。REPE/REPZ

;每执行一次串指令,CX减1;当CX=0或ZF=0,不再重复执行重复前缀指令REPE(或REPZ)用在CMPS、SCAS指令51重复前缀指令REPNE(或REPNZ)用在CMPS、SCAS指令前,利用计数器CX保存数据串长度,同时判断比较是否不相等,可以理解为“当数据串没有结束(CX≠0),并且串不相等(ZF=0),则继续比较”。REPNE/REPNZ

;每执行一次串指令,CX减1;只要CX=0或ZF=1,不再重复执行重复前缀指令REPNE(或REPNZ)用在CMPS、SCAS52例比较两个等长的字符串是否相同假设一个字符串string1在数据段,另一个字符串string2在附加段,都具有count字符个数。movsi,offsetstring1;leasi,string1

movdi,offsetstring2;leasi,string2

movcx,count

cld

repz cmpsb

;比较两个字符;最后判断ZF,若ZF=1,表示两个字符串相同;若ZF=0,表示两个字符串不同,SI-1的值即为第一个不同字符所在单元的地址。例比较两个等长的字符串是否相同假设一个字符串stri53例在字符串中查找字符‘i’leadi,stringmoval,‘i’movcx,count;count中是字符串的长度cldrepnzscasb最后判断ZF,若ZF=1,表示找到字符,此时,SI-1的值即为字符所在单元的地址偏移;ZF=0,表示没找到,例在字符串中查找字符‘i’leadi,st54中断中断:使CPU暂时中断正执行的程序,去处理特殊事件的操作,处理完成后应该能继续以前(被中断的)操作。中断源:发出中断请求,引起CPU中断的事件、来源。中断传送方式是CPU与外设之间通信的一种有效方法,避免了CPU反复查询状态、等待外设,提高了CPU的利用率,也提高了计算机处理各种突发事件或外部事件的能力。中断中断:使CPU暂时中断正执行的程序,去处理特殊事件的操作55例:有n个字符通过串行口1(com1)送到调制/解调器查询方式发送:cx=0si=数据区开始地址(缓冲区)cx=n?结束com1口空?是否是否lodsboutcom1口,alinccx例:有n个字符通过串行口1(com1)送到调制/解调器查询方56例:有n个字符通过串行口1(com1)送到调制/解调器中断方式发送:com1口空?中断部分数据准备结束是否否第一个数据送com1口数据传输完?后续数据送com1口计数加1中断返回是传送结束工作例:有n个字符通过串行口1(com1)送到调制/解调器中断方57外部设备中断处理过程概述每当外部设备准备好接受/提供数据时:1)向CPU发出中断请求;2)CPU暂停执行当前的程序(响应中断);3)转去执行输入/输出操作(中断服务);4)输入/输出完成后返回原程序继续执行(中断返回)。外部设备中断处理过程概述每当外部设备准备好接受/提供数据时:5880X86处理器计算机系统的中断源软件中断:由执行处理器指令引起的中断,也称内部中断。硬件中断:由计算机故障、异常事件、外部设备的I/O请求引起的中断,也称外部中断。中断优先级:根据各中断源的重要性(轻重缓急)给中断请求赋予的等级编号。当有多个中断请求发生时,按中断优先级顺序响应中断请求。80X86处理256种类型的中断,编号为0~255,称为中断类型号。不同的中断类型号标识了不同的中断源。80X86处理器计算机系统的中断源软件中断:由执行处理器指令59IBMPC的中断源(P143)IBMPC的中断源(P143)60中断的分类外部中断:非CPU内部原因产生的中断内部中断:CPU内部原因产生的中断非屏蔽中断NMI:不受IF限制,CPU必须响应可屏蔽中断INTR:CLI IF=0 关中断STI IF=1 开中断CPU错误:除法出错、溢出INTO由INT指令引起的软中断DEBUG设置的中断中断的分类外部中断:非CPU内部原因产生的中断非屏蔽中断NM61在计算机系统中,各中断源产生的中断请求是随机的,CPU如何及时响应和处理各中断请求?中断响应和处理流程中断优先级:内部中断—>非屏蔽中断—>可屏蔽中断—>单步执行CPU每执行完一条指令后都要检测是否有中断请求产生。

在计算机系统中,各中断源产生的中断请求是随机的,C62

8086/8088中断响应和处理流程YN栈顶内容依此退栈到IP,CS,FLAG(IRET指令)非屏蔽中断可屏蔽中断允许中断单步中断继续下条指令AA标志进栈置中断允许清单步标志CS进栈IP进栈根据中断号置CSIP中断处理程序INTOINTn除以0YNYN8086/8088中断响应和处理流程YN栈顶内容依此退栈63

8086/8088中断响应和处理流程YN栈顶内容依此退栈到IP,CS,FLAG(IRET指令)非屏蔽中断可屏蔽中断允许中断单步中断继续下条指令AA标志进栈置中断允许清单步标志CS进栈IP进栈根据中断号置CSIP中断处理程序INTOINTn除以0?NYNY8086/8088中断响应和处理流程YN栈顶内容依此退栈64中断向量表

当处理器接收到某个中断请求后,如何快速找到处理该中断请求的中断服务程序入口地址,以便及时地完成中断服务呢?

将主存开始的1K字节构成中断向量表(每四个字节一项,共256个,编号为0-255(00H-0FH)中断向量表当处理器接收到某个中断请求后,如何快65中断向量表每个中断类型号在中断向量表中都对应有一个中断向量中断向量占用4字节:(前两个字节)=存放中断服务程序入口地址的偏移地址(后两个字节)=存放中断服务程序入口地址的段地址中断向量表每个中断类型号在中断向量表中都对应有一个中断向量66中断入口偏移中断入口段址中断入口偏移中断入口段址中断入口偏移中断入口段址………..00000H00004H003FCH0号中断入口1号中断入口0FF号中断入口中断入口偏移中断入口段址中断入口偏移中断入口段址中断入口偏移67YN栈顶内容依此退栈到IP,CS,FLAG(IRET指令)非屏蔽中断可屏蔽中断允许中断单步中断继续下条指令AA标志进栈置中断允许清单步标志CS进栈IP进栈根据中断号置CSIP中断处理程序INTOINTn除以0?NYNYYN栈顶内容依此退栈到IP,CS,FLAG(IRET指令

温馨提示

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

评论

0/150

提交评论