匯編語言 課件 第6章子程序結(jié)構(gòu)_第1頁
匯編語言 課件 第6章子程序結(jié)構(gòu)_第2頁
匯編語言 課件 第6章子程序結(jié)構(gòu)_第3頁
匯編語言 課件 第6章子程序結(jié)構(gòu)_第4頁
匯編語言 課件 第6章子程序結(jié)構(gòu)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第6章子程序結(jié)構(gòu)(jiégòu)講授(jiǎngshòu)要點子程序的定義、調(diào)用與返回。子程序的參數(shù)傳遞方法。精品資料2/4/202380x86匯編語言程序設(shè)計子程序調(diào)用(diàoyòng)和返回指令:code1segmentmainprocfar……

callfarptrsubp……retmainendpcode1endscode2segmentsubpprocfar……

retsubpendpcode2ends段間調(diào)用(diàoyòng)和返回codesegmentmainprocfar……callsubp……retmainendpsubpprocnear……

retsubpendpcodeends段內(nèi)調(diào)用和返回精品資料2/4/202380x86匯編語言程序設(shè)計CALL調(diào)用指令段內(nèi)直接近調(diào)用:CALLDST執(zhí)行操作:(SP)←(SP)-2((SP)+1,(SP))←(IP)(IP)←(IP)+16位位移(wèiyí)量段內(nèi)間接近調(diào)用:CALLDST執(zhí)行操作:(SP)←(SP)-2((SP)+1,(SP))←(IP)(IP)←(EA)精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計段間直接遠調(diào)用:CALLDST執(zhí)行操作:(SP)←(SP)-2((SP)+1,(SP))←(CS)(SP)←(SP)-2((SP)+1,(SP))←(IP)(IP)←偏移(piānyí)地址(CS)←段地址段間間接遠調(diào)用:CALLDST執(zhí)行操作:(SP)←(SP)-2((SP)+1,(SP))←(CS)(SP)←(SP)-2((SP)+1,(SP))←(IP)(IP)←(EA)(CS)←(EA+2)精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計RET返回指令段內(nèi)近返回:RET執(zhí)行操作(cāozuò):(IP)←((SP)+1,(SP))(SP)←(SP)+2段內(nèi)帶立即數(shù)近返回:RETEXP段間遠返回:RET執(zhí)行操作(cāozuò):(IP)←((SP)+1,(SP))(SP)←(SP)+2(CS)←((SP)+1,(SP))(SP)←(SP)+2段間帶立即數(shù)遠返回:RETEXP精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計例:帶立即(lìjí)數(shù)返回(SP)堆棧(duīzhàn)段codesegmentmainprocfar……pushaxpushbxpushcxcallsub……retmainendpsubprocnear……ret6subendpcodeends(IP)(cx)(bx)(ax)(SP)(SP)精品資料2/4/202380x86匯編語言程序設(shè)計6.1子程序概述

6.1.1過程(guòchéng)的定義過程定義由PROC與ENDP偽指令實現(xiàn),形式如下(rúxià): 過程名PROC[NEAR|FAR] <過程體> 過程名ENDP1.過程名在整個程序中必須是唯一的。2.過程名本質(zhì)上與標號一樣,也具有3種屬性:段地址、偏移地址和類型(NEAR或FAR)。3.PROC后用關(guān)鍵字NEAR、FAR或空,以表示過程的類型(缺省為NEAR)。精品資料2/4/202380x86匯編語言程序設(shè)計6.1.2過程調(diào)用(diàoyòng)和返回1.過程調(diào)用和返回指令(1)CALL:過程調(diào)用與JMP指令類似,CALL指令包括下列4種調(diào)用方式:段內(nèi)直接調(diào)用(Intrasegment/DirectCall)段間直接調(diào)用(Intersegment/DirectCall)段內(nèi)間接(jiànjiē)調(diào)用(Intrasegment/IndirectCall)段間間接(jiànjiē)調(diào)用(Intersegment/IndirectCall)段內(nèi)調(diào)用在同一代碼段內(nèi)進行,又稱近(Near)調(diào)用;段間調(diào)用可以在不同代碼段之間進行,又稱遠(Far)調(diào)用。精品資料2/4/202380x86匯編語言程序設(shè)計語法格式: CALLProcName 段內(nèi)直接調(diào)用:IP進棧,IP=label的偏移地址; 段間直接調(diào)用:CS:IP進棧,CS:IP=label的分段地址

