匯編語言程序設(shè)計(jì)_第1頁
匯編語言程序設(shè)計(jì)_第2頁
匯編語言程序設(shè)計(jì)_第3頁
匯編語言程序設(shè)計(jì)_第4頁
匯編語言程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

6.4

8086微處理器匯編程序設(shè)計(jì)程序設(shè)計(jì)語言按照形式與功能的不同可分為三種,即機(jī)器語言、匯編語言和高級(jí)語言。匯編源程序需翻譯成機(jī)器語言,變成可執(zhí)行文件,機(jī)器才能執(zhí)行,這個(gè)翻譯過程叫匯編。

——高級(jí)語言中稱該過程為“解釋”或“編譯”。執(zhí)行翻譯的程序稱為“匯編程序”。.ASM.OBJ.EXE編譯連接匯編(編譯)程序:MASM.EXE2014/066§6.4.1

8086微處理器匯編偽指令1、偽指令的語句格式1)標(biāo)號(hào)

目標(biāo)名后面不能用冒號(hào)“:”,標(biāo)號(hào)名可以是常量名、變量名、過程名、結(jié)構(gòu)名、記錄名等。標(biāo)號(hào)名表示一個(gè)常量或存儲(chǔ)器地址。2014/0662)偽指令

如定義數(shù)據(jù)偽指令DB,DW,DD;段定義偽指令SEGMENT;定義過程偽指令PROC;…。它們是偽指令語句要求匯編程序完成的具體操作命令。3)操作數(shù)

操作數(shù)可以是一個(gè)常數(shù)(二進(jìn)制、十進(jìn)制、十六進(jìn)制等)、字符串、常量名、變量名、標(biāo)號(hào)、一些專用的符號(hào)(如BYTE,F(xiàn)AR,PARA等)。4)注釋

必須以分號(hào)為開始,它的作用與指令語句的注釋字段相同。2014/0662、常數(shù)、變量和標(biāo)號(hào)1)常數(shù)

常數(shù)是沒有任何屬性的純數(shù)值。2)變量

變量是代表存放在某些存儲(chǔ)單元的數(shù)據(jù),常以變量名的形式出現(xiàn)在程序中,它可以認(rèn)為是存放數(shù)據(jù)的存儲(chǔ)單元地址。3)標(biāo)號(hào)

標(biāo)號(hào)是一條指令目標(biāo)代碼的地址,它常作為轉(zhuǎn)移指令(含子程序調(diào)用指令)的操作數(shù)。2014/0663、運(yùn)算符1)SEG

功能是求符號(hào)名所在段的段基址。2)OFFSET

功能是求符號(hào)名所在段的偏移地址。3)TYPE

功能是獲得符號(hào)名類型值。4)SIZE功能是獲得為符號(hào)名分配的字節(jié)數(shù)。5)PTR

功能是定義符號(hào)名為新類型。2014/066名字EQU

表達(dá)式名字=

表達(dá)式給名字定義一個(gè)值或其他符號(hào)名或一條可執(zhí)行語句,凡是出現(xiàn)該名字的地方就用定義的數(shù)據(jù)替代。用EQU賦值的名字不能重新賦值,但可用PURGE釋放后重新定義。例:TIMESEQU50BUFDBTIMESDUP(?)

ALPHAEQU256BETA=ALPHA-21)等價(jià)定義偽指令4、偽指令2014/0661.DB:定義字節(jié),其后的每個(gè)操作數(shù)占有一個(gè)字節(jié)單元,連續(xù)存放。BUFFERDB2,3,505H03H02HBUFFER2.DW:定義字,其后的每個(gè)操作數(shù)占有兩個(gè)字節(jié);BUFDW2,3,505H00H00H03H00H02HBUF2)內(nèi)存數(shù)據(jù)定義偽指令2014/0663.DD:

定義雙字,其后每個(gè)操作數(shù)占4個(gè)字節(jié)。4.

若僅保留單元,不初始化,用?代替初值;若數(shù)據(jù)重復(fù),用n

