微機(jī)原理與接口技術(shù)_第1頁(yè)
微機(jī)原理與接口技術(shù)_第2頁(yè)
微機(jī)原理與接口技術(shù)_第3頁(yè)
微機(jī)原理與接口技術(shù)_第4頁(yè)
微機(jī)原理與接口技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

實(shí)驗(yàn)預(yù)備知識(shí)PAGE2PAGE2微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書(shū)電氣工程實(shí)驗(yàn)教學(xué)中心

目錄實(shí)驗(yàn)預(yù)備知識(shí) 1第一部分匯編語(yǔ)言程序設(shè)計(jì)上機(jī)操作過(guò)程 1第二部分TDEBUG軟件的使用說(shuō)明 5軟件實(shí)驗(yàn)部分 9第一部分指令系統(tǒng) 9實(shí)驗(yàn)1.1尋址方式 9實(shí)驗(yàn)1.2算術(shù)運(yùn)算指令(一) 10實(shí)驗(yàn)1.3算術(shù)運(yùn)算指令(二) 11實(shí)驗(yàn)1.4十進(jìn)制調(diào)整指令 11實(shí)驗(yàn)1.5邏輯運(yùn)算指令 12實(shí)驗(yàn)1.6循環(huán)移位指令 13實(shí)驗(yàn)1.7程序控制類指令 14實(shí)驗(yàn)1.8DOS系統(tǒng)功能調(diào)用 15實(shí)驗(yàn)1.9運(yùn)算符與偽指令系統(tǒng) 15第二部分匯編語(yǔ)言程序設(shè)計(jì) 17實(shí)驗(yàn)2.1匯編語(yǔ)言程序的調(diào)試與運(yùn)行 18實(shí)驗(yàn)2.2分支程序設(shè)計(jì) 21實(shí)驗(yàn)2.3循環(huán)程序設(shè)計(jì)(一) 23實(shí)驗(yàn)2.4循環(huán)程序設(shè)計(jì)(二) 25實(shí)驗(yàn)2.5子程序結(jié)構(gòu) 26硬件實(shí)驗(yàn)部分 28實(shí)驗(yàn)3可編程計(jì)數(shù)器/定時(shí)器8253 28實(shí)驗(yàn)4可編程并行接口8255(一) 32實(shí)驗(yàn)5可編程并行接口8255(二) 33實(shí)驗(yàn)6可編程串行接口8251 37附錄 39附錄一匯編錯(cuò)誤信息表 39附錄二DEBUG鍵入命令簡(jiǎn)介 46PAGE48PAGE47

實(shí)驗(yàn)預(yù)備知識(shí)第一部分匯編語(yǔ)言程序設(shè)計(jì)上機(jī)操作過(guò)程要建立和運(yùn)行匯編語(yǔ)言程序,至少要在磁盤(pán)上具有如下文件:編輯程序(如TC、EDIT、PE、記事本等)宏匯編程序(MASM、ASM)鏈接程序(LINK)調(diào)試程序(DEBUG、TDEBUG等)匯編語(yǔ)言程序上機(jī)的四個(gè)步驟:步驟一:建立或修改匯編語(yǔ)言源程序(如MY.ASM文件)用戶可通過(guò)編輯程序?qū)R編語(yǔ)言源程序MY.ASM進(jìn)行編寫(xiě)或修改,編輯程序的使用方法用戶可查閱相關(guān)書(shū)籍。步驟二:用匯編程序MASM對(duì)源文件進(jìn)行匯編產(chǎn)生二進(jìn)制的目標(biāo)文件(如MY.OBJ文件)。用戶可以在源程序建立以后,使用匯編程序MASM.EXE對(duì)源程序進(jìn)行匯編。所謂匯編,實(shí)際上就是把(*.ASM)源程序轉(zhuǎn)換成用二進(jìn)制代碼表示的(*.OBJ)目標(biāo)文件。在匯編過(guò)程中,匯編程序?qū)υ闯绦蛭募?*.ASM)進(jìn)行二次掃描,如果源程序中有語(yǔ)法錯(cuò)誤,則匯編過(guò)程結(jié)束后,匯編程序會(huì)指出源程序中的錯(cuò)誤。用戶可以再使用編輯程序來(lái)修改源程序中的錯(cuò)誤,再一次進(jìn)行匯編,直至得到?jīng)]有語(yǔ)法錯(cuò)誤的(*.OBJ)目標(biāo)文件。匯編程序的輸入文件只有一個(gè):是用戶編寫(xiě)的匯編源程序文件(*.ASM)。匯編程序的輸出文件可以有三個(gè):1.目標(biāo)文件(*.OBJ):我們進(jìn)行匯編的主要目的。2.列表文件(*.LST):可以同時(shí)給出源程序和機(jī)器語(yǔ)言程序,為調(diào)試程序時(shí)提供方便,但列表文件是可有可無(wú)的。若不需要時(shí),則在屏幕上出現(xiàn)提示信息[NUL.LST]:時(shí)打入回車(chē)即可;若需要時(shí),則打入文件名和回車(chē)。3.交叉引用表(*.CRF):同列表文件一樣,也是為了調(diào)試程序而設(shè)置的,交叉文件也是可有可無(wú)的。若不需要時(shí),可在屏幕上出現(xiàn)提示信息[NUL.CRF]:時(shí)打入回車(chē)即可;若需要時(shí),則打入文件名和回車(chē)。匯編過(guò)程結(jié)束時(shí),匯編程序給出源程序中的警告性錯(cuò)誤[WarningError]和嚴(yán)重錯(cuò)誤[SevereError],前者指的是一般性錯(cuò)誤而后者指的是語(yǔ)法錯(cuò)誤。當(dāng)存在這兩類錯(cuò)誤時(shí),屏幕上會(huì)指出錯(cuò)誤的個(gè)數(shù),給出錯(cuò)誤信息代號(hào),程序員可以通過(guò)查找手冊(cè)搞清楚錯(cuò)誤的性質(zhì)。要指出的是匯編過(guò)程只能指出源程序中的語(yǔ)法錯(cuò)誤,并不能指出算法錯(cuò)誤和其它錯(cuò)誤。步驟三:用連接程序LINK生成可執(zhí)行文件(*.EXE文件)。匯編程序根據(jù)源程序生成二進(jìn)制的目標(biāo)文件(*.OBJ文件),但(*.OBJ文件)用的是浮動(dòng)地址,它不能直接上機(jī)執(zhí)行,因此,還必須使用連接程序LINK將(*.OBJ)文件轉(zhuǎn)換成可執(zhí)行的文件(*.EXE文件)。LINK還可以將一個(gè)目標(biāo)文件和其它多個(gè)模塊連接起來(lái)。連接程序的輸入文件只有一個(gè):是經(jīng)過(guò)匯編生成的目標(biāo)文件(*.OBJ)。連接程序的輸出文件可以有兩個(gè):可執(zhí)行文件(*.EXE文件):是LINK過(guò)程的主要目的。列表分配文件或稱映象文件(*.MAP文件):它給出每個(gè)段在內(nèi)存中的分配情況。(*.MAP)文件是可有可無(wú)的。需要時(shí),打入文件名和回車(chē),否則直接打入回車(chē)。在LINK過(guò)程的提示信息中,可能會(huì)看到最后給出了一個(gè)“無(wú)堆棧段”的警告性錯(cuò)誤,這并不影響程序的執(zhí)行,如果源程序中設(shè)置了堆棧段則無(wú)此提示信息。步驟四:程序的執(zhí)行。有了可執(zhí)行文件,就可以執(zhí)行程序了,執(zhí)行程序有兩種方法:方法一:在DOS狀態(tài)下,直接打入文件名后回車(chē),或在WINDOWS狀態(tài)下,雙擊文件名。方法二:使用調(diào)試程序TDEBUG或DEBUG,操作方法可見(jiàn)TDEBUG軟件的使用,或參閱附錄。實(shí)際上,大部分用戶程序都必須經(jīng)過(guò)調(diào)試階段才能糾正程序中的錯(cuò)誤,從而得到正確的結(jié)果。所謂調(diào)試階段,就是用調(diào)試程序(TDEBUG或DEBUG)發(fā)現(xiàn)錯(cuò)誤,再經(jīng)過(guò)編輯、匯編、連接來(lái)糾正錯(cuò)誤。關(guān)于DEBUG程序中的常用命令,可參閱附錄。