功能描述:(1)返回地址進棧。 遠調(diào)用:CS與IP(下一條指令(zhǐlìng)的地址)依次進棧。 近調(diào)用:IP(下一條指令(zhǐlìng)的16位偏移地址)進棧。(2)轉(zhuǎn)移到過程的第1條指令(zhǐlìng)去執(zhí)行。 遠調(diào)用:根據(jù)操作數(shù),將32位地址送CS:IP。 近調(diào)用:根據(jù)操作數(shù),將16位偏移地址送IP。對標志位的影響:無。精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計(2)RET指令RET(Return):過程返回語法格式: RET ;近返回或遠返回 RET imm16 ;近返回或遠返回,并調(diào)整堆棧:SP=SP+imm16功能描述(miáoshù): RET:返回地址出棧,從而實現(xiàn)轉(zhuǎn)移到返回地址處。其中, 遠返回:POP1個雙字到CS:IP。 近返回:POP1個字到IP。 RETimm16:在返回地址出棧后,CPU立即將imm16加到堆棧指針SP。這種機制用來在返回前將參數(shù)從棧中移出。對標志位的影響:無。說明:RET由匯編程序根據(jù)其所在過程的類型(NEAR或FAR)決定是近返回還是遠返回。缺省為近返回。精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計2.使用(shǐyòng)過程應注意的問題在過程體內(nèi)必須有一條RET指令被執(zhí)行到。如果在過程內(nèi)沒有執(zhí)行到RET或其它轉(zhuǎn)移指令,程序?qū)⒗^續(xù)執(zhí)行ENDP后的指令。正確選擇過程的類型。通?;谙铝性瓌t:若過程只在同一代碼段中被調(diào)用,則定義為NEAR。若過程可以在不同代碼段中被調(diào)用,則定義為FAR。通常要保證RET指令執(zhí)行前,棧頂內(nèi)容正好是返回地址。注意保護相關(guān)寄存器的值。通常,除了作為返回參數(shù)的寄存器外,過程不應改變其它寄存器的值??梢詫⑦^程定義放在單獨的代碼段中。若過程定義與主程序處于同一代碼段,則要保證其只有被調(diào)用時,才會執(zhí)行。精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計3.保存(bǎocún)和恢復寄存器例:SUBTPROCNEARPUSHAXPUSHBXPUSHCX……POPCXPOPBXPOPAXRETSUBTENDP精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計【例6.1】分析下列程序(chéngxù),描述它的功能。dsegSEGMENTbufDB80,81DUP(0)dsegENDSssegSEGMENTSTACKDW64DUP(0)ssegENDScsegSEGMENTASSUMECS:cseg,DS:dseg,SS:sseg精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計crPROC(NEAR)MOVAH,2MOVDL,13INT21HMOVDL,10INT21HRETcrENDP精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計main:MOVAX,dsegMOVDS,AXLEADX,bufMOVAH,10INT21H;輸入一個符號串CALLcrMOVAH,1INT21H;輸入一個字符(zìfú)MOVBL,AL;用BL保存讀入的字符(zìfú)LEASI,BUF+2MOVCX,BUF+1精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計lab2:MOVDL,[SI]CMPDL,BLJZlab1;等于(děngyú)第2次輸入的符號則轉(zhuǎn)MOVAH,2INT21HINCSILOOPlab2lab1:MOVAH,4CHINT21HcsegENDSENDmain精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計【例6.2】編寫一個子程序,對一個無符號的字型數(shù)組的各元素(yuánsù)求和。在調(diào)用子程序之前,已把數(shù)組的段地址放在DS中,起始偏移地址放在寄存器SI中,數(shù)組元素(yuánsù)個數(shù)(>0)放在CX中。要求子程序把計算結(jié)果以雙字的形式存放,高位放在DX中,低位放在AX中。sumPROCNEARPUSHBX;保護(bǎohù)用到的寄存器BXXORAX,AXMOVDX,AX;求和前先把存放結(jié)果的DX,AX清0MOVBX,AX精品資料2/4/202380x86匯編語言程序設(shè)計s1:ADDAX,[BX+SI];把一個(yīɡè)元素加到AX中ADCDX,0;若有進位,DX加1INCBXINCBX;BX加2,指向數(shù)組的下一元素LOOPs1POPBX;恢復寄存器BX的值RETsumENDP精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計6.2過程(guòchéng)的參數(shù)傳遞參數(shù)的分類:入口參數(shù):由調(diào)用者向過程傳遞的數(shù)據(jù),作為(zuòwéi)過程的輸入?yún)?shù)。出口參數(shù):由過程向調(diào)用者返回的數(shù)據(jù),作為(zuòwéi)過程的輸出參數(shù)。根據(jù)問題的需要,過程可以只有入口參數(shù)或只有出口參數(shù),也可以二者兼有。對于過程與調(diào)用者之間的參數(shù)傳遞,可根據(jù)傳遞的數(shù)據(jù)量,選擇采用寄存器、變量或堆棧等方式。由于過程是相對獨立的功能塊,因此,在定義過程時,通常要加上適當?shù)淖⑨?,主要包括功能、入口參?shù)與出口參數(shù)等。精品資料2/4/202380x86匯編語言程序設(shè)計6.2.1用變量傳遞(chuándì)參數(shù)在程序中定義全局變量,如放在數(shù)據(jù)(shùjù)段,過程直接按名訪問該變量。過程直接以變量作為參數(shù),雖然方便,但通用性較差。