DUP()代替,n為重復(fù)次數(shù)。STRINGDD

2,3,5ARRAYDB100DUP(?)保留100個(gè)字節(jié),首地址為ARRAY,不初始化,即100個(gè)字節(jié)內(nèi)均為隨機(jī)值。2014/0663)段定義偽指令

<段名>SEGMENT

[定位][組合][‘類別’][屬性]┆;段體

<段名>ENDS注意:1.完整段定義由SEGMENT和ENDS這一對(duì)偽指令實(shí)現(xiàn)2.指令后的4個(gè)關(guān)鍵字用于確定段的各種屬性3.如不指定,則采用默認(rèn)參數(shù);用途:在匯編語言程序中定義邏輯段,指定段的名稱和范圍,并指明段的定位類型、組合類型及類別。1.

段定義SEGMENT/ENDS2014/066定位類型:規(guī)定邏輯段的起始地址要求。方式PARA:邏輯段地址從段邊界開始BYTE:邏輯段地址從字節(jié)邊界開始WORD:邏輯段地址從字邊界開始PAGE:邏輯段地址從頁邊界開始以上4種邊界如下所示:××××××××××××00000000PAGE××××××××××××××××0000PARA×××××××××××××××××××0WORD××××××××××××××××××××BYTE2014/066組合類型:規(guī)定本段與其他段的關(guān)系NONE:與其他段在邏輯上沒有關(guān)系。PUBLIC:與其它同名、同類別的段相鄰地連在一起。STACK:此段為堆棧段,連接方式與PUBLIC相同。類別:

需用單引號(hào)括起來,凡是類型名相同的段在連接時(shí)均按先后順序連接起來。屬性類型:規(guī)定16位段或32位段。注意:大多數(shù)MASM程序使用‘code’、‘data’和‘stack’來分別指名代碼段、數(shù)據(jù)段和堆棧段。2014/066ASSUME<段寄存器名>:NOTHING

;取消段性質(zhì)的規(guī)定。4)指定段址偽指令A(yù)SSUME

ASSUME

<段寄存器名>:<段名>[,<段寄存器名>:<段名>…]功能:告訴匯編程序在匯編時(shí),段寄存器CS:DS:SS:和ES:應(yīng)具有的符號(hào)段基址,但是段寄存器實(shí)際值(CS除外)還要有傳送指令在執(zhí)行程序時(shí)賦值。

ASSUME

CS:CODE,DS:DATA,SS:STACK

2014/066

過程名

PROC

[NEAR/FAR]┆RET┆

過程名

ENDP

功能:把具有獨(dú)立功能的程序段定義為過程,供其它程序調(diào)用。對(duì)過程的調(diào)用要使用CALL語句,如:

CALL過程名

如果在過程定義中沒有寫明是NEAR過程或FAR過程,則匯編器將這個(gè)過程默認(rèn)為NEAR過程。5)過程定義偽指令2014/0666)模塊定義偽指令1.模塊開始偽指令格式:NAME

模塊名功能:指明程序模塊的開始,并指出模塊名,一般取源程序文件名為模塊名。2.

模塊結(jié)束偽指令格式:END

[啟動(dòng)標(biāo)號(hào)或過程名]功能:告訴匯編程序源文件結(jié)束,并給出執(zhí)行程序的入口位置。2014/066例:MYDARASEGMENT ;定義數(shù)據(jù)段起始語句

……