①使用DEBUG調(diào)試界面如下:②使用TDEBUG調(diào)試界面如下:

第二部分TDEBUG軟件的使用說(shuō)明TurboDebgger3.0版本的調(diào)試環(huán)境。分為四個(gè)窗口:分別是被調(diào)試程序窗口、寄存器當(dāng)前內(nèi)容窗口、數(shù)據(jù)段內(nèi)容窗口和堆棧段內(nèi)容窗口。如下圖:主菜單有:File、Edit、View、Run、Breakpoints、Data、Options、Window、Help等。下面分別簡(jiǎn)要介紹。1.FILE:OPEN...載入一個(gè)新的可執(zhí)行文件;CHANGEDIR...改變當(dāng)前目錄;GETINFO...顯示正在被調(diào)試的程序相關(guān)的系統(tǒng)信息;DOSSHELL回到DOS環(huán)境;RESIDENT使TDEBUG結(jié)束調(diào)試但不退出調(diào)試環(huán)境;SYMBOLLOAD...載入新的符號(hào)表;TABLERELOCATE...給符號(hào)表規(guī)定一個(gè)新的段基址;QUIT(ALT+X)從TDEBUG中退出;2.EDIT:COPY(SHIFT+F3)復(fù)制;PASTE(SHIFT+F4)粘貼;COPYTOLOG將所選項(xiàng)目放到調(diào)試運(yùn)行記錄中;DUMPPANETOLOG復(fù)制當(dāng)前窗格到調(diào)試運(yùn)行記錄中;3.VIEW:BREAKPOINT打開(kāi)斷點(diǎn)窗口;STACK打開(kāi)堆棧窗口;LOG打開(kāi)調(diào)試記錄窗口;WATCH打開(kāi)觀察窗口;VARIABLE打開(kāi)變量窗口;MODULE...(F3)打開(kāi)模塊對(duì)話框;FILE...打開(kāi)文件對(duì)話框;CPU打開(kāi)CPU窗口;DUMP查看數(shù)據(jù)段的內(nèi)容;REGISTERS查看寄存器內(nèi)容;NUMERICPROCESSOR查看數(shù)字協(xié)處理器(80X87)的信息;EXECUTIONHISTORY查看歷史信息;HIERARCHY打開(kāi)類層次結(jié)構(gòu)對(duì)話框;CLIPBOARD打開(kāi)剪貼板窗口;ANOTHE:MODULE...打開(kāi)新的模塊化對(duì)話框;DUMP打開(kāi)新的數(shù)據(jù)段窗口;FILE...打開(kāi)另一個(gè)文件窗口;4.RUN:RUN(F9)運(yùn)行整個(gè)程序;GOTOCURSOR(F4)運(yùn)行到當(dāng)前位置;TRACEINTO(F7)單步運(yùn)行;STEPOVER(F8)單步,并且跳過(guò)子程序調(diào)用;EXECUTETO...(ALT+F9)運(yùn)行到指定位置;UNTILRETURN(ALT+F8)運(yùn)行子程序,直到返回到它的調(diào)用處;ANIMATE...連續(xù)單步運(yùn)行,對(duì)話框中鍵入兩個(gè)單步運(yùn)行時(shí)間的延時(shí);BACKTRACE(ALT+F4)單步的回溯;INSTRUCTIONTRACE(ALT+F7)執(zhí)行一條機(jī)器指令;ARGUMENT...在被調(diào)試的程序中設(shè)命令行;PROGRAMMERESET(CTRL+F2)重新載入程序;5.BREAKPOINTS:TOGGLE(F2)在當(dāng)前位置切換斷點(diǎn);AT...(ALT+F2)在指定位置設(shè)置斷點(diǎn);CHANGEDMEMORYGLOBAL...在存儲(chǔ)區(qū)中設(shè)置斷點(diǎn);XPRESSIONTRUEGLOBAL...在表達(dá)式或變量為真的位置設(shè)置斷點(diǎn);HARDWAREBREAKPOINT...設(shè)置硬件斷點(diǎn),用于調(diào)試硬件問(wèn)題;DELDTEALL移去所有斷點(diǎn);6.DATA:INSPECT...查找指定的變量或表達(dá)式;EVALUATE/MODIFY...(CTRL+F4)計(jì)算并顯示指定的表達(dá)式的值;ADDWATCH...(CTRL+F7)在觀察窗口添加新的跟蹤表達(dá)式;FUNCTIONRETURN顯示函數(shù)的返回值;7.OPTIONS:LANGUAGE...設(shè)定被調(diào)試程序的描述語(yǔ)言;MACROSCREATE...ALT=設(shè)置鍵擊宏指令;STOPRECORDING(ALT+--)停止對(duì)宏的記錄;REMOVE移去一個(gè)宏;DELETEALL刪去所有宏;DISPLAYOPTIONS...設(shè)置屏幕顯示的外觀;PATHFORSOURCE...設(shè)定搜索源程序的默認(rèn)路徑;SAVEOPTIONS...將當(dāng)前配置保存到磁盤(pán)上;RESTOREOPTIONS...從磁盤(pán)讀入以前保存的配置;8.WINDOW:ZOOM(F5)縮放當(dāng)前窗口;NEXT(F6)切換到下一個(gè)窗口;NEXTPANE(TAB)在同一個(gè)窗口的各個(gè)窗格間進(jìn)行切換;SIZE/MOVE(CTRL+F5)移動(dòng)窗口或改變窗口的大??;ICONIZE/RESTORE窗口最小化/恢復(fù)原來(lái)的窗口;CLOSE(ALT+F3)關(guān)閉當(dāng)前窗口;UNDOCLOSE(ALT+F6)恢復(fù)最近被關(guān)閉的窗口;USERSCREEN(ALT+F5)查看被調(diào)試程序反映在屏幕上的運(yùn)行結(jié)果;1CPU切換到高亮窗口;9.HELP:INDEX(SHIFT+F1)打開(kāi)聯(lián)機(jī)幫助目錄;PREVIOUSTOPIC(ALT+F1)回到前一個(gè)幫助主題;HELPONHELP關(guān)于如何使用聯(lián)機(jī)幫助的幫助信息;軟件實(shí)驗(yàn)部分軟件實(shí)驗(yàn)部分第一部分指令系統(tǒng)一.總體實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)掌握調(diào)試軟件(DEBUG或TDEBUG)的基本使用方法掌握8086/8088的尋址方式了解狀態(tài)標(biāo)志與控制標(biāo)志的特點(diǎn)熟練掌握指令系統(tǒng)的基本操作掌握DOS系統(tǒng)功能調(diào)用掌握運(yùn)算符及偽指令系統(tǒng)的基本操作二.總體實(shí)驗(yàn)內(nèi)容將尋址方式、狀態(tài)標(biāo)志、指令系統(tǒng)及運(yùn)算符與偽指令系統(tǒng)等內(nèi)容分為幾部分,對(duì)其分別進(jìn)行調(diào)試與驗(yàn)證。實(shí)驗(yàn)1.1尋址方式已知:(60000H)=12H,(60001H)=34H,(60002H)=56H,(60003H)=78H,(70000H)=ABH,(70001H)=CDH,(70002H)=EFH,(70003H)=0DH。⑴分別執(zhí)行下列指令后,填入指定寄存器的當(dāng)前內(nèi)容MOVAX,6000HMOVDS,AXMOVAX,7000HMOVSS,AXMOVBX,0MOVBP,0MOVSI,2MOVAX,BXAX=MOVAX,[0000H]AX=MOVAL,[0000H]AL=MOVAX,[BX]AX=MOVAL,[BX+1]AL=MOVAX,[BX+1]AX=MOVAL,[BX+2]AL=MOVAX,[BX+2]AX=MOVAX,[BX+SI]AX=MOVAX,[BP+SI]AX=⑵按下列要求分別編寫(xiě)指令組,將BLOCK數(shù)組中的第四個(gè)字?jǐn)?shù)據(jù)存放在DX寄存器中。BLOCKDW1234H,5678H,‘AB’,‘CD’寄存器間接尋址寄存器相對(duì)尋址基址加變址尋址實(shí)驗(yàn)1.2算術(shù)運(yùn)算指令(一)⑴MOVAL,76HADDAL,0A6H將操作碼改為ADC、SUB、SBB,分別執(zhí)行后填表操作碼ALOFSFZFAFPFCFADDADCSUBSBB⑵MOVAX,8889HADDAX,7777H將操作碼改為ADC、SUB、SBB,分別執(zhí)行后填表操作碼AXOFSFZFAFPFCFADDADCSUBSBB實(shí)驗(yàn)1.3算術(shù)運(yùn)算指令(二)⑴MOVAL,96HMOVBL,12HMULBLAX=CF=OF=⑵MOVAL,96HMOVBL,12HIMULBLAX=CF=OF=⑶MOVAX,916EHMOVBX,18F2HMULBXDX=AX=CF=OF=⑷MOVAX,1007HMOVBL,09HDIVBLAX=說(shuō)明原因如何修改實(shí)驗(yàn)1.4十進(jìn)制調(diào)整指令⑴MOVAL,78HADDAL,26HAL=DAAAL=CF=AF=⑵MOVAL,08HADDAL,06HAL=AAAAL=CF=AF=⑶MOVAL,78HSUBAL,26HAL=DASAL=CF=AF=⑷MOVAL,07HMOVBL,09HMULBLAX=AAMAX=CF=AF=⑸MOVAX,0802HMOVBL,05HAADAX=DIVBLAX=AAMAX=CF=AF=實(shí)驗(yàn)1.5邏輯運(yùn)算指令⑴MOVAX,8765HANDAX,89ABH將操作碼改為OR、XOR、TEST,分別執(zhí)行后填表操作碼AXOFSFZFPFCFANDORXORTEST⑵ANDAX,AXAX=CF=ZF=OR AX,AXAX=CF=ZF=XORAX,AXAX=CF=ZF=⑶用一條邏輯指令使AX寄存器的高3位清零,其余位不變。⑷用一條邏輯指令使BX寄存器的高3位置1,其余位不變。⑸用一條邏輯指令使CX寄存器的高3位取反,其余位不變。⑹用一條邏輯指令測(cè)試DX寄存器的D3位。⑺用一條邏輯指令將AX中與BX中的對(duì)應(yīng)位不相同的位均置為1。實(shí)驗(yàn)1.6循環(huán)移位指令⑴MOVAL,56HSHLAL,1AL=OF=SF=ZF=PF=CF=MOVAL,56HSHRAL,1AL=OF=SF=ZF=PF=CF=⑵MOVAL,87HSHLAL,1AL=OF=SF=ZF=PF=CF=MOVAL,87HSHRAL,1AL=OF=SF=ZF=PF=CF=⑶MOVDX,87E9HMOVCL,3STC()在上面的括號(hào)中分別填入下列指令,程序段執(zhí)行后填表指令DX的值CFSHRDX,1SARDX,1SARDX,CLSHLDX,CLSHLDL,1RORDX,CLROLDX,CLRCLDX,CLRCRDX,CLRCRDL,CL實(shí)驗(yàn)1.7程序控制類指令⑴假如在下列程序的括號(hào)中分別填入指令:①LOOPL20②LOOPZL20③LOOPNZL20試說(shuō)明在三種情況下,程序執(zhí)行后,將AX,BX,CX,DX四個(gè)寄存器的內(nèi)容填入下表。XOR AX,AXMOV BX,2MOV CX,4MOV DX,3L20:INC AXADC BX,AXSHR DX,1()HLT指令A(yù)XBXCXDXLOOPL20LOOPZL20LOOPNZL20⑵指令序列為:CMPAX,BXJXXL1請(qǐng)?jiān)谀芤疝D(zhuǎn)移到L1單元的條件轉(zhuǎn)移指令下面劃鉤,AX,BX的內(nèi)容給定如下:AXBXJBJNBJBEJAJLJNLJLEJG1F52H1F52HFF82H007EH58BAH020EH09A0H1E97HFF5CHFF8BH8AEAHFC29H實(shí)驗(yàn)1.8DOS系統(tǒng)功能調(diào)用一、實(shí)驗(yàn)?zāi)康模赫莆绽肈OS/BIOS系統(tǒng)功能調(diào)用實(shí)現(xiàn)字符輸入輸出的方法二、實(shí)驗(yàn)原理:DOS功能調(diào)用是指中斷類型號(hào)21H(INT21H)的調(diào)用。功能調(diào)用是0~57H(稱為DOS功能調(diào)用)。INT21H功能調(diào)用分為字符輸入,字符輸出,磁盤(pán)控制,文件管理等種類。本實(shí)驗(yàn)著重了解字符輸入輸出DOS功能調(diào)用。常用的有讀鍵盤(pán)及顯示(功能號(hào)稱01H),字符顯示(功能號(hào)02H),內(nèi)存字符串輸出(功能號(hào)09H)無(wú)顯示字符輸入(功能號(hào)07H)等。三、實(shí)驗(yàn)內(nèi)容:用01H號(hào)調(diào)用輸入一個(gè)字符,用02H號(hào)調(diào)用顯示輸入的字符。用0H號(hào)調(diào)用結(jié)束程序。用DEBUG調(diào)試滿足上述要求的程序。MOVAH,01HINT21HMOVDL,ALMOVAH,2HINT21HMOVAH,0HINT21H在DEBUG狀態(tài)下輸入上面程序,并且執(zhí)行。此時(shí)屏幕顯示兩個(gè)相同的字符,觀察第一個(gè)是不是01H號(hào)調(diào)用輸入后顯示的,第二個(gè)是不是02H號(hào)調(diào)用后顯示的。用0AH號(hào)調(diào)用輸入一個(gè)字符串,用09H號(hào)調(diào)用顯示輸入的字符串TAB DB50,50DUP(‘$’)LEA DX,TABMOV AH,0AH INT 21H LEA DX,TAB MOV AH,09H INT 21H實(shí)驗(yàn)1.9運(yùn)算符與偽指令系統(tǒng)⑴將下列語(yǔ)句分配的存儲(chǔ)空間及初始化的數(shù)據(jù)值填入表中:①A1DB‘BYTE’,12,12H,2DUP(0,?,3DUP(1,2),?)②A2DW3DUP(0,1,2),?,-5,‘BY’,‘TE’,256H③A3DW A1,$+6,A2-A1A1A2A3試總結(jié)DB,DW數(shù)據(jù)定義的特點(diǎn)。⑵對(duì)于下列的符號(hào)定義,分別指出下列指令的錯(cuò)誤并改正。A1DB?A2DB10K1EQU1024K2=256MOVK1,AXMOVA1,AXMOVBX,A1MOV[BX],100; 將100送入A1單元CMPA1,A2K1EQU2048⑶對(duì)于下面的數(shù)據(jù)定義,各條MOV指令單獨(dú)執(zhí)行后,有關(guān)寄存器的內(nèi)容是什么?A1DB?A2DW10DUP(?)A3DB10DUP(?)A4DB‘XYZ’,‘123’①M(fèi)OVAX,TYPEA1AX=②MOVAX,TYPEA2AX=③MOVAX,LENGTHA1AX=④MOVAX,LENGTHA2AX=⑤MOVAX,LENGTHA3AX=⑥MOVAX,LENGTHA4AX=⑦M(jìn)OVAX,SIZEA2AX=⑧MOVAX,SIZEA3AX=軟件實(shí)驗(yàn)部分第二部分匯編語(yǔ)言程序設(shè)計(jì)一.總體實(shí)驗(yàn)?zāi)康氖煜と绾挝C(jī)上進(jìn)行編輯、匯編、鏈接、調(diào)試和運(yùn)行匯編語(yǔ)言程序的過(guò)程;掌握分支程序設(shè)計(jì)、循環(huán)程序設(shè)計(jì)、子程序設(shè)計(jì)的方法;了解匯編語(yǔ)言與高級(jí)語(yǔ)言的接口。二.程序框架*.ASM文件的程序框架:程序框架中一般要定義一個(gè)數(shù)據(jù)段和一個(gè)代碼段,根據(jù)需要還可以定義堆棧段和附加段。通常指令放在代碼段,變量放在數(shù)據(jù)段。 DATA SEGMENT 在此加入數(shù)據(jù)定義 DATA ENDS STACK SEGMENTSTACK STA DB20DUP(?) TOP EQU$—STA STACK ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATA START:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX 在此加入指令段 MOV AX,4C00H INT 21HCODE ENDS END START 實(shí)驗(yàn)2.1匯編語(yǔ)言程序的調(diào)試與運(yùn)行一.實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運(yùn)算指令的用法2.熟悉在PC機(jī)上編輯、匯編、連接、調(diào)試和運(yùn)行匯編語(yǔ)言程序的過(guò)程。二.實(shí)驗(yàn)內(nèi)容將兩個(gè)多位十進(jìn)制數(shù)相加,要求被加數(shù)和加數(shù)均以ASCII碼形式各自順序存放在DATA1和DATA2為首的5個(gè)內(nèi)存單元中,結(jié)果送回DATA1處。三.程序清單 DISP MACROX MOV DL,X MOV AH,02H INT 21H ENDM DATA SEGMENT DATA1 DB‘12732’ DATA2 DB‘06815’ N EQU$—DATA2 DATA ENDS STACK SEGMENTSTACK STA DB20DUP(?) TOP EQU$—STA STACK ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATA START:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX LEA SI,DATA1 ;☆ MOV BX,0 MOV CX,N CALL DISPL ;顯示被加數(shù) DISP ‘+’ LEA SI,DATA2 MOV BX,0 MOV CX,N CALL DISPL ;顯示加數(shù) DISP ‘=’ LEA DI,DATA1 MOV CX,N CALL ADDA ;調(diào)用加法子程序 LEA SI,DATA1 MOV BX,0 MOV CX,N CALL DISPL ;顯示運(yùn)算結(jié)果 DISP 0DH DISP 0AH MOV AX,4C00H INT 21H DISPL PROC ;顯示子程序 DS1: MOV AH,02H MOV DL,[SI+BX] INT 21H INC BX LOOP DS1 RET DISPL ENDP ADDA PROC ;加法子程序 PUSH CX MOV BX,0 AD1:SUB BYTEPTR[SI+BX],30H SUB BYTEPTR[DI+BX],30H INC BX LOOP AD1 POP CX PUSH CX MOV BX,N—1 ;☆☆ CLC AD2: MOV AL,[SI+BX] ADC AL,[DI+BX] AAA MOV [DI+BX],AL DEC BX LOOP AD2 POP CX PUSH CX MOV BX,0 ;☆☆☆ AD3:ADD BYTEPTR[DI+BX],30H INC BX LOOP AD3 POP CX RET ;☆☆☆☆ ADDA ENDP CODE ENDS END START五.調(diào)試步驟1.編輯源程序,建立一個(gè)以后綴為.ASM的文件。2.匯編源程序,檢查程序有否錯(cuò)誤,有錯(cuò)時(shí)回到編輯狀態(tài),修改程序中錯(cuò)誤行。無(wú)錯(cuò)時(shí)繼續(xù)第3步。連接目標(biāo)程序,產(chǎn)生可執(zhí)行程序。TDEBUG調(diào)試可執(zhí)行程序,記錄數(shù)據(jù)段DS:0~DS:10的內(nèi)容。進(jìn)入TDEBUG程序后。執(zhí)行程序至星號(hào)處DS:0H~DS:0AH的內(nèi)容☆(CS:000FH)☆☆(CS:0076H)☆☆☆(CS:0086H)☆☆☆☆(CS:0090H)在操作系統(tǒng)狀態(tài)下,運(yùn)行程序,并記錄屏幕顯示內(nèi)容。被加數(shù)加數(shù)屏幕顯示內(nèi)容127320681510732436916508717631六.思考題將上述程序改為5位數(shù)相加,結(jié)果為6位數(shù)的加法程序。(需考慮進(jìn)位)簡(jiǎn)單敘述上機(jī)步驟,調(diào)試方法。實(shí)驗(yàn)2.2分支程序設(shè)計(jì)一.實(shí)驗(yàn)?zāi)康恼莆辗种ЫY(jié)構(gòu)程序的編制方法。二.實(shí)驗(yàn)內(nèi)容與要求編制程序?qū)崿F(xiàn)如下操作:設(shè)有10個(gè)學(xué)生成績(jī),分別統(tǒng)計(jì)低于60分、60~69分、70~79分、80~89分、90~99分及100分的人數(shù),并存放于S5、S6、S7、S8、S9、S10單元中。三.程序清單: ; 統(tǒng)計(jì)學(xué)生成績(jī) DATA SEGMENT GRADEDW95H,60H,75H,92H,71H,86H,54H,89H,83H,76H NEQU($—GRADE)/2 ORG30H S5 DW0 S6 DW0 S7 DW0 S8 DW0 S9 DW0 S10 DW0 DATA` ENDS ; STACK SEGMENTSTACK STA DB20DUP(0)TOPEQU$—STA STACKENDS ; CODE SEGMENT MAIN PROCFAR ASSUMECS:CODE,DS:DATA,SS:STACK START:PUSHDS SUBAX,AXPUSHAX MOVAX,DATA MOVDS,AX MOVCX,N LEABX,GRADE;成績(jī)表首地址 COMPARE: MOVAX,[BX] CMPAX,60H;<60? JLFIVE CMPAX,70H ;<70? JLSIX CMPAX,80H ;<80? JLSEVEN CMPAX,90H ;<90? JLEIGHT CMPAX,100H ;=100 JNENINE INCS10 JMPCHA NINE:INCS9 JMPCHA EIGHT:INCS8 JMPCHA SEVEN: INCS7 JMPCHA SIX: INCS6 JMPCHA FIVE: INCS5 JMPCHA CHA: ADDBX,2 ;循環(huán)學(xué)生人數(shù) LOOPCOMPARE RET MAIN ENDP CODE ENDS ENDSTART 執(zhí)行程序后,將結(jié)果分別填入下列表中N(總?cè)藬?shù))S5S6S7S8S9S10四.思考題計(jì)算出各等級(jí)成績(jī)百分比。分別填入下面表的A、B、C、D、E、中增加統(tǒng)計(jì)平均成績(jī)一項(xiàng)。平均成績(jī)EDCBA實(shí)驗(yàn)2.3循環(huán)程序設(shè)計(jì)(一)1.循環(huán)程序的組成部分循環(huán)程序大體上由以下四個(gè)部分組成:初始化部分:為進(jìn)入循環(huán)做準(zhǔn)備。如設(shè)置指針地址及循環(huán)次數(shù)等。循環(huán)體部分:是循環(huán)程序的主體??捎腥舾蓷l指令組成。循環(huán)修改部分:負(fù)責(zé)修改地址指針或變量的內(nèi)容。以便為下一次循環(huán)作準(zhǔn)備。循環(huán)控制部分:依據(jù)給定的循環(huán)次數(shù)或循環(huán)條件,判斷是否繼續(xù)循環(huán)。2.控制循環(huán)的方法。(1)計(jì)數(shù)控制法: 正計(jì)數(shù)控制法:從“0”或“1”開(kāi)始不斷遞增計(jì)數(shù),直到某一給定的值時(shí)停止循環(huán);倒計(jì)數(shù)控制法:從一個(gè)給定的最大值開(kāi)始不斷遞減計(jì)數(shù)。直到計(jì)數(shù)值為“0”停止循環(huán)。(常用的方法)(2)條件控制法:根據(jù)某一條件是否成立控制循環(huán)程序是否繼續(xù)執(zhí)行。(3)計(jì)數(shù)條件控制法的綜合當(dāng)單獨(dú)使用計(jì)數(shù)控制法或單獨(dú)使用條件控制法都不能圓滿地解決循環(huán)控制問(wèn)題時(shí),可采用此綜合控制法。一.實(shí)驗(yàn)?zāi)康恼莆昭h(huán)程序設(shè)計(jì)的方法(兩重性循環(huán)結(jié)構(gòu))掌握正確分配與使用寄存器。二.實(shí)驗(yàn)內(nèi)容與要求以GRADE為首地址的10個(gè)字的數(shù)組中保存有學(xué)生成績(jī)。建立一個(gè)10個(gè)字的RNAK數(shù)組,并根據(jù)GRADE中的學(xué)生成績(jī)將學(xué)生名次填入RANK數(shù)組中(提示:一個(gè)學(xué)生的名次等于成績(jī)高于等于該學(xué)生的人數(shù)加1)。寄存器分配情況說(shuō)明如下:AX存放當(dāng)前被測(cè)學(xué)生的成績(jī)BX存放當(dāng)前被測(cè)學(xué)生的相對(duì)地址指針CX內(nèi)循環(huán)計(jì)數(shù)值DX存放當(dāng)前被測(cè)學(xué)生的名次計(jì)數(shù)值SI內(nèi)循環(huán)測(cè)試時(shí)的地址指針DI外循環(huán)計(jì)數(shù)值三.程序清單(將程序補(bǔ)充完整) ; 建立學(xué)生成績(jī)名次表 DATASEGMENT GRADE DW88H,75H,95H,63H,98H,78H,87H,73H,90H,60H COUNT EQU($-GRADE)/2 ORG20H RANK DW10DUP(?) DATA ENDS ; STACK SEGMENTSTACK STA DB20DUP(20H) TOP EQU$—STA STACK ENDS ; CODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK START: MOVAX,DATA MOVDS,AX MOVAX,STACK MOVSS,AX MOVSP,TOP MOVDI,;成績(jī)的個(gè)數(shù) MOVBX,0 LOOP1: MOVAX,GRADE[BX] MOVCX,COUNT SI,GRADE;成績(jī)的存放地址 NEXT: CMPAX,[SI] NO_COUNT INCWORDPTRRANK[BX];存放學(xué)生名次 NO_COUNT:ADDSI,2 NEXT ADDBX,2 DECDI LOOP1 MOVAX,4C00H INT21H CODE ENDS END START四.思考題1.改為通過(guò)鍵盤(pán)輸入方式提供學(xué)生成績(jī)。2.將成績(jī)與名次在屏幕上顯示。3.指出控制循環(huán)程序的方法,并劃分該程序的四個(gè)組成部分。實(shí)驗(yàn)2.4循環(huán)程序設(shè)計(jì)(二)一.實(shí)驗(yàn)?zāi)康恼莆昭h(huán)程序結(jié)構(gòu)的編程方法。掌握控制循環(huán)的方法。二.實(shí)驗(yàn)內(nèi)容與要求內(nèi)容:一個(gè)數(shù)組DATAX,其中的數(shù)據(jù)排列規(guī)律是:頭三項(xiàng)是0,0,1,以后每項(xiàng)的值均是前三項(xiàng)之和。試將項(xiàng)值小于等于2000以前的各項(xiàng)數(shù)據(jù)填入數(shù)組DATAX中。算法:n≥4時(shí):①an=an-1+an-2+an-3②an=2an-1—an-4要求:按上述兩種算法編程。三.實(shí)驗(yàn)步驟自編程序,上機(jī)調(diào)試,完成上述功能。指出程序中的四個(gè)組成部分,結(jié)構(gòu)形式及控制循環(huán)的方法。填寫(xiě)數(shù)組DATAX前十六項(xiàng)的數(shù)值。DS:0000HDS:0002HDS:0004HDS:0006HDS:0008HDS:000AHDS:000CHDS:000EHDS:0010HDS:0012HDS:0014HDS:0016HDS:0018HDS:001AHDS:001CHDS:001EH實(shí)驗(yàn)2.5子程序結(jié)構(gòu)實(shí)驗(yàn)?zāi)康恼莆兆映绦蛟O(shè)計(jì)方法。掌握子程序的遞歸調(diào)用。實(shí)驗(yàn)內(nèi)容與要求求數(shù)n的階乘n!;主程序;入口參數(shù):無(wú);出口參數(shù):BX存放n!MAIN:MOVAX,3;設(shè)n=3CALLFACTXI:MOVBX,DXHIL;階乘子程序FACT;入口參數(shù):AL中存放n;出口參數(shù):DX中存放n??;所用寄存器:CXFACT PROC CMPAL,0 JNELLAMOVDL,1RETLLA:PUSHAXDECALCALLFACTX2:POPCXCALLMULTX3:MOVDX,AXRATFACTENDP;無(wú)符號(hào)字節(jié)數(shù)乘法子程序MULT;入口參數(shù):CL,DL中各為一乘數(shù);出口參數(shù):AX中為乘積MULT:PROCMOVAL,DLMULDLRETMULTENDP我們可以看出,程序在遞歸調(diào)用過(guò)程中,用PUSH指令將參數(shù)3,2,1推進(jìn)堆棧,而在返回過(guò)程中,調(diào)用乘法子程序,依次實(shí)現(xiàn)1!2!3!。三.思考題設(shè)n=4時(shí),堆棧何時(shí)為最滿?當(dāng)SP的初始值為100H,堆棧最滿時(shí),SP=硬件實(shí)驗(yàn)部分硬件實(shí)驗(yàn)部分實(shí)驗(yàn)3可編程計(jì)數(shù)器/定時(shí)器8253可編程計(jì)數(shù)器/定時(shí)器(8253)既可作為計(jì)數(shù)器,又可作為定時(shí)器。它有3個(gè)獨(dú)立編程的計(jì)數(shù)器0、計(jì)數(shù)器1、計(jì)數(shù)器2,它們均可獨(dú)立地作為計(jì)數(shù)器和定時(shí)器。每個(gè)計(jì)數(shù)器都有6種工作方式,每種工作方式都是靠方式字來(lái)控制,從而產(chǎn)生不同方式的輸出信號(hào)。一.實(shí)驗(yàn)?zāi)康?.加深對(duì)8253基本原理及工作方式的了解;2.掌握8253初始化編程的方法;3.學(xué)會(huì)通過(guò)62芯總線驅(qū)動(dòng)器、譯碼器等線路,在微機(jī)外部擴(kuò)展新的芯片。二.實(shí)驗(yàn)內(nèi)容與要求計(jì)數(shù)方式:按下圖虛線連接電路,將計(jì)數(shù)器0設(shè)置為方式0,計(jì)數(shù)器初值設(shè)置為N(N≤0FH),用手動(dòng)逐個(gè)輸入單脈沖,編程使計(jì)數(shù)值在屏幕上顯示,并同時(shí)用邏輯筆觀察OUT0電平變化(當(dāng)輸入個(gè)脈沖后,OUT0變?yōu)殡娖?。8253硬件原理圖按要求將下列程序補(bǔ)充完整。***************************8253方式0計(jì)數(shù)器實(shí)驗(yàn)***************************io8253aequ283hio8253bequ280hcodesegmentassumecs:codestart: mov al,h ;設(shè)置8253通道0為工作方式0,二進(jìn)制計(jì)數(shù) mov dx,io8253a out dx,al mov dx,io8253b ;送計(jì)數(shù)初值 mov al,h out dx,allll:in al,dx ;讀計(jì)數(shù)初值 call disp ;調(diào)顯示子程序 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz lll mov ah,4ch ;退出 int 21hdispproc near ;顯示子程序 push dx and al,0fh ;首先取低四位 mov dl,al cmp dl,9 ;判斷是否<=9 jle num ;若是則為'0'-'9',ASCII碼加30H add dl,7 ;否則為'A'-'F',ASCII碼加37Hnum:add dl,30h mov ah,02h ;顯示 int 21h mov dl,0dh ;加回車(chē)符 int 21h mov dl,0ah ;加換行符 int 21h pop dx ret ;子程序返回disp endpcode endsendstart定時(shí)方式:按下圖完成下述連接,并將計(jì)數(shù)器0、計(jì)數(shù)器1分別設(shè)置為方式3,計(jì)數(shù)初值設(shè)為1000,用邏輯筆觀察OUT1輸出電平的變化(頻率為HZ)。*********************8253分頻實(shí)驗(yàn)*********************io8253aequ280hio8253bequ281hio8253cequ283hcodesegment assumecs:codestart: mov dx,io8253c mov al, ;使0通道為工作方式3 out dx,al mov ax, ;寫(xiě)入循環(huán)計(jì)數(shù)初值1000 mov dx,io8253 out dx,al ;先寫(xiě)入低字節(jié) mov al,ah out dx,al ;后寫(xiě)入高字節(jié) mov dx,io8253 mov al, ;設(shè)8253通道1工作方式2 out dx,al mov ax, ;寫(xiě)入循環(huán)計(jì)數(shù)初值1000 mov dx,io8253b out dx,al ;先寫(xiě)低字節(jié) mov al,ah out dx,al ;后寫(xiě)高字節(jié) mov ah,4ch ;程序退出 int 21hcode endsend start三.思考題1.將計(jì)數(shù)器0改為方式4(方式1,方式5),計(jì)數(shù)器初值設(shè)置為N(N≤0FH),用手動(dòng)逐個(gè)輸入單脈沖,編程使計(jì)數(shù)值在屏幕上顯示,并同時(shí)用邏輯筆觀察OUT0電平變化。方式4:(當(dāng)輸入個(gè)脈沖后,OUT0變?yōu)殡娖?修改方式字為:方式1:(當(dāng)輸入個(gè)脈沖后,OUT0變?yōu)殡娖?修改方式字為:方式5:(當(dāng)輸入個(gè)脈沖后,OUT0變?yōu)殡娖?修改方式字為:2.使用8253的CNT0構(gòu)成一個(gè)方波發(fā)生器,CLK0=15625HZ,再將OUT0信號(hào)通過(guò)CNT1進(jìn)行5分頻。輸出如圖所示的連續(xù)波形。1S5S

實(shí)驗(yàn)4可編程并行接口8255(一)一.實(shí)驗(yàn)?zāi)康?.掌握8255A并行接口的原理及編程方法。2.了解通用實(shí)驗(yàn)裝置上的邏輯電平開(kāi)關(guān)電路,掌握讀取開(kāi)關(guān)數(shù)據(jù)的方法。二.實(shí)驗(yàn)內(nèi)容與要求1.并行接口8255的輸入與輸出(方式0)編程實(shí)現(xiàn)從8255的C口輸入數(shù)據(jù),再?gòu)腁口輸出。硬件連接:8255的C口接邏輯電平開(kāi)關(guān)K0~K7,A口接LED燈L0~L7。具體連接如下圖所示:編程提示:=1\*GB2⑴程序流程圖:=2\*GB2⑵8255控制寄存器端口地址:28BH,A口的地址:288H,C口的地址:28AH。參考程序:;***************************************;;* 并行接口8255的輸入與輸出(方式0) *; ;**************************************;DATASEGMENTio8255aequ288hio8255bequ28bhio8255cequ28ahDATAENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,io8255bMOVAL,8BHOUTDX,AL ;設(shè)8255為A口輸出,C口輸入AGAIN:MOVDX,io8255cINAL,DX ;從C口輸入一個(gè)數(shù)據(jù)MOVDX,io8255OUTDX,AL ;從A口輸出自C口采到的數(shù)據(jù)MOVDL,0FFH ;判斷是否有鍵按下MOVAH,06HINT21HJZAGAIN ;無(wú)按鍵,繼續(xù)EXIT:MOVAH,4CH ;有按鍵,退出INT21H CODEENDSENDSTART實(shí)驗(yàn)5可編程并行接口8255(二)一.實(shí)驗(yàn)?zāi)康恼莆胀ㄟ^(guò)8255A并行口傳輸數(shù)據(jù)的方法。二.實(shí)驗(yàn)內(nèi)容與要求交通燈控制實(shí)驗(yàn):模擬十字路口交通燈的變化,變化規(guī)律如下:南北路口的綠燈、東西路口的紅燈同時(shí)亮5秒;南北路口的黃燈閃爍3次(黃燈1亮1滅為閃爍1次),每次1秒鐘,同時(shí)東西路口紅燈繼續(xù)亮;南北路口的紅燈、東西路口的綠燈同時(shí)亮5秒;南北路口的紅燈繼續(xù)亮、同時(shí)東西路口的黃燈亮閃爍3次;轉(zhuǎn)(1)重復(fù)。硬件連接:L7、L6、L5作為南北路口交通燈與PC7、PC6、PC5相連,L2、L1、L0作為東西路口的交通燈與PC2、PC1、PC0相連。如圖所示:參考程序:;*************************************;;*十字路口紅綠燈模擬演示程序*;;*端口各燈的設(shè)置:*;;*1紅1黃1綠002紅2黃2綠*;;*************************************;datasegmentio8255aequ28ahio8255bequ28bhportc1db24h,44h,04h,44h,04h,44h,04h;六個(gè)燈可能db81h,82h,80h,82h,80h,82h,80h;的狀態(tài)數(shù)據(jù)db0ffh;結(jié)束標(biāo)志dataends;結(jié)束標(biāo)志stackssegmentdb100dup(?)stacksendscodesegmentassumecs:code,ds:data,SS:STACKS,es:datastart: movax,data movds,ax moves,ax movax,stacks movss,ax movdx,io8255b moval, outdx,al;設(shè)置8255為C口輸出 movdx,io8255are_on: movbx,0on: moval,portc1[bx] cmpal,0ffh jzre_on outdx,al;點(diǎn)亮相應(yīng)的燈 incbx movcx,20;參數(shù)賦初值 testal,;是否有綠燈亮 jzde1;沒(méi)有,短延時(shí) movcx,;有,長(zhǎng)延時(shí)de1: movdi,;di賦初值de0: decdi;減1計(jì)數(shù) jnzde0;di不為0 loopde1 pushdx movah,06h movdl,0ffh int21h popdx jzon;沒(méi)有,轉(zhuǎn)到onexit: movah,4ch;返回DOS int21hcodeendsendstart三.思考題1.將上述交通信號(hào)燈增加時(shí)間管理。(提示:東西方向時(shí)間間隔設(shè)定為60秒;南北方向時(shí)間間隔設(shè)定為30秒。)2.將上述兩種交通信號(hào)燈管理方式,通過(guò)開(kāi)關(guān)控制將兩種管理方式進(jìn)行切換。

實(shí)驗(yàn)6可編程串行接口8251一.實(shí)驗(yàn)?zāi)康?.了解串行通訊的工作原理和通訊方法;2.掌握串行接口芯片8251的工作原理和編程方法。二.實(shí)驗(yàn)內(nèi)容與要求1.按圖連接好電路,8251芯片插入通用插座上,其中8253計(jì)數(shù)器用于產(chǎn)生8251所需的發(fā)送和接收時(shí)鐘,TXD和RXD連在一起;2.編程:從鍵盤(pán)輸入一個(gè)字符,并將其ACSII碼加1后發(fā)送出去,再接收回來(lái),并在屏幕上顯示,實(shí)現(xiàn)自發(fā)自收。三.實(shí)驗(yàn)提示1.圖示電路8251的控制端口地址為2B9H,數(shù)據(jù)端口地址為2B8H。2.8253計(jì)數(shù)器的計(jì)數(shù)初值=時(shí)鐘頻率/(波特率*波特率因子),波特率若選1200,波特因子若選16,則計(jì)數(shù)初值為。3.收發(fā)采用查詢方式。四.實(shí)驗(yàn)參考程序;************************;;*8251串行通訊(自發(fā)自收)*;;************************;datasegmentio8253aequ280hio8253b

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論