计算机硬件基础-5-指令系统与汇编语言(对应教材第4章).ppt_第1页
计算机硬件基础-5-指令系统与汇编语言(对应教材第4章).ppt_第2页
计算机硬件基础-5-指令系统与汇编语言(对应教材第4章).ppt_第3页
计算机硬件基础-5-指令系统与汇编语言(对应教材第4章).ppt_第4页
计算机硬件基础-5-指令系统与汇编语言(对应教材第4章).ppt_第5页
已阅读5页,还剩153页未读 继续免费阅读

下载本文档

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

文档简介

5指令系统和汇编语言,主要内容指令的格式与分类指令的寻址方式8086汇编指令系统简介,5.1指令的格式与分类,指令中应包含的信息:运算数据的来源(源操作数)运算结果保存到何处(目的操作数)执行的操作(操作码),例如:Z=X+Y,目的操作数源操作数1操作源操作数2,想一想:指令应该包括几个部分?,5.1.1指令格式,操作码操作数,操作数,执行何种操作,目标操作数,源操作数,参加操作的数据或数据存放的地址,指令格式,指令的长度与操作码及操作数的多少和类型有关,零地址指令:操作码一地址指令:操作码操作数二地址指令:OPA1A2三地址指令:OPA1A2A3多地址指令,5.1.2指令分类,算术逻辑运算数据传送位移操作浮点运算字符串运算转移堆栈操作输入输出特权,无条件转移和条件转移调用和返回陷阱,5.2指令的寻址方式,寻址方式指令中提供操作数或操作数地址的方式操作数立即数:表征参加操作的数据本身存储器操作数:表征数据存放的地址寄存器操作数:表征数据存放在哪个寄存器中隐含操作数:表征数据隐含存放在某个寄存器中,7,立即数操作数,源操作数就是参加操作的数据本身,它们可以是8位或16位。例:MOVAX,1234HMOVBL,22H立即数无法作为目标操作数立即数可以是无符号或带符号数,其值应在允许范围内错误例:MOVAX,12345H;MOV1234H,AX,8,寄存器操作数:,表示参加运算的数存放在指令给出的寄存器中,可以是16位或8位。例:MOVAX,BXMOVDL,CH想一想:以下指令正确否?MOVAX,BLMOVDL,CX,存储器操作数,表示当前参加运算的数存放在存储器的某一个或某两个单元中表示形式:,地址值或寄存器,如:1234H表示操作数在地址为1234H的存储器单元中BX表示操作数在以BX的内容为地址的存储器单元中,指令例:MOVAX,1234HMOVBX,SI,一、立即寻址,指令中的源操作数是立即数,即源操作数是参加操作的数据本身例:MOVAX,1234H,12H,34H,AHAL,MOV,代码段,二、直接寻址1,指令中直接给出操作数的偏移地址例:MOVAX,1200H,22H,11H,1200H,偏移地址,数据段,AHAL,直接寻址2,直接寻址方式下,操作数的段地址默认为数据段,但允许段重设,即由指令定义段。例:MOVAX,ES:1200H,三、寄存器寻址,参加操作的操作数在CPU的通用寄存器中。例:MOVAX,BX,AX,BX,四、寄存器间接寻址1,参与操作的操作数存放在内存中,其偏移地址为指令中的寄存器的内容。例:MOVAX,BX,寄存器间接寻址2,例:设(BX)=1200H则执行MOVAX,BX后,22H,11H,1200H,偏移地址,AHAL,1122,代码段,MOV,寄存器间接寻址3,由寄存器间接给出操作数的偏移地址;存放偏移地址的寄存器称为间址寄存器,它们是:BX,BP,SI,DI操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器:BX,SI,DI默认在数据段BP默认在堆栈段,寄存器间接寻址4,寄存器间接寻址,基址寻址(间址寄存器为基址寄存器BX,BP)变址寻址(间址寄存器为变址寄存器SI,DI),五、寄存器相对寻址,操作数的偏移地址=寄存器的内容+位移量例:MOVAX,BX+DATA设:DS=2000H,BX=0220H,DATA=05H则:AX=20225H,六、基址、变址寻址,操作数的偏移地址为一个基址寄存器的内容加上一个变址寄存器的内容,操作数的段地址由选择的基址寄存器决定例:MOVAX,SI+BX,七、基址、变址、相对寻址,操作数的偏移地址为一个基址寄存器的内容加上一个变址寄存器的内容,再加上一个位移量。操作数的段地址由选择的基址寄存器决定例:MOVAX,BP+SI+DATA,八、隐含寻址,指令隐含了的一个或两个操作数的地址,即操作数在默认的地址中例:MULBL指令的执行:ALBLAX,5.38086汇编指令系统简介,数据传送指令算术运算指令逻辑运算指令串处理指令控制转移指令处理器控制指令,5.3.1数据传送指令,1.通用数据传送2.输入输出3.地址传送4.标志位操作,1.通用数据传送,一般数据传送指令堆栈操作指令交换指令查表转换指令字位扩展指令,特点:该类指令的执行对标志位不产生影响,一般数据传送指令,一般数据传送指令MOV格式:MOVdest,src操作:srcdest例:MOVAL,BL,一般数据传送指令,注:两操作数字长必须相同;两操作数不允许同时为存储器操作数;两操作数不允许同时为段寄存器;在源操作数是立即数时,目标操作数不能是段寄存器;IP和CS不作为目标操作数,FLAGS一般也不作为操作数在指令中出现。,一般数据传送指令,判断下列指令的正确性:MOVAL,BXMOVAX,SI05HMOVBXBP,BXMOVDS,1000HMOVDX,09HMOV1200,SI,一般数据传送指令例,将(*)的ASCII码2AH送入内存1000H开始的100个单元中:MOVDI,1000HMOVCX,64HMOVAL,2AHAGAIN:MOVDI,ALINCDI;DI+1DECCX;CX-1JNZAGAIN;CX0则继续HLT,上段程序在代码段中的存放形式,設CS=109EH,IP=0100H,则各条指令存放地址如下:CS:IP109E:0100MOVDI,1000H109E:0103MOVCX,64H109E:0105MOVAL,2AH109E:0107MOVDI,AL109E:0109INCDI109E:010ADECCX109E:010BJNZ0107H109E:010DHLT,数据段中的分布,送上2AH后数据段中相应存储单元的内容改变如下:DS:10002A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10102A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10202A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10302A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10402A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10502A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10602A2A2A2A000000000000000000000000,偏移地址DI,堆栈操作指令,掌握:有关堆栈的概念(栈顶、栈首、栈底)堆栈指令的操作原理(执行过程、执行结果),堆栈操作的原则,先进后出以字为单位,堆栈操作指令,压栈指令PUSH格式:PUSHOPRD出栈指令POP格式:POPOPRD,压栈指令PUSH,指令执行过程:(SP)(SP)-2(SP)-1操作数高字节(SP)-2操作数低字节,压栈指令PUSH,设AX=1234H,SP=1200H执行PUSHAX指令后堆栈区的状态:,1200H,堆栈段,SP-2=11FEH,12H,34H,1200H,堆栈段,12H34H,AX,入栈后,入栈前,出栈指令POP,指令执行过程:(SP)操作数低字节(SP)+1操作数高字节(SP)(SP)+2,出栈指令的操作,执行POPAX堆栈区的状态:,12H,34H,11FEH,堆栈段,代码段,PUSH,1234,AX,SP+2,堆栈操作指令说明,指令的操作数必须是16位的;操作数可以是寄存器或存储器两单元,但不能是立即数;不能从栈顶弹出一个字给CS;PUSH和POP指令在程序中一般成对出现;PUSH指令的操作方向是从高地址向低地址,而POP指令的操作正好相反。,堆栈操作指令例,PUSHAXPUSHBXPUSHWORDPTRBXPOPWORDPTRBXPOPAXPOPBX,交换指令,格式:XCHGREG,MEM/REG两操作数必须有一个是寄存器操作数不允许使用段寄存器例:XCHGAX,BXXCHG2000,CL,查表指令,格式:XLAT说明:用BX的内容代表表格首地址,AL内容为表内位移量,BX+AL得到要查找元素的偏移地址操作:BX+ALAL,查表指令例,数据段中存放有一张ASCII码转换表,设首地址为2000H,现欲查出表中第11个代码的ASCII码(设DS=4000H),查表指令例,30,31,32,.,39,41,42,.,45,46,.,42000H+0,42000H+11,0,1,2,9,A,B,E,F,查表指令例,可用如下指令实现:MOVBX,2000H;(BX)表首地址MOVAL,0BH;(AL)序号XALT;查表转换执行后得到:(AL)=42H,2.输入输出指令,专门面向I/O端口操作的指令掌握:指令的格式及操作指令的两种寻址方式指令对操作数的要求,输入输出指令,指令格式:输入指令INacc,PORT输出指令OUTPORT,acc,端口地址,累加器,指令寻址方式,直接寻址直接给出8位端口地址,可寻址256个端口间接寻址16位端口地址由DX指定,可寻址64K个端口,例,INAX,80HMOVDX,03FFHINAL,DXOUTDX,AXOUTAL,3FH,3.地址传送指令,取偏移地址指令LEALDS指令LES指令,取偏移地址指令LEA,将变量的16位偏移地址取出送目标寄存器格式:LEAREG,MEM指令要求源操作数必须是一个存储器操作数,目标操作数通常是间址寄存器。,存储器操作数,LEA指令,比较下列指令:LEASI,DATA1MOVSI,DATA1MOVBX,BXLEABX,BX,LEA指令,DATA1,12H,34H,1100H,88H,77H,BX=1100H,LEA指令在程序中的应用,将数据段中首地址为MEM1的50个字节的数据传送到同一逻辑段首地址为MEM2的区域存放。编写相应的程序段。,LEA指令在程序中的应用,开始,取源地址,取目标地址,送数据块长度到CL,传送一个字节,修改地址指针,修改计数值,计数值=0?,结束,N,Y,LEA指令在程序中的应用,LEASI,MEM1LEADI,MEM2MOVCL,50NEXT:MOVAL,SIMOVDI,ALINCSIINCDIDECCLJNZNEXTHLT,取远地址指针指令,LDSreg,MEM32LESreg,MEM32指令中源操作数是存储器某4个连续单元的偏移地址,目标操作数是间址寄存器。,LDS指令例,例:LDSDI,1200HMOVAX,DI,指令执行后:,LDS指令例,DS=6000HDI=1234HAX=2233H,12H,34H,00H,60H,1200H,数据段1,DS,DI,数据段2,33H,22H,61234H,LES指令例,LESDI,1200HMOVAX,DI,12H,34H,00H,60H,1200H,数据段,ES,DI,附加段,33H,22H,61234H,4.标志位操作指令,LAHFSAHFPUSHFPOPF,隐含操作数AH,隐含操作数FLAGS,LAHF,SAHF,LAHF;将FLAGS的低8位装入AHSAHF;执行与LAHF相反的操作,CF,PF,AF,ZF,CF,.,AH,FLAGS,D15,D0,D7,D0,PUSHF,POPF,针对FLAGS的堆栈操作指令将标志寄存器压栈或从堆栈弹出,5.3.2算术运算指令,加法运算指令减法运算指令乘法指令除法指令十进制调整指令,算术运算指令的执行大多对状态标志位会产生影响,1.加法指令,普通加法指令ADD带进位位的加法指令ADC加1指令INC加法指令对操作数的要求与MOV指令相同,ADD指令,格式:ADDOPRD1,OPRD2操作:OPRD1OPRD1+OPRD2,ADD指令的执行对全部6个状态标志位都产生影响,ADD指令例,MOVAL,78HADDAL,0A6H指令执行后6个状态标志位的状态=?,ADD指令例,01111000+1010011000011110,1,标志位状态:CF=SF=AF=ZF=PF=OF=,ADC指令,指令格式、对操作数的要求、对标志位的影响与ADD指令完全一样指令的操作:OPRD1OPRD1+OPRD2+CFADC指令多用于多字节数相加运算,INC指令,格式:INCOPRD操作:OPRDOPRD+1,常用于在程序中修改地址指针,不能是段寄存器或立即数,2.减法指令,普通减法指令SUB考虑借位的减法指令SBB减1指令DEC比较指令CMP求补指令NEG减法指令对操作数的要求与对应的加法指令相同,SUB指令,格式:SUBOPRD1,OPRD2操作:OPRD1OPRD1-OPRD2对标志位的影响与ADD指令同,SBB指令,指令格式、对操作数的要求、对标志位的影响与SUB指令完全一样指令的操作:OPRD1OPRD1-OPRD2-CFSBB指令多用于多字节数相减运算,DEC指令,格式:DECOPRD操作:OPRDOPRD1指令常用于在程序中修改计数值,其对操作数的要求与INC指令相同,应用程序例,MOVBL,2NEXT1:MOVCX,0F000HNEXT2:DECCXJNZNEXT2DECBLJNZNEXT1HLT,NEG指令,格式:NEGOPRD操作:OPRD0OPRD用0减去操作数,相当于对该操作数求补码,8/16位寄存器或存储器操作数,CMP指令,格式:CMPOPRD1,OPRD2操作:OPRD1-OPRD2指令执行的结果不影响目标操作数!,CMP指令,用途:用于比较两个数的大小,可作为条件转移指令转移的条件指令对操作数的要求及对标志位的影响与SUB指令相同,CMP指令比较原理,两个无符号数的比较:CMPAX,BX若AXBXCF=0若AXBXOF和SF状态不同AXBX,CMP指令应用例,LEABX,MAXLEASI,BUFMOVCL,20MOVAL,SINEXT:INCSICMPAL,SIJNCGOON;CF=0转XCHGSI,AL,GOON:DECCLJNZNEXTMOVBX,ALHLT,程序功能?,程序功能,MAX,BUF,XXH,XXH,XXH,找20个数中最大的数,并将其存放在MAX单元中,3.乘法指令,无符号的乘法指令MUL带符号的乘法指令IMUL,乘法指令采用隐含寻址,隐含的是存放被乘数的累加器AL或AX及存放结果的AX,DX;若运算结果的高位全为0或1,表示其为无效数据,OF=CF=0,无符号数乘法指令,格式:MULOPRD操作:OPRD为字节数AXALOPRDOPRD为16位数DXAXAXOPRD,不能是立即数,无符号数乘法指令,MULBYTEPTRBX,BX,XXH,ALXXH,AX,带符号数乘法指令,格式:IMULOPRDIMUL指令将OPRD视为带符号数,运算时若操作数为负数,要先将操作数按位取反加1,运算后再将结果按位取反加1。,带符号数乘法指令,设:AL=FEH,CL=11H,求AL与CL的乘积若为无符号数,则MULCL结果:AX=10DEH若将两操作数看作有符号数,则:IMULCL指令执行后:AX=FFDEH=-34。,4.除法指令,无符号除法指令DIVOPRD有符号除法指令IDIVOPRD,若OPRD是字节数,则执行AX/OPRD若OPRD是双字节数,则执行DXAX/OPRD指令要求被除数是除数的双倍字长,AL=商AH=余数,AX=商DX=余数,5十进制调整指令,DAA压缩BCD码加法AAA非压缩BCD码加法DAS压缩BCD码减法AAS非压缩BCD码减法,5.3.3逻辑运算指令,逻辑运算移位操作,与或非异或测试,非循环移位循环移位,逻辑移位算术移位,不带进位位的移位带进位位的移位,1.逻辑运算,逻辑运算指令对操作数的要求大多与MOV指令相同。“非”运算指令要求操作数不能是立即数;除“非”运算指令外,其余指令的执行都会使标志位OF=CF=0,“与”指令,格式:ANDOPRD1,OPRD2操作:两操作数按位相“与”,结果送目标地址,“与”指令的应用,实现两操作数相与的运算;使目标操作数的某些位不变,某些位清零;在操作数不变的情况下使CF和OF清零。,“与”指令的应用,ANDBL,BXANDAL,0FHANDAX,AX,“或”运算指令,格式:OROPRD1,OPRD2操作:两操作数按位相“或”,结果送目标地址,“或”运算指令的应用,实现两操作数相“或”的运算;使某些位不变,某些位置“1”在不改变操作数的情况下使OF=CF=0,应用程序例,ORAX,DIORCL,0FHORAX,AX,ORAL,ALJPEGOONORAL,80HGOON:.,偶校验转移(PF=1),将一个二进制数9变为字符9,?,“非”运算指令,格式:NOTOPRD操作:操作数按位取反再送回原地址指令中的操作数不能是立即数指令的执行对标志位无影响例:NOTBYTEPTRBX,“异或”运算指令,格式:XOROPRD1,OPRD2操作:两操作数相“异或”,结果送目标地址两操作数自身相异或,结果XORAX,AX,“测试”指令,格式:TESTOPRD1,OPRD2操作:执行“与”运算,但运算的结果不送回目标地址。应用:常用于测试某些位的状态,“测试”指令例,从地址为38F0H的端口中读入一个字节数,如果该数的bit1位为1,则可从38FEH端口将DATA为首地址的一个字输出,否则就不能进行数据传送。编写相应的程序段。,“测试”指令例,开始,取待输出数的偏移地址,读入状态字,测试bit1位状态,Bit1=1?,取输入口地址,取输出口地址,输出一个字,N,Y,“测试”指令例,LEASI,DATAMOVDX,38F0HWATT:INAL,DXTESTAL,02HJZWATT;ZF=1转移MOVDX,38FEHMOVAX,SIOUTDX,AX,2.移位指令,非循环移位指令循环移位指令注:移动一位时由指令直接给出;移动两位及以上,则移位次数由CL指定。,非循环移位指令,逻辑左移算术左移逻辑右移算术右移,算术左移和逻辑左移,格式:SALOPRD,1SALOPRD,CLSHLOPRD,1SHLOPRD,CL,有符号数,无符号数,逻辑左移,移动一位后,若CF与最高不相等,则OF=1;否则OF=0,逻辑右移,格式:SHROPRD,ISHROPRD,CL,0,CF,无符号数的右移,移动一位后,若次高位与最高位不相等,则OF=1;否则OF=0,算术右移,格式:SAROPRD,ISAROPRD,CL,有符号数的右移,CF,非循环移位指令的应用,左移可实现乘法运算右移可实现除法运算,循环移位指令,不带进位位的循环移位带进位位的循环移位循环移位指令的格式、对操作数的要求与非循环移位指令相同,左移ROL右移ROR,左移RCL右移RCR,不带进位位的循环移位,CF,CF,带进位位的循环移位,CF,CF,循环移位指令的应用,用于对某些位状态的测试;高位部分和低位部分的交换;与非循环移位指令一起组成32位或更长字长数的移位。,程序例,MOVSI,1000HMOVDI,3000HMOVCX,4BBB:MOVAL,SIMOVBL,ALANDAL,0FHORAL,30HMOVDI,ALINCDIMOVAL,BL,PUSHCXMOVCL,4SHRAL,CLORAL,30HMOVDI,ALINCDIINCSIPOPCXDECCXJNZBBBHLT,程序功能?,程序功能,将1000H开始存放的四个压缩BCD码转换为ASCII码存放在3000H开始的单元中去。,12H,34H,56H,78H,1000H,3000H,5.3.4串处理指令,针对数据块或字符串的操作;可实现存储器到存储器的数据传送;待操作的数据串称为源串,目标地址称为目标串。,串操作指令的特点,源串一般存放在数据段,偏移地址由SI指定。允许段重设;目标串必须在附加段,偏移地址由DI指定;指令自动修改地址指针,修改方向由DF决定。DF=0增地址方向;DF=1减地址方向;数据块长度值由CX指定;可增加自动重复前缀以实现自动修改CX内容。,串操作指令流程,取源串地址,取目标串地址,设串长度,传送一个字节或字,修改地址指针,修改串长度值,传送完否?,重复前缀,REP无条件重复REPE相等重复REPZ为零重复REPNE不相等重复REPNZ不为零重复,条件重复,CX0ZF=1,CX0ZF=0,CX0重复,串操作指令,串传送MOVS串比较CMPS串扫描SCAS串装入LODS串送存STOS,串传送指令,格式:MOVSOPRD1,OPRD2MOVSBMOVSW指令用于实现数据块的传送,常与无条件重复前缀连用。,串传送指令,对比用MOV指令和MOVS指令实现将200个字节数据从内存的一个区域送到另一个区域的程序段。,串传送指令例,用串传送指令实现200个字节数据的传送:LEASI,MEM1LEADI,MEM2MOVCX,200CLDREPMOVSBHLT,串比较指令,格式:CMPSOPRD1,OPRD2CMPSBCMPSW该指令用于两个数据块或两个字符串之间的比较;常与条件重复前缀连用,指令的执行不改变操作数,仅影响标志位。,串比较指令例,测试上例中200个字节数据是否传送正确:,LEASI,MEM1LEADI,MEM2MOVCX,200CLDREPECMPSB,JZSTOPDECSIMOVAL,SIMOVBX,SISTOP:HLT,串扫描指令,格式:SCASOPRDSCASBSCASW指令执行:AX(或AL)-OPRD该指令常用于在某个区域中寻找关键字。,目标操作数,串装入指令,格式:LODSOPRDLODSBLODSW操作:对字节:AL(DS:SI)对字:AX(DS:SI),源操作数,串装入指令,用于将内存某个区域的数据串依次装入累加器,以便显示或输出到接口。LODS指令一般不加重复前缀。,串送存指令,格式:STOSOPRDSTOSBSTOSW操作:对字节:AL(ES:DI)对字:AX(ES:DI),目标操作数,串送存指令的应用,将内存某个区域清零,区域首地址送ES:DI,串长度送CX,置方向标志DF,0送累加器AL,执行串送存指令,开始,5.3.5控制转移指令,转移指令循环控制过程调用中断控制,1.转移指令,无条件转移指令无条件转移到目标地址,执行新的指令有条件转移指令在具备一定条件的情况下转移到目标地址,转移指令的转移原理,通过修改代码段寄存器CS及指令指针IP的内容,使程序改变顺序执行的模式,转到新的目标地址执行。,无条件转移指令,指令格式:JMPOPRD无条件转移的目标地址可以是在当前代码段,也可在另一代码段,无条件转移指令,段内转移目标地址与JMP指令在同一代码段转移方式:直接转移指令中直接给出转移的目标地址间接转移由指令中的寄存器或存储器间接给出转移目标地址,无条件段内转移,直接转移:JMPLable转移目标地址:段基地址不变;偏移地址=当前IP+位移量,JMP,Label,代码段,位移量,近地址标号,无条件段内转移,间接转移:JMPBXJMPWORDPTRBX,JMP,代码段,数据段,BX=1200,XXH,XXH,IP,指令码,无条件段间转移,直接转移:JMPFARLable,远地址标号,JMP,Label,代码段1,代码段2,XXH,XXH,XXH,XXH,IP,CS,无条件段间转移,间接转移:JMPDWORDPTRBX,XXH,XXH,XXH,XXH,BX,IP,CS,JMP,指令码,代码段1,代码段2,数据段,条件转移指令,在满足一定的条件下,程序转移到目标地址继续执行;在条件转移指令之前,应有一条为条件转移指令的执行形成条件的指令(如对标志位产生影响的指令);条件转移指令均为段内短转移,即转移范围为:-128-+127,2.循环控制指令,控制程序在以当前IP为中心的-128+127范围内循环执行;循环次数由CX寄存器指定。,循环指令,无条件循环指令LOOP条件循环指令,LOOPZLOOPNZ,无条件循环指令,格式:LOOPLable循环条件:CX0LOOP指令的操作相当于:DECCXJNZLable,条件循环指令,格式:LOOPZ

温馨提示

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

评论

0/150

提交评论