;定義數(shù)據(jù)MYDATAENDS ;定義數(shù)據(jù)段終止語句MYCODESEGMENT ;定義代碼段起始語句 ASSUMECS:MYCODE,DS:MYDATA;約定段寄存器和段的關(guān)系 START: MOVAX,MYDATA ;裝填相應(yīng)的段寄存器 MOVDS,AX …… ;完成所需功能的程序段MYCODEENDS ;定義代碼段終止語句ENDSTART ;程序結(jié)束2014/0661.定位偽指令格式:ORG<表達(dá)式>功能:把以下語句定義的內(nèi)存數(shù)據(jù)或程序,從表達(dá)式指定的起點(diǎn)(偏移地址)開始連續(xù)存放,直至遇到新的ORG指令。表達(dá)式值是一個(gè)無符號(hào)數(shù)2.列表偽指令格式:PAGE行數(shù),行字?jǐn)?shù)功能:為列表文件定義每頁行數(shù)(10~255)和每行字符數(shù)(60~132),默認(rèn)值是66行,80列7)其它偽指令2014/066在匯編程序中,如果用戶程序要與輸入輸出設(shè)備打交道,就要調(diào)用現(xiàn)成的程序,這些程序是DOS系統(tǒng)的一部分,隨著DOS系統(tǒng)駐留內(nèi)存,用戶需要按照這些程序要求的接口格式調(diào)用。返回操作的用DOS系統(tǒng)調(diào)用中斷指令:INT21H,在用戶程序結(jié)束時(shí),用下面兩條指令:

MOVAH,4CHINT21H§6.4.2

DOS系統(tǒng)功能調(diào)用2014/066

8086指令系統(tǒng)中,每執(zhí)行一條軟中斷指令I(lǐng)NTn,就調(diào)用一個(gè)相應(yīng)的中斷服務(wù)程序。當(dāng)n=5~1FH時(shí),調(diào)用BIOS中的服務(wù)程序,當(dāng)n=20~3FH時(shí),調(diào)用DOS中的服務(wù)程序。其中,INT21H是一個(gè)具有多種功能的服務(wù)程序,一般稱之為DOS系統(tǒng)功能調(diào)用。1、DOS軟中斷