【例6.3】編寫一個子程序,以放在DS段中year的公元年份為入口參數(shù),判斷該年是否為閏年。另有一個應用程序,它已定義了一個字節(jié)型數(shù)組t,依次存放著12個月的每月天數(shù),其中2月份的天數(shù)是28。應用程序已經(jīng)在DS段中存放了年份值,利用前面編寫的子程序,編寫程序段調(diào)整數(shù)組t中2月份的天數(shù)。精品資料2/4/202380x86匯編語言程序設(shè)計【解】;功能:根據(jù)一個年份是否為閏年,設(shè)置該年2月份的天數(shù);入口(rùkǒu):DS段中的字型變量year=公元年份;出口:DS段中的字節(jié)型變量t+1=該年2月份天數(shù);破壞寄存器:無jud1PROCNEARPUSHAXPUSHBXPUSHCXPUSHDXMOVBYTEPTR[t+1],28MOVAX,[year]精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計MOVDX,0MOVBX,4DIVBX;除以4CMPDX,0JNZlab1;不能整除4則不是閏年,轉(zhuǎn)MOVAX,[year];取回(qǔhuí)年份值MOVBX,100DIVBX;除以100CMPDX,0JNZlab2;不能整除100則是閏年,轉(zhuǎn)MOVAX,[year]MOVBX,400DIVBX;除以400精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計CMPDX,0JNZlab1lab2:INCBYTEPTR[t+1];是閏年(rùnnián),把天數(shù)加1,設(shè)置出口參數(shù)lab1:POPDXPOPCXPOPBXPOPAXRETJud1ENDP精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計6.2.2用寄存器傳遞(chuándì)參數(shù)通過寄存器傳遞數(shù)據(jù)或數(shù)據(jù)地址。通常選擇AL、AX、DX:AX(或EAX)傳遞字節(jié)、字或雙字。傳遞16位偏移(piānyí)地址最好選擇SI、DI或BX,傳遞32位地址可以用DS:BX、DS:SI、DS:DI、ES:BX、ES:SI或ES:DI等。精品資料2/4/202380x86匯編語言程序設(shè)計【例6.4】用寄存器傳遞參數(shù),編寫例6.3要求的子程序?!窘狻?功能:判斷一個年份是否為閏年;入口:AX=公元年份;出口(chūkǒu):CF,1表示是閏年,0表示非閏年;破壞寄存器:AXjudPROCNEARPUSHBXPUSHCXPUSHDXMOVCX,AX;臨時保存年份值MOVDX,0MOVBX,4精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計DIVBX;除以4,為預防溢出(yìchū),用雙字除以字CMPDX,0JNZlab1;不能整除4則不是閏年,轉(zhuǎn)MOVAX,CX;取回年份值MOVBX,100DIVBX;除以100CMPDX,0JNZlab2;不能整除100則是閏年,轉(zhuǎn)MOVAX,CXMOVBX,400DIVBX;除以400CMPDX,0JZlab2精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計lab1:CLC;把CF清0表示非閏年,設(shè)置出口參數(shù)JMPlab3lab2:STC;把CF置1表示是閏年,設(shè)置出口參數(shù)lab3:POPDXPOPCXPOPBXRETjudENDP對于DX中存放的年份值,需要先放到AX中,才能調(diào)用子程序jud,然后(ránhòu)以調(diào)用返回后的CF值決定是否把t數(shù)組中表示2月份天數(shù)的[t+1]加1。程序段如下:MOVAX,DXCALLjudADCBYTEPTR[t+1],0;原值+0+CF精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計6.2.3用地址表傳遞(chuándì)參數(shù)建立一個(yīɡè)地址表,存放所有參數(shù)的地址,傳遞地址表的首地址給過程。這種方法特別適合于參數(shù)較多的情況。精品資料2/4/202380x86匯編語言程序設(shè)計6.2.4用堆棧(duīzhàn)傳遞參數(shù)過程(guòchéng)從堆棧得到入口參數(shù),返回前將出口參數(shù)寫入堆棧;調(diào)用者通過出棧得到返回參數(shù)。過程(guòchéng)從堆棧存取參數(shù)時,通常使用BP,因為其隱含的段地址在SS中。采用堆棧傳遞參數(shù)時,典型的過程(guòchéng)結(jié)構(gòu)如下: StdProc proc near push bp mov bp,sp ;BP指向當前棧頂,用于取入口參數(shù) ... pop bp ret ParmSize;返回前從堆棧移出入口參數(shù) StdProcendp其中,ParmSize是過程(guòchéng)被調(diào)用前進棧的入口參數(shù)的字節(jié)數(shù)。精品資料2/4/202380x86匯編語言程序設(shè)計【例6.5】用堆棧傳遞入口參數(shù),編寫子程序,把接收的兩個(liǎnɡɡè)帶符號整數(shù)中大的一個作為結(jié)果,出口參數(shù)放在AX中?!窘狻?功能:求兩個(liǎnɡɡè)帶符號整數(shù)中大的一個;入口參數(shù):調(diào)用前把兩個(liǎnɡɡè)帶符號整數(shù)入棧;出口參數(shù):AX;破壞寄存器:AX精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計_maxPROCNEARPUSHBP;暫時保存寄存器BP的值MOVBP,SPMOVAX,WORDPTR[BP+6];取第1個參數(shù)(cānshù)到AXCMPAX,WORDPTR[BP+4];與第2個參數(shù)(cānshù)比較JGElabMOVAX,WORDPTR[BP+4];取第2個參數(shù)(cānshù)到AXlab:POPBP;恢復寄存器BP的原值RET_maxENDP精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計6.3子程序舉例(jǔlì)【例】編寫子程序write,把整型數(shù)據(jù)以十進制形式顯示到屏幕上。【分析】參照高級語言中輸出語句的功能,write子程序應具備這樣(zhèyàng)一些特點:被顯示的整數(shù)可以是無符號的,也可以是帶符號的,但需要明確指出是哪一種情況;整數(shù)在計算機內(nèi)部是字型數(shù)據(jù),范圍為-32768~+65535;被輸出的數(shù)據(jù)是帶符號數(shù)時,負號“-”必須輸出,而正號“+”總是省略;輸出數(shù)據(jù)的最大位數(shù)是十進制的5位,當計算出5位中的某一位是0時,需要判斷這個0是否應該輸出,輸出條件是前面已經(jīng)輸出過非0數(shù)字或者這個0是個位數(shù)。輸出的數(shù)必須是以ASCII碼形式存放在DL中。精品資料2/4/202380x86匯編語言程序設(shè)計【解】;功能:在屏幕上輸出整數(shù)值;入口:AX=待輸出的整數(shù);CF=為0表示輸出無符號數(shù),為1則輸出帶符號數(shù);出口:無;破壞寄存器:無;DX、AX-存放整數(shù),BX-分離各整數(shù)位(shùwèi)時除數(shù),CX-分離各數(shù)位(shùwèi)次數(shù),;SI-表示是否輸出過非0數(shù)字,DI-暫存輸出的整數(shù)writePROCNEARPUSHBXPUSHCXPUSHDXPUSHSI精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計PUSHDIMOVSI,0;SI清0表示還沒有輸出過非0數(shù)字MOVDI,AX ;保存(bǎocún)待輸出的數(shù)值到DI中JNCw1 ;作為無符號數(shù)輸出轉(zhuǎn)CMPAX,0JGEw1;AX是正數(shù)轉(zhuǎn)MOVDL,'-'MOVAH,2INT21H ;輸出負號NEGDI ;取絕對值放在DI中精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計w1:MOVBX,10000;第一次的除數(shù)MOVCX,5;重復次數(shù)w2:MOVAX,DI;取回待輸出數(shù)值MOVDX,0;被除數(shù)高位清0DIVBX ;做雙字除以字的除法MOVDI,DX;余數(shù)保存(bǎocún)在DI中CMPAL,0JNEw3 ;商非0轉(zhuǎn)CMPSI,0 ;商是0,判斷前面是否輸出過數(shù)字JNEw3 ;前面已輸出過數(shù)字,則當前的0應該輸出,轉(zhuǎn)CMPCX,1 ;判斷是否是個位JNEw4 ;不是個位則不輸出當前的0,轉(zhuǎn)精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計w3:MOVDL,ALADDDL,30HMOVAH,2INT21H ;輸出當前這一位數(shù)字(shùzì)MOVSI,1 ;用SI記載已輸出過數(shù)字(shùzì)w4:MOVAX,BXMOVDX,0MOVBX,10DIVBXMOVBX,AX;bx/10=>bx,計算下一次的除數(shù)LOOPw2精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計POPDIPOPSIPOPDXPOPCXPOPBXRETwriteENDP精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計【例6.11】編寫子程序read,從鍵盤上讀入一個整數(shù)?!痉治觥繛榱吮M可能與高級語言中整數(shù)輸入的情況一致,子程序不僅要能讀入正確輸入時的數(shù)據(jù),還要能對不正確的輸入做出適當?shù)姆磻虼嗽O(shè)計上要注意幾個問題:首先是要用字符串輸入方式(DOS的10號子功能),因為這種方式支持退格鍵修改(xiūgǎi)功能,因而需要準備相應的輸入緩沖區(qū);出口參數(shù)需要兩個,以CF的設(shè)置表示輸入是否正確,當輸入正確時把整數(shù)值放在AX中作為輸入結(jié)果;要能夠跳過若干個連續(xù)的空格符;要能夠處理正負號。精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計【解】;功能:從鍵盤讀入整數(shù)值;入口:CF=為0表示廢棄多余符號(fúhào)。;為1則把多余符號(fúhào)留作下一次輸入。;出口:CF=0表示正常讀入,1表示輸入有錯;破壞寄存器:無readPROCNEARPUSHBXPUSHCXPUSHDXPUSHSIPUSHDS;以上為寄存器保護精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計PUSHFPUSHCSPOPDS;令DS取CS的值rd1:MOVBX,CS:[point];取上次(shànɡcì)輸入后已讀取到輸入串的位置rd2:INCBXCMPCS:[bufin+BX+1],''JErd2;跳過空格CMPCS:[bufin+BX+1],13JNZrd4;不是回車鍵,轉(zhuǎn)讀入數(shù)值處理精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計rd3:LEADX,CS:[bufin]MOVAH,10INT21H;遇回車鍵要求再次輸入MOVAH,2MOVDL,10INT21H;換行MOVCS:[point],0JMPrd1;對新的輸入再轉(zhuǎn)去(zhuǎnqù)跳過前導空格rd4:MOVSI,BXDECSI;令SI指向輸入串的第一個有效字符MOVAX,0MOVBX,10MOVCX,0精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計rd5:CMPCS:[bufin+SI+2],'+'JNZrd6;不是正號轉(zhuǎn)CMPCL,1JErd10;已讀到正確(zhèngquè)數(shù)值后,遇正號轉(zhuǎn)CMPCL,0JErd8;正號是第一個有效字符轉(zhuǎn)STC;輸入有錯JMPrd13精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計rd6:CMPCS:[bufin+SI+2],'-'JNZrd9CMPCL,1;已讀到正確數(shù)值后,遇負號(fùhào)轉(zhuǎn)JErd10CMPCL,0JErd7;負號(fùhào)是第一個有效字符轉(zhuǎn)STC;輸入有錯JMPrd13精品資料2/4/202380x86匯編語言(huìbiānyǔyán)程序設(shè)計rd7:MOVCH,1;記下(jìxià)讀入的是負數(shù)rd8:MOVCL,2;記下(jìxià)已讀入正/負號INCSI;指向下一字符JMPrd5rd9:CMPCS:[bufin+SI+2],'0'JBrd10;不是數(shù)字轉(zhuǎn)CMPCS:[bufin+SI+2],'9'JArd10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論