DOS軟中斷功能見表6-16,矢量號(hào)為20H~27H。2014/0662014/066在匯編程序中最常用的是INT21H中斷入口,也稱為DOS系統(tǒng)功能調(diào)用。這個(gè)中斷入口中有許多小程序,每個(gè)小程序都被編上號(hào),固定完成某一種功能,調(diào)用時(shí)有一定的格式,因?yàn)閷?duì)某一個(gè)小程序而言,輸入條件(入口參數(shù))和輸出結(jié)果(出口參數(shù))的格式都是固定的。用戶在使用時(shí),既要給出小程序的編號(hào)(AH),又要按照其提供的格式進(jìn)行調(diào)用,才能正確完成操作。2、DOS系統(tǒng)功能調(diào)用(INT21H)2014/0661)在顯示器上顯示單個(gè)字符(2號(hào)功能)功能:在屏幕的光標(biāo)處顯示單個(gè)字符入口參數(shù):要顯示字符的ASCII碼放在DL中出口參數(shù):無MOVDL,‘A’MOVAH,2INT21H;提供調(diào)用功能號(hào);系統(tǒng)功能調(diào)用;在屏幕光標(biāo)處顯示字符A運(yùn)行至此,屏幕上當(dāng)前光標(biāo)處顯示字符A2014/0662)在屏幕上顯示字符串(9號(hào)功能)功能:在屏幕上當(dāng)前光標(biāo)處輸出存儲(chǔ)在內(nèi)存數(shù)據(jù)段的一串字符串,該字符串以‘$’結(jié)束。入口參數(shù):DS:DX指向欲顯示字符串的首址出口參數(shù):無DATASEGMENTSTRINGDB‘Iamastudent.$’DATAENDS……MOVDX,OFFSETSTRINGMOVAH,9INT21H;指向字符串首址;提供調(diào)用功能號(hào);系統(tǒng)功能調(diào)用2014/0663)帶顯示的鍵盤輸入(1號(hào)功能)功能:等待鍵盤輸入,直到按下一個(gè)鍵。入口參數(shù):無出口參數(shù):鍵入鍵的ASCII碼放在AL中,并在屏幕上顯示該鍵。MOVAH,1INT21HMOV[2000H],AL……;提供調(diào)用功能號(hào);系統(tǒng)功能調(diào)用程序運(yùn)行到此停下,等待用戶鍵盤輸入.用戶從鍵盤鍵入的鍵的ASCII碼進(jìn)入AL中.2014/0664)不帶顯示的鍵盤輸入(7號(hào)功能)功能:等待鍵盤輸入,直到按下一個(gè)鍵。入口參數(shù):無出口參數(shù):鍵入鍵的ASCII碼放在AL中,但在屏幕上沒有顯示,常用于輸入密碼。MOVAH,7INT21HMOV[2000H],AL……;提供調(diào)用功能號(hào);系統(tǒng)功能調(diào)用程序運(yùn)行到此停下,等待用戶鍵盤輸入用戶從鍵盤鍵入的鍵的ASCII碼進(jìn)入AL中該功能與1號(hào)功能類似,只是輸入的字符不在屏幕上顯示。2014/0665)字符串輸入(10號(hào)功能)功能:等待從鍵盤輸入一串字符到存儲(chǔ)區(qū)的數(shù)據(jù)段,直到按下回車結(jié)束輸入。入口參數(shù):DS:DX指向接收字符串的內(nèi)存地址的首址,該地址的第一個(gè)字節(jié)是由用戶設(shè)置的可輸入字符串的最大字符數(shù)(含回車)出口參數(shù):存放輸入字符串存儲(chǔ)區(qū)的第二個(gè)字節(jié)是實(shí)際輸入的字符數(shù)(不含回車),實(shí)際輸入的字符串從該存儲(chǔ)區(qū)的第三個(gè)字節(jié)處開始存放。2014/066DATASEGMENTBUFDB20,20DUP(?)DATAENDS……LEADX,BUFMOVAH,0AHINT21H程序運(yùn)行到此停下,等待用戶鍵盤輸入若輸入ABCD<CR>后BUFDX實(shí)際字符個(gè)數(shù)開始存放2014/0666)程序結(jié)束,返回DOS(4C號(hào)功能)功能:將控制權(quán)移交DOS。入口參數(shù):無出口參數(shù):無MOVAH,4CHINT21H2014/066在屏幕上顯示W(wǎng)hat’syourname?,用戶輸入自己的名字###后顯示:Welcome###。DATASEGMENTMEGDB‘What’syourname?’,10,13,’$’MEG1DB'Welcome$'BUFDB30,?,30DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARSTART:MOVAX,DATAMOVDS,AXLEADX,MEGMOVAH,9INT21HLEADX,BUFMOVAH,10INT21HLEADX,MEG1MOVAH,9INT21HXORBH,BHMOVBL,BUF+1MOV[BX+BUF+2],‘$’LEADX,BUF+2MOVAH,9INT21HMOVAH,4CHINT21HMAINENDPCODEENDSENDSTART;輸出字符串;接受姓名;輸出Welcome;輸出姓名;返回DOS輸入緩沖區(qū)以‘$’結(jié)尾顯示字符串后回車換行2014/066

例:編程實(shí)現(xiàn)多字節(jié)加法,如S=3B74AC60F8H+20D59E36C1HF8H60HACH74H3BHC1H36H9EHD5H20H被加數(shù)、和加數(shù)DATA1DATA2……2014/066CODESEGMENT

ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX

MOVCX,5MOVSI,0CLCLOOPER:MOVAL,DATA2[SI]ADCDATA1[SI],ALINCSIDECCXJNZLOOPERMOVAH,4CHINT21HCODEENDS

ENDSTARTDATASEGMENTDATA1DB0F8H,60H,0ACH,74H,3BHDATA2DB0C1H,36H,9EH,0D5H,20HDATAENDS2014/066特點(diǎn):計(jì)算機(jī)執(zhí)行程序的方式是“從頭到尾”逐條執(zhí)行指令語句,直至程序結(jié)束。1、順序結(jié)構(gòu)程序設(shè)計(jì)例:

內(nèi)存10050H單元的內(nèi)容拆成兩段,每段4位,并將它們分別存入內(nèi)存10051H和10052H單元;即10050H單元中的低4位放入10051H單元的低4位,10050H單元中的高4位放入10052H單元的低4位,而10051H和10052H單元的高4位均為零?!?.4.3

8086微處理器匯編程序設(shè)計(jì)2014/066流程圖:2014/066程序:DATASEGMENT ORG50HData1DB7AHData2DB?Data3DB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATACODEENDSEND START?2014/066程序:START:MOV AX,DATAMOV DS,AXMOV SI,Data1 ;需拆字節(jié)的指針(SI)=50HMOV AL,[SI] ;取一個(gè)字節(jié)→(AL)MOV BL,AL ;(BL)←(AL),內(nèi)容備份AND AL,0FH ;(AL)的前4位清0MOV SI,Data2 ;(SI)=51HMOV [SI],AL ;把得到的后4位→(10051H)MOV AL,BL ;再取出需拆字節(jié)→(AL)MOV CL,4SHR AL,CL ;邏輯右移4次,前4位補(bǔ)0MOV SI,Data3 ;(SI)=52HMOV [SI],AL ;(10052H)←(AL)2014/066

利用條件轉(zhuǎn)移指令,使程序執(zhí)行到某一指令后,根據(jù)條件(即上面運(yùn)算的情況)是否滿足,改變程序執(zhí)行的次序。特點(diǎn):先用比較指令、數(shù)據(jù)操作、位測(cè)指令等改變標(biāo)志寄存器各個(gè)標(biāo)志位,然后用條件轉(zhuǎn)移指令進(jìn)行分支。例:求AX累加器和BX寄存器中兩個(gè)無符號(hào)數(shù)之差的絕對(duì)值,結(jié)果放在內(nèi)存2800H單元中。

2、分支程序設(shè)計(jì)2014/066流程圖:2014/066CODESEGMENTASSUMECS:CODE,DS:DATA

MOVAX,DATAMOVDS,AXCODEENDS

END CLC

MOV CX,AX SUB AX,BX JC AA MOV DI,2800H MOV [DI],AXLP:JMP LP AA:SUB BX,CX MOV DI,2800H MOV [DI],BX;清除CF;AX←(AX-BX),影響CF;CF=1轉(zhuǎn)AA去執(zhí)行(AX<BX);結(jié)果指針DI=2800H;結(jié)果送到2800H和2801H單元;暫停;BX←(BX-CX)2014/066例:編制程序從外設(shè)71H端口中取一個(gè)數(shù)M,判斷其值是否在10和20之間,即10≤M<20。如果M≥20,則送0FFH給外設(shè)73H端口;如果M<10,則送00H給外設(shè)73H;如果10≤M<20,則送88H給外設(shè)73H

。開始暫停輸出BL值到73號(hào)外設(shè)去輸入71號(hào)外設(shè)的值A(chǔ)L令BL=88H令BL=00H令BL=0FFHAL值≥

20AL值≥

10是是否否LP1LP22014/066START:IN AL,71H

;將71H端口的字節(jié)讀入AL CLC ;清除CF CMPAL,10 ;AL←AL-10 JC Lw10 ;小于10轉(zhuǎn)LP1 CMPAL,20 ;AL←AL-20 JC L10to20 ;10≤AL<20轉(zhuǎn)LP2 MOVBL,0FFH

;將FFH送入BL寄存器

JMP LOutLw10:MOVBL,00H JMP LoutL10to20:MOVBL,88HLOut:MOVAL,BL

OUT

73H,AL;將結(jié)果的標(biāo)志數(shù)據(jù)輸出到73H端口

HLT ;暫停2014/066強(qiáng)制CPU重復(fù)執(zhí)行某一指令系列(程序段)的一種程序結(jié)構(gòu)形式。組成:初始化循環(huán)體循環(huán)控制循環(huán)結(jié)束例:求兩個(gè)多字節(jié)數(shù)之和。兩個(gè)數(shù)位于內(nèi)存數(shù)據(jù)段,其偏移量為0050H地址,連續(xù)存放,低位在小地址一端,結(jié)果放在這兩個(gè)數(shù)之后。設(shè)這兩個(gè)多字節(jié)數(shù)均為8個(gè)字節(jié)長(zhǎng)。3、循環(huán)程序設(shè)計(jì)2014/066DATASEGMENT ORG0050HLopDat1DB23H,56H,45H,63H,78H,66H,90H,42HLopDat2DB13H,44H,86H,80H,24H,64H,56H,60HDatSumDB8DUP(?)

DATAENDS

CODESEGMENTASSUMECS:CODE,DS:DATASTARTPROCFARMOVAX,DATAMOVDS,AX2014/066MOV SI,LopDat1 MOV DI,LopDat2MOV BX,DatSum MOV CX,4

CLC

Ad:MOV AX,[SI] ADC AX,[DI] MOV [BX],AX

ADD SI,2 ADD DI,2 ADD BX,2

LOOP Ad

STARTENDP

END;指針(SI)=0050H;指針(DI)=0058H;指針(BX)=0060H;循環(huán)(CX)=4;清進(jìn)位CF=0;(AX)←((SI)),取一個(gè)字;(AX)←(AX)+((DI))+CF;存一個(gè)字到((BX));(SI)←(SI)+2;(DI)←(DI)+2;(BX)←(BX)+2;(CX)←(CX)-1,若(CX)≠0轉(zhuǎn)Ad2014/066CALLRET4、子程序設(shè)計(jì)

1)子程序調(diào)用與返回2014/0662)子程序設(shè)計(jì)注意問題(1)現(xiàn)場(chǎng)保護(hù)和恢復(fù)為避免沖突,應(yīng)在進(jìn)入過程時(shí),將該過程所用到的寄存器內(nèi)容保護(hù)起來,稱為保護(hù)現(xiàn)場(chǎng)。而從過程返回主程序前,再將這些寄存器的內(nèi)容恢復(fù),稱為恢復(fù)現(xiàn)場(chǎng)。保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)通常分別用堆棧壓入指令和彈出指令來實(shí)現(xiàn)。例如:2014/066SUBPRPROCFAR PUSHAX PUSHBX PUSHCX PUSHDX POPDX POPCX POPBX POPAX RETSUBPRENDP…(2)參數(shù)傳遞:①寄存器傳遞②存儲(chǔ)單元(參數(shù)表)傳遞③堆棧傳遞2014/066例:AX寄存器中存放著4位十六進(jìn)制數(shù),將這4位十六進(jìn)制數(shù)分別轉(zhuǎn)換為相應(yīng)的ASCII碼,并依次存放到RESULT數(shù)組的4個(gè)字節(jié)中,要求子程序方法實(shí)現(xiàn)。

DATASEGMENT DA1DW3D7EH RESULTDB4DUP(?) DATAENDS

CODESEGMENT ASSUMECS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX2014/066

MOV CX,4 LEA SI,DA1 LEA DI,RESULT MOV BX,[SI]NEXT:MOVAX,BX AND AL,0FH

CALL ASC MOV [DI],AL INC DI PUSHCX MOV CX,4 SHRBX,CL POP CX

LOOPNEXT十六進(jìn)制轉(zhuǎn)換成ASCII碼子程序

ASCPROC

CMP AL,0AH JB PL30 ADD AL,07HPL30:ADD AL,30H RET

ASCENDP2014/066

LEA SI,RESULT+3 MOV CX,4 STDLOOP1:LODSB MOV DL,AL MOV AH,02H INT 21H LOOP LOOP1 MOV DL,'H' MOV AH,02H INT 21H MOV AH,4CH INT 21HCODE ENDS END START2014/066例:從自然數(shù)1開始累加,直到累加和大于1000為止,統(tǒng)計(jì)被累加的自然數(shù)的個(gè)數(shù),并把統(tǒng)計(jì)的個(gè)數(shù)送入n單元,把累加和送入sum單

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論