




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、微機(jī)原理及應(yīng)用實(shí)驗(yàn)指導(dǎo)書山東科技大學(xué)泰山科技學(xué)院目 錄實(shí)驗(yàn)一 DEBUG命令的功能及使用3實(shí)驗(yàn)二 分段函數(shù)的求解9實(shí)驗(yàn)三 數(shù)據(jù)排序程序?qū)嶒?yàn)11實(shí)驗(yàn)四 字符的ASCII碼轉(zhuǎn)換13實(shí)驗(yàn)五 多位十進(jìn)制減法實(shí)驗(yàn)17實(shí)驗(yàn)六 兩個(gè)數(shù)相乘的實(shí)驗(yàn)20實(shí)驗(yàn)七 BCD碼相乘實(shí)驗(yàn)22實(shí)驗(yàn)八 字符匹配程序24實(shí)驗(yàn)九 綜合實(shí)驗(yàn)平臺(tái)的認(rèn)識(shí)26實(shí)驗(yàn)十 RAM讀寫實(shí)驗(yàn)30實(shí)驗(yàn)十一 交通燈控制實(shí)驗(yàn)31實(shí)驗(yàn)十二 開關(guān)狀態(tài)顯示實(shí)驗(yàn)34實(shí)驗(yàn)十三 8279鍵盤顯示實(shí)驗(yàn)36實(shí)驗(yàn)十四 8255掃描鍵盤實(shí)驗(yàn)38實(shí)驗(yàn)十五 A/D轉(zhuǎn)換實(shí)驗(yàn)40實(shí)驗(yàn)十六 D/A轉(zhuǎn)換實(shí)驗(yàn)41實(shí)驗(yàn)十七 8259A硬件中斷實(shí)驗(yàn)43實(shí)驗(yàn)十八 8251可編程串行口與PC機(jī)通
2、信實(shí)驗(yàn)45實(shí)驗(yàn)十九 串并轉(zhuǎn)換實(shí)驗(yàn)47實(shí)驗(yàn)二十 直流電機(jī)驅(qū)動(dòng)實(shí)驗(yàn)49實(shí)驗(yàn)二十一 步進(jìn)電機(jī)驅(qū)動(dòng)實(shí)驗(yàn)50實(shí)驗(yàn)二十二 溫度控制實(shí)驗(yàn)52實(shí)驗(yàn)二十三 LCD顯示實(shí)驗(yàn)55實(shí)驗(yàn)二十四 LED點(diǎn)陣顯示實(shí)驗(yàn)56實(shí)驗(yàn)二十五 語音芯片實(shí)驗(yàn)60實(shí)驗(yàn)二十六 8253定時(shí)/計(jì)數(shù)器實(shí)驗(yàn)62實(shí)驗(yàn)一 DEBUG命令的功能及使用一、實(shí)驗(yàn)?zāi)康恼莆諈R編語言基本運(yùn)行環(huán)境和熟悉DEBUG調(diào)試程序的命令。包括:學(xué)習(xí)使用指令,掌握常用的指令功能和簡單程序設(shè)計(jì);掌握DEBUG調(diào)試程序的命令,熟悉程序輸入、存儲(chǔ)器和CPU寄存器及標(biāo)志位的檢查方法,單步、斷點(diǎn)、連續(xù)等運(yùn)行程序的調(diào)試方法。二、實(shí)驗(yàn)內(nèi)容DEBUG的主要命令功能與格式1. 匯編命令A(yù)格式:
3、A <段寄存器名><段地址>: <段內(nèi)偏移> 上式等價(jià)于: (1)A <段寄存器名>:<段內(nèi)偏移> (2)A <段地址>:<段內(nèi)偏移> (3)A <段內(nèi)偏移> (4)A功能:鍵入該命令后顯示段地址和段內(nèi)偏移并等待用戶從鍵盤逐條鍵入?yún)R編命令,逐條匯編成代碼指令,順序存放到段地址和段內(nèi)偏移所指定的內(nèi)存區(qū)域,直到顯示下一地址時(shí)用戶直接鍵入回車鍵返回到提示符“-”。注:其中(1)用指定段寄存器的內(nèi)容作段地址,(3)用CS的內(nèi)容作段地址,(4)以CS:100作地址。以后命令中提及的各種地址形式,均指(1)、(
4、2)、(3)中A后的地址形式。2. 顯示內(nèi)存命令D格式:D <地址><范圍> 上式等價(jià)于: (1)D <地址> (2)D <范圍> (3)D功能:以兩種形式顯示指定范圍的內(nèi)存內(nèi)容。一種形式為十六進(jìn)制內(nèi)容,一種形式為以相應(yīng)字節(jié)的內(nèi)容作為ASCII碼的字符,對不可見字符以代替。注:其中(1)以CS為段寄存器。(3)顯示CS:100起始的一片內(nèi)容。3. 修改內(nèi)存命令E格式:E <地址> <單元內(nèi)容表> 上式等價(jià)于: (1)E <地址> (2)E <地址> <單元內(nèi)容表>其中<單元內(nèi)容表&
5、gt;是以逗號分隔的十六進(jìn)制數(shù),或用或”括起來的字符串,或者是二者的組合。功能:(1)不斷顯示地址,可連續(xù)鍵入修改內(nèi)容,直至新地址出現(xiàn)后鍵入回車Enter為止。(2)將<單元內(nèi)容表>逐一寫入由<地址>開始的一片單元。4. 填充內(nèi)存命令F格式:F <范圍> <單元內(nèi)容表>功能:將單元內(nèi)容表中的值逐個(gè)填入指定范圍,單元內(nèi)容表中內(nèi)容用完后重復(fù)使用。 例如:-F 5BC:200 L 10 B2,XYZ,3C <Enter>5. 執(zhí)行命令G格式:G =<地址>,<斷點(diǎn)> 上式等價(jià)于: (1)G (2)G=<地址&g
6、t; (3)G=<地址>,<斷點(diǎn)>功能:執(zhí)行內(nèi)存中的指令序列注:(1)從CS:IP所指處開始執(zhí)行 (2)從指定地址開始執(zhí)行 (3)從指定地址開始執(zhí)行,到斷點(diǎn)自動(dòng)停止。6. 內(nèi)存搬家命令M格式:M <源地址范圍> <目標(biāo)起始地址> 其中源及目標(biāo)地址若僅輸入偏移量,則隱含相對DS。功能:把<源地址范圍>中的內(nèi)容順序搬至<目標(biāo)起始地址>起的一片連續(xù)單元。 例如:-M CS:100 110 600 把從CS:100起至CS:110止17個(gè)字節(jié)搬至DS:600至DS:610的一片單元。7. 結(jié)束DEBUG返回DOS命令Q格式:Q功能
7、:返回DOS提示符下8. 顯示修改寄存器命令R格式:R <寄存器名> 上式等價(jià)于: (1)R (2)R <寄存器名>功能:(1)顯示當(dāng)前所有寄存器內(nèi)容,狀態(tài)標(biāo)志及將要執(zhí)行的下一指令的地址,代碼及匯編語句形式。其中對狀態(tài)標(biāo)志FLAG以每位的形式顯示,見下表。標(biāo)志置位符號復(fù)位符號溢出OFOV(overflow)NV(no overflow)方向DFDN(down)UP(up)中斷IFEI(enable interrupt)DI(disable interrupt)符號SFNG(negative)PL(plus)零位ZFZR(zero)NZ(no zero)輔助AFAC(au
8、xiliary carry)NA(no auxiliary)奇偶PFPE(parity even)PO(parity odd)進(jìn)位CFCY(carry)NC(no carry) (2)顯示指定寄存器內(nèi)容例如:-R AX <Enter> -R F <Enter>9. 執(zhí)行并顯示系統(tǒng)環(huán)境命令T格式:T =<地址> <條數(shù)>功能:執(zhí)行由指定地址起始的、由<條數(shù)>指定的若干條命令。其中<地址>的缺省值是當(dāng)前IP值,<條數(shù)>的缺省值是一條。 例如:-T <Enter> 執(zhí)行當(dāng)前指令并顯示狀態(tài) -T 10 &l
9、t;Enter> 從當(dāng)前指令始執(zhí)行10H條指令10. 反匯編命令U格式:U <地址>/<地址范圍> 上式等價(jià)于: (1)U <地址> (2)U <地址范圍>(3)U功能:將指定范圍內(nèi)的代碼以匯編語句形式顯示,同時(shí)顯示地址及代碼。注意,反匯編時(shí)一定確認(rèn)指令的起始地址后再作,否則將得不到正確結(jié)果。地址及范圍的缺省值是上次U指令后下一地址的值。這樣可以連續(xù)反匯編。三、實(shí)驗(yàn)例程及步驟例1 在DEBUG下運(yùn)行如下程序。 MOV DL,33H ;字符3的ASCII碼送DL MOV AH,2 ;使用DOS的2號功能調(diào)用 INT 21H ;進(jìn)入功能調(diào)用,輸
10、出3 INT 20H ;BIOS中斷服務(wù)程序,正常結(jié)束。該程序運(yùn)行結(jié)果是在顯示器上輸出一個(gè)字符3。如果要輸出其它字符,請改變程序中33H為相應(yīng)字符的ASCII碼。運(yùn)行步驟:(1)進(jìn)入DEBUG,用A命令送程序并匯編,見圖1.1。圖1.1 匯編程序過程(2)用反匯編U命令顯示程序,圖1.2為反匯編命令顯示結(jié)果。圖中右邊是匯編指令,中間是該匯編指令的機(jī)器碼,左邊是存放該條指令的內(nèi)存單元地址。圖1.2 反匯編命令U的顯示結(jié)果(3)用執(zhí)行命令G執(zhí)行程序,圖1.3為執(zhí)行結(jié)果。圖1.3 執(zhí)行命令G的顯示結(jié)果(4)用E命令送機(jī)器指令程序并用D命令顯示內(nèi)存,運(yùn)行過程見圖1.4。圖1.4 送機(jī)器指令并顯示內(nèi)容結(jié)
11、果(5)再次用執(zhí)行命令G執(zhí)行程序,圖1.5為執(zhí)行結(jié)果。圖1.5 G命令執(zhí)行結(jié)果(6)Q命令退出DEBUG返回DOS。 例2 在DEBUG下運(yùn)行下述程序,查看執(zhí)行結(jié)果。 MOV AX,0FEH ;被乘數(shù)0FEH送AX MOV CL,2 SHL AX,CL ;被乘數(shù)乘以4,結(jié)果送AX MOV BX,AX ;被乘數(shù)乘以4的結(jié)果送BX保留 MOV CL,2 SHL AX,CL ;被乘數(shù)乘以16,結(jié)果送AX ADD AX,BX ;被乘數(shù)乘以20,結(jié)果在AX中 MOV 300H,AX ;將積存入DS段第300H301H號內(nèi)存單元 MOV AH,4CH ;將功能號4CH送AH INT 21H ;執(zhí)行DOS的
12、4CH號功能調(diào)用,結(jié)束程序返回DOS。該程序運(yùn)行結(jié)果是將0FEH乘以14H,結(jié)果放在DS段第300H-301H號內(nèi)存單元中。(1)進(jìn)入DEBUG,顯示300H至301H號內(nèi)存單元內(nèi)容,見圖1.6。 圖1.6 D命令顯示結(jié)果(2)用A命令裝入程序段并匯編,見圖1.7。圖1.7 用A匯編程序(3)用T命令執(zhí)行到斷點(diǎn)處(程序正常結(jié)束前)停止,執(zhí)行“-T=100,8 <Enter>”后的結(jié)果見圖1.8。圖1.8 用T命令執(zhí)行到斷點(diǎn)處的結(jié)果(4)用D命令顯示300H至301H的內(nèi)容(最終結(jié)果),如圖1.9所示。圖1.9 用D命令顯示最終結(jié)果(5)用Q命令退出DEBUG環(huán)境,返回DOS。四、預(yù)
13、習(xí)要求1. 安裝并熟悉ASM匯編語言編譯環(huán)境。2. 預(yù)習(xí)DEBUG的相關(guān)命令。3. 復(fù)習(xí)教材指令系統(tǒng)章節(jié)內(nèi)容,熟悉8086/8088指令系統(tǒng)。五、實(shí)驗(yàn)報(bào)告要求及思考1. 根據(jù)實(shí)驗(yàn)描述匯編語言的編譯過程,并畫出相關(guān)流程框圖;書寫對教材指令系統(tǒng)等相關(guān)的實(shí)驗(yàn)結(jié)果。2. 總結(jié)Debug調(diào)試程序的方法。3. 思考題。下面是一個(gè)2字節(jié)非壓縮BCD碼加的程序,試分析程序中被加數(shù)和加數(shù)以及和分別存放在哪些寄存器中,程序中CH有何作用。閱讀后再設(shè)計(jì)一個(gè)2字節(jié)非壓縮BCD碼減法程序。然后分別計(jì)算5698?,9015?,并查看各寄存器的內(nèi)容。MOV CH,AH ADD AL,BL AAA XCHG AL,CH AD
14、C AL,BH AAA MOV AH,AL MOV AL,CH實(shí)驗(yàn)二 分段函數(shù)的求解一、實(shí)驗(yàn)?zāi)康耐ㄟ^分支程序設(shè)計(jì)的練習(xí),熟悉運(yùn)算類指令對標(biāo)志位狀態(tài)的影響,以及標(biāo)志位狀態(tài)的表示方法;掌握無條件轉(zhuǎn)移、條件轉(zhuǎn)移指令的使用方法;掌握分支程序設(shè)計(jì)、編寫、調(diào)試和運(yùn)行程序的方法。二、實(shí)驗(yàn)內(nèi)容變量X的符號函數(shù)可用下式表示: 試編程實(shí)現(xiàn)該符號函數(shù)的程序。三、實(shí)驗(yàn)例程及步驟1. 畫出程序設(shè)計(jì)流程圖(參考圖2.1)。圖2.1 實(shí)驗(yàn)二流程圖2. 根據(jù)流程圖編寫程序,參考程序如下:DATA SEGMENTX DW300HY DB?DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATABEGI
15、N:MOVAX,DATAMOVDS,AXMOVAX,XORAX,AXJEZERO;為0JNSPLUS;為正MOVBL,0FFH;為負(fù)JMPEXITZERO:MOVBL,0JMPEXITPLUS:MOVBL,1EXIT:MOVY,BLMOVAH,4CHINT21HCODEENDSENDBEGIN3. 編輯源文件,匯編生成目標(biāo)文件,并連接生成可執(zhí)行文件。4. 用DEBUG程序調(diào)試生成的可執(zhí)行性文件,查看Y單元的內(nèi)容并核對程序運(yùn)行結(jié)果。5. 對X的原始數(shù)據(jù)做適當(dāng)修改,重新運(yùn)行程序并查看運(yùn)行結(jié)果。四、預(yù)習(xí)要求1. 復(fù)習(xí)ASM匯編語言編譯環(huán)境。2. 預(yù)習(xí)實(shí)驗(yàn)指導(dǎo)書的相關(guān)內(nèi)容及所給出的問題思考。3. 復(fù)習(xí)
16、教材程序設(shè)計(jì)章節(jié)內(nèi)容,熟悉簡單的分支程序設(shè)計(jì)。五、實(shí)驗(yàn)報(bào)告要求及思考1. 詳細(xì)書寫實(shí)驗(yàn)過程報(bào)告、詳細(xì)記錄調(diào)試程序過程遇到的問題及解決方案。認(rèn)真總結(jié)分支程序的類型及設(shè)計(jì)方法。并解答相關(guān)的思考問題。2. 思考分支程序設(shè)計(jì)如何產(chǎn)生跳轉(zhuǎn)條件?3. 思考并編程調(diào)試。設(shè)某班學(xué)生(30名)某門課程的成績(百分制)存放在內(nèi)存中,試編程統(tǒng)計(jì)90分以上、8089分、7079分、6069分以及低于60分的學(xué)生人數(shù),并分別存放到A、B、C、D、E單元中。實(shí)驗(yàn)三 數(shù)據(jù)排序程序?qū)嶒?yàn)一、實(shí)驗(yàn)?zāi)康耐ㄟ^循環(huán)程序設(shè)計(jì)的上機(jī)練習(xí),掌握循環(huán)結(jié)構(gòu)的各種實(shí)現(xiàn)方法,進(jìn)一步了解循環(huán)結(jié)構(gòu)中初始化部分、循環(huán)體部分、循環(huán)控制部分的功能以及它們彼此
17、之間的關(guān)系,尤其是兩重循環(huán)結(jié)構(gòu)中外層和內(nèi)層循環(huán)之間的關(guān)系。二、實(shí)驗(yàn)內(nèi)容某數(shù)據(jù)區(qū)內(nèi)有20個(gè)數(shù)據(jù),其中可能有正數(shù)、負(fù)數(shù)或零,試編程將這些數(shù)據(jù)按照從小到大的循序排列。三、實(shí)驗(yàn)例程及步驟1. 畫出程序設(shè)計(jì)流程圖(參考圖3-1)。圖3.1 實(shí)驗(yàn)三流程圖2. 根據(jù)流程圖編寫程序,參考程序如下:STACKSEGMENTSTACKDW64DUP(?)STACKENDSDATASEGMENTBUFDB 10,25,-21,-45,80,0,55,-67,-100,0DB 37,19,-50,-89,-76,83,50,2,0,-78NDB 19DATAENDSCODESEGMENTASSUMECS:CODE,D
18、S:DATA,SS:STACKBEGIN:MOVAX,DATAMOVDS,AXMOVSI,1 ;給外循環(huán)計(jì)數(shù)器賦初值1NEXT1:MOVDI,SI INCDIMOVAL,BUF+SI-1 NEXT2:CMPAL,BUF+DI-1 JNANEXT3XCHGBUF+DI-1,ALMOVBUF+SI-1,ALNEXT3:INCDI;(DI)(DI)+1CMPDI,N;若(DI)<N轉(zhuǎn)NEXT2,繼續(xù)執(zhí)行內(nèi)循環(huán)開始JBE NEXT2;否則退出內(nèi)循環(huán)INCSI;(SI)(SI)+1CMPSI,N-1;比較(SI)與N1JBENEXT1;若(SI)N-1轉(zhuǎn)NEXT1繼續(xù)循環(huán),否則退出MOVAH,4C
19、HINT21HCODEENDSENDBEGIN3. 編輯源文件,匯編生成目標(biāo)文件,并連接生成可執(zhí)行文件。4. 用DEBUG程序調(diào)試生成的可執(zhí)行性文件,查看存儲(chǔ)單元的內(nèi)容并核對程序運(yùn)行結(jié)果。5. 對數(shù)據(jù)區(qū)的原始數(shù)據(jù)做適當(dāng)修改,重新運(yùn)行程序并查看運(yùn)行結(jié)果。6. 根據(jù)例程完成下列題目:編程將這些數(shù)據(jù)按照從大到小的循序排列。四、預(yù)習(xí)要求1. 預(yù)習(xí)實(shí)驗(yàn)指導(dǎo)書的相關(guān)內(nèi)容及所給出的問題思考。2. 復(fù)習(xí)教材程序設(shè)計(jì)章節(jié)內(nèi)容,熟悉循環(huán)程序設(shè)計(jì)。五、實(shí)驗(yàn)報(bào)告要求及思考1. 詳細(xì)書寫實(shí)驗(yàn)過程報(bào)告、詳細(xì)記錄調(diào)試程序過程遇到的問題及解決方案。認(rèn)真總結(jié)循環(huán)程序的類型及設(shè)計(jì)方法。并解答相關(guān)的思考問題。2. 思考分支程序設(shè)計(jì)
20、如何產(chǎn)生跳轉(zhuǎn)條件?3. 總結(jié)循環(huán)程序設(shè)計(jì)的類型及循環(huán)控制條件的設(shè)置。4. 循環(huán)程序由哪些部分組成?循環(huán)程序設(shè)計(jì)有哪些設(shè)計(jì)方法?5. 如何提高排序的執(zhí)行效率?實(shí)驗(yàn)四 字符的ASCII碼轉(zhuǎn)換一、實(shí)驗(yàn)?zāi)康?掌握子程序的定義和調(diào)用方法。理解CALL和RET指令的功能,掌握子程序調(diào)用時(shí)參數(shù)傳遞的方法。2掌握中斷程序的定義和調(diào)用方法。掌握中斷向量的設(shè)置方法和DOS系統(tǒng)功能調(diào)用的方法。二、實(shí)驗(yàn)內(nèi)容1從鍵盤輸入一字符,調(diào)用一個(gè)子程序,判斷是否是十六進(jìn)制數(shù)0F的ASCII碼,若是,存儲(chǔ)單元BUF返回一位十六進(jìn)制數(shù),并以十進(jìn)制形式顯示;否則BUF返回0FFH,顯示NO。2用軟中斷實(shí)現(xiàn)上述要求。三、實(shí)驗(yàn)例程及步驟1
21、用子程序?qū)崿F(xiàn)(1)分析題目,并畫出程序流程圖。(2)根據(jù)流程圖編寫程序。參考程序如下:STACK SEGMENT STACK DB 100 DUP(?)STACK ENDSDATA SEGMENT STRING DB 'NO','$' BUF DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATASTART: MOVAX,DATA MOVDS,AX MOVAH,1 INT21HCALL TRAN MOV AH,4CH INT 21H TRAN PROC CMP AL,30H JC NO CMP AL,4
22、0H JNC OVERTEN MOV DL,AL SUB AL,30H MOV BUF,AL MOV AH,2 INT 21H JMP EXITOVERTEN:CMP AL,41H JC NO CMP AL,47H JNC NO SUB AL,37H MOV BUF,AL MOV AH,0 MOV BL,10 DIV BL MOV BL,AH ADD AL,30H MOV DL,AL MOV AH,2 INT 21H MOV DL,BL ADD DL,30H MOV AH,2 INT 21H JMP EXIT NO: MOV BYTE PTR BUF,0FFH MOV AH,9 MOV DX,
23、OFFSET STRING INT 21H EXIT:RET TRAN ENDP CODE ENDS END START(3)編輯匯編程序,用DEBUG程序調(diào)試,查看并核對程序運(yùn)行結(jié)果。2用軟中斷實(shí)現(xiàn)(1)分析題目,并畫出程序流程圖。(2)根據(jù)流程圖編寫程序。參考程序如下:STACK SEGMENT STACK DB 100 DUP(?)STACK ENDSDATA SEGMENT STRING DB 'NO','$' BUF DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATAINT4AH PROC
24、 FAR STI CMP AL,30H JC NO CMP AL,40H JNC OVERTEN MOV DL,AL SUB AL,30H MOV BUF,AL MOV AH,2 INT 21H JMP EXITOVERTEN:CMP AL,41H JC NO CMP AL,47H JNC NO SUB AL,37H MOV BUF,AL MOV AH,0 MOV BL,10 DIV BL MOV BL,AH ADD AL,30H MOV DL,AL MOV AH,2 INT 21H MOV DL,BL ADD DL,30H MOV AH,2 INT 21H JMP EXIT NO: MOV
25、BYTE PTR BUF,0FFH MOV AH,9 MOV DX,OFFSET STRING INT 21H EXIT:IRET INT4AH ENDPSTART: CLD MOV AX,0 MOV ES,AX MOV DI,4*4AH MOV AX,OFFSET INT4AH STOSW MOV AX,SEG INT4AHSTOSWMOVAX,DATA MOVDS,AX MOVAH,1 INT21HINT 4AH MOV AH,4CH INT 21H CODE ENDS END START(3)編輯匯編程序,用DEBUG程序調(diào)試,查看并核對程序運(yùn)行結(jié)果。四、預(yù)習(xí)要求1.復(fù)習(xí)軟中斷的相關(guān)內(nèi)容
26、。2.復(fù)習(xí)教材指令系統(tǒng)章節(jié)內(nèi)容,熟悉子程序的相關(guān)概念及編程。五、實(shí)驗(yàn)報(bào)告要求及思考1根據(jù)實(shí)驗(yàn)要求描述程序設(shè)計(jì)、編譯過程,并畫出相關(guān)流程框圖;詳細(xì)總結(jié)調(diào)試過程的問題及解決方法。2子程序和中斷程序設(shè)計(jì)的有何區(qū)別?3子程序的參數(shù)傳遞有哪些方式?4如何設(shè)置軟中斷?設(shè)置中斷向量表的方法有哪些?實(shí)驗(yàn)五 多位十進(jìn)制減法實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運(yùn)算指令的用法。2熟悉在PC機(jī)上建立、匯編、鏈接、調(diào)試和運(yùn)行匯編語言程序的過程。二、實(shí)驗(yàn)內(nèi)容 將兩個(gè)多位數(shù)十進(jìn)制數(shù)相減,要求被減數(shù),簡述均為ASCII碼形式按順序存放在以DATA1和DATA2為首的5個(gè)內(nèi)存單元中(低位在前),結(jié)果送回DATA1處。三、實(shí)驗(yàn)例
27、程及步驟1實(shí)驗(yàn)原理:將兩個(gè)多位十進(jìn)制數(shù)相減,要求被減數(shù),減數(shù)均以ASCII碼形式按順序存放在以DATA1和DATA2為首的5個(gè)內(nèi)存單元中(低 位在前),結(jié)果保存到DATA1處。先在數(shù)碼管中顯示被減數(shù),然后顯示減數(shù),自己編程序計(jì)算差,并在數(shù)碼管中顯示差。圖5.1 實(shí)驗(yàn)五流程圖2實(shí)驗(yàn)流程圖:參見圖5.1。3參考程序:NEQU05CODESEGMENTASSUMECS:CODE,DS:CODESTART:PUSHCSPOPDSLEASI,DATA1;被減數(shù)的偏移地址;MOVCX,N;被減數(shù)的長度;CALLLEDSHOW;顯示被減數(shù)CALLDELAY;延時(shí)LEASI,DATA2MOVCX,N CALL
28、LEDSHOW;顯示減數(shù)CALLDELAYCLCCALLSUBA;減法運(yùn)算LEASI,DATA1MOVCX,N CALLLEDSHOW;顯示結(jié)果CALLDELAYJMPGAMEOVER SUBAPROCNEAR自己編寫部分 SUBAENDP LEDSHOWPROC ;顯示子程序PUSHAXPUSHBXPUSHDX PUSHFMOVDX,239H;初始化MOVAL,00;左邊輸入,八位顯示外部譯碼八位顯示OUTDX,ALMOVBX,CXMOVCX,08 MOVDX,238H MOVAL,00NEXT1:OUTDX,AL;熄滅所有數(shù)碼管LOOPNEXT1MOVCX,BX NEXT:MOVAL,SI
29、;取被顯示的數(shù)ANDAL,0FHLEABX,LED;查表 XLAT;查表的結(jié)果送ALMOVDX,238HOUTDX,AL;顯示一個(gè)數(shù) INCSILOOPNEXTPOPFPOPDXPOPBXPOPAXRETLEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39HDB5EH,79H,71HLEDSHOWENDP DELAYPROC;延時(shí)子程序PUSHAXPUSHCXPUSHFMOVAL,0AHDELAY1:MOVCX,0FFFFHDELAY2:NOPLOOPDELAY2DECALJNZDELAY1POPFPOPCXPOPAXRETDELAYE
30、NDPGAMEOVER:NOP DATA1DB33H,39H,31H,37H,38H;第一個(gè)數(shù)據(jù)(作為被減數(shù))DATA2DB36H,35H,30H,38H,32H;第二個(gè)數(shù)據(jù)(作為減數(shù))CODEENDSENDSTART四、預(yù)習(xí)要求1仔細(xì)閱讀本實(shí)驗(yàn)指導(dǎo)書。2實(shí)驗(yàn)前作好書面準(zhǔn)備,包括匯編程序清單、調(diào)試步驟及方法。3根據(jù)流程圖編好程序。五、實(shí)驗(yàn)報(bào)告要求及思考1認(rèn)真總結(jié)編程算法。根據(jù)例程,編寫整理出正確的程序,說明程序的功能并作出注釋。2體現(xiàn)出對調(diào)試過程中所遇到的問題是如何解決的,有何體會(huì)。3. 總結(jié)問題解決所用到的知識(shí)。思考如何優(yōu)化算法。實(shí)驗(yàn)六 兩個(gè)數(shù)相乘的實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?掌握乘法指令和循環(huán)指令的
31、用法。2進(jìn)一步掌握程序中各種尋址方法及指令的執(zhí)行過程。二、實(shí)驗(yàn)內(nèi)容實(shí)現(xiàn)十進(jìn)制數(shù)的乘法,被乘數(shù)和乘數(shù)均為以ASCII碼形式存在放在內(nèi)存中,算式及結(jié)果在屏幕上顯示出來。圖6.1 實(shí)驗(yàn)六流程圖三、實(shí)驗(yàn)例程及步驟1實(shí)驗(yàn)流程圖:參見圖6.1。2參考程序:DATASEGMENT DATA1DB32H, 39H, 30H, 35H, 34H DATA2DB33H RESULTDB6DUP(00H) DATAENDS STACKSEGMENTSTACK'STACK' STADB30 DUP(?) TOPEQULENGTH STA STACKENDS CODESEGMENT ASSUMECS:C
32、ODE, DS:DATA, SS:STACK, ES:DATA START:MOVAX, DATA MOVDS, AX MOVAX, STACK MOVSS, AX MOVAX, TOP MOVSP, AX MOVSI, OFFSET DATA2 MOVBL,SI;乘數(shù)2BL ANDBL,00001111B;屏蔽高4位,ASCII碼轉(zhuǎn)化 MOVSI,OFFSET DATA1 MOVDI,OFFSET RESULT MOV CX,05 LOOPl: MOV AL,SI AND AL,00001111B ;取被乘數(shù)1,ASCll變十六數(shù) INC SI ;指向被乘數(shù) 1的十一字符元 MUL BL ;
33、相乘 AAM ;AAM調(diào)整 ADD AL,DI ;結(jié)果低位與前次計(jì)算的進(jìn)位加 AAA ;AAA調(diào)整 MOV DI,AL INC DI ;結(jié)果送存到卜一單元 MOV DI, AH LOOP LOOPl ;計(jì)算結(jié)果高位進(jìn)位送存 MOV CX,06 MOV SI,OFFSET RESULT + 5 DISPL: MOV AH,02 MOV DL,SI ADD DL,30H INT 21H DEC SI LOOP DISPL ;顯示結(jié)果 MOV AX,4C00H INT 21H ;結(jié)束 CODE ENDS END START 3.根據(jù)所給例程,在匯編語言環(huán)境進(jìn)行調(diào)試,根據(jù)流程圖,自己編寫程序,完成結(jié)果
34、。四、預(yù)習(xí)要求1仔細(xì)閱讀本實(shí)驗(yàn)指導(dǎo)書。2實(shí)驗(yàn)前作好書面準(zhǔn)備,包括匯編程序清單、調(diào)試步驟及方法。3根據(jù)流程圖編好程序。五、實(shí)驗(yàn)報(bào)告要求及思考1根據(jù)例程,編寫整理出正確的程序,說明程序的功能并作出注釋。2體現(xiàn)出對調(diào)試過程中所遇到的問題是如何解決的,有何體會(huì)。3. 總結(jié)問題解決所用到的知識(shí)。思考如何優(yōu)化算法。實(shí)驗(yàn)七 BCD碼相乘實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康恼莆沼媒M合的BCD碼表示數(shù)據(jù),并熟悉怎樣實(shí)現(xiàn)組合BCD碼乘法運(yùn)算。二、實(shí)驗(yàn)內(nèi)容實(shí)現(xiàn)BCD碼的乘法,要求被乘數(shù)和乘數(shù)以組合的BCD碼形式存放,各占一個(gè)內(nèi)存單元。乘積存入在另外兩個(gè)內(nèi)存單元中。由于沒有組合的BCD碼乘法指令,程序中采用乘數(shù)1作為計(jì)數(shù)器,累加另一個(gè)乘
35、數(shù)的方法得到計(jì)算結(jié)果。三、實(shí)驗(yàn)例程及步驟1思路分析:將乘法轉(zhuǎn)化為BCD碼加法。2畫出流程圖,編寫程序圖7.1 實(shí)驗(yàn)七流程圖3參考程序: BCDMUL PROC FAR PUSH BX PUSH CX MOV BL,AH MOV DX,00H ADD: CMP BL,0 JE ENDB CLC MOV CL,AL ADD AL,DLDAA MOV DL,AL MOV AL,DH ADC AL,0 DAA MOV DH,AL MOV AL,BL DEC AL DAS MOV BL,AL MOV AL,CL JMP ADD ENDB: POP CX POP BX RET BCDMUL ENDP四、預(yù)
36、習(xí)要求1仔細(xì)閱讀本實(shí)驗(yàn)指導(dǎo)書。2復(fù)習(xí)BCD碼的有關(guān)章節(jié)。3熟悉BCD碼的工作方式及編程。五、實(shí)驗(yàn)報(bào)告要求及思考1總結(jié)什么是BCD碼,它的存儲(chǔ)格式。寫出編寫的程序清單,小結(jié)BCD碼的編程方法。2總結(jié)程序調(diào)試過程中發(fā)現(xiàn)哪些異?,F(xiàn)象,原因是什么,怎樣解決的。3思考,有沒有更加簡化的編程方法?實(shí)驗(yàn)八 字符匹配程序一、實(shí)驗(yàn)?zāi)康恼莆?086的串操作指令的使用方法。二、實(shí)驗(yàn)內(nèi)容用串操作指令設(shè)計(jì)程序,實(shí)現(xiàn)在指定存儲(chǔ)區(qū)6000:06000:100(長度為100H)中尋找匹配字符,遇空格字符(20H)結(jié)束,退出時(shí)給出是否找到的信息。三、實(shí)驗(yàn)例程及步驟 1. 思路分析。 2. 畫出流程圖,編寫程序圖8.1 實(shí)驗(yàn)八流
37、程圖 3. 調(diào)試程序DATA SEGMENT MESS1 DB '按下回車后在6000:0-100范圍內(nèi)尋找空格符!',0DH,0AH,'$' MESS3 DB '找到空格符!',0DH,0AH,'$' MESS4 DB '尋找范圍內(nèi)沒有空格符!',0DH,0AH,'$' DATA ENDS STACK SEGMENT STACKSTA DB 32 DUP(0)TOP DB 0 STACK ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA, SS:S
38、TACKSTART: MOV AX, DATA MOV DS, AX ;初始化 MOV ES, AX MOV AX,STACK MOV SS,AX LEA SP,TOPMOV AH, 09H MOV DX, OFFSET MESS1 INT 21H ;顯示信息1 MOV AH, 08H INT 21H MOV AX, 6000H MOV ES, AX MOV DI, 0 ;偏移量送DI CLD ;清方向標(biāo)志 MOV CX, 0100H ;長度為100H字節(jié) MOV AL, 20H ;空格符20H REPNZ SCASB JNZ AA ;全都不為20H則轉(zhuǎn)AA MOV AH, 09H MOV D
39、X,OFFSET MESS3 INT 21H ;顯示"找到"信息 JMP BBB AA: MOV AH,09H MOV DX,OFFSET MESS4 INT 21H ;顯示"沒找到"信息 BBB: MOV AX,4C00H INT 21H ;結(jié)束CODE ENDS END START四、預(yù)習(xí)要求1. 復(fù)習(xí)字符串操作指令及DOS功能調(diào)用指令。2. 熟悉字符匹配的工作方式及編程。3. 復(fù)習(xí)查找、排序等數(shù)據(jù)結(jié)構(gòu)知識(shí)。五、實(shí)驗(yàn)報(bào)告要求及思考1. 寫出編寫的程序清單,總結(jié)字符匹配的編程方法。2. 總結(jié)程序調(diào)試過程中發(fā)現(xiàn)哪些異?,F(xiàn)象,原因是什么,怎樣解決的。3.
40、思考有關(guān)查找的數(shù)據(jù)結(jié)構(gòu)算法。實(shí)驗(yàn)九 綜合實(shí)驗(yàn)平臺(tái)的認(rèn)識(shí)一、實(shí)驗(yàn)?zāi)康?. 了解綜合實(shí)驗(yàn)箱各個(gè)模塊的分布及原理。熟悉綜合實(shí)驗(yàn)箱的軟件開發(fā)環(huán)境。2. 通過驗(yàn)證性實(shí)例掌握綜合實(shí)驗(yàn)系統(tǒng)的使用。二、實(shí)驗(yàn)內(nèi)容1. 觀看實(shí)驗(yàn)箱各模塊的換份及位置分布。熟悉AEDK88的軟件開發(fā)環(huán)境。2. 驗(yàn)證循環(huán)燈實(shí)驗(yàn),學(xué)會(huì)實(shí)驗(yàn)系統(tǒng)的使用。三、實(shí)驗(yàn)電路及連接實(shí)驗(yàn)8255的工作于方式0,PA口設(shè)置為輸入,PC口設(shè)置為輸出,輸入量為開關(guān)量,通過8255可實(shí)時(shí)顯示在LED燈上。將K0K7用連接線連接至8255的PA0PA7,將L0L7用連接線連至8255的PC0PC7,8255CS用連接線連接至譯碼處的210H孔。圖9.1 循環(huán)燈驗(yàn)
41、證實(shí)驗(yàn)硬件連接圖三、實(shí)驗(yàn)步驟1. 了解實(shí)驗(yàn)箱的硬件實(shí)驗(yàn)?zāi)K組成及其電路原理。主要包括頻率源模塊、存儲(chǔ)器RAM模塊、DMA模塊、8255并行接口模塊、雙色燈模塊、單色燈模塊、參考電壓模塊、鍵盤及顯示模塊(8279)、分頻器模塊、AD轉(zhuǎn)換模塊、DA轉(zhuǎn)換模塊、串行通訊825l模塊、定時(shí)/計(jì)數(shù)器8253模塊、8259中斷控制器模塊、8088CPU及監(jiān)控模塊、單脈沖觸發(fā)模塊和地址譯碼模塊等20幾種模塊。實(shí)驗(yàn)箱的內(nèi)部組成結(jié)構(gòu)圖如圖9.2。圖9.2 綜合實(shí)驗(yàn)箱模塊結(jié)構(gòu)圖2. 打開實(shí)驗(yàn)箱,插上電源線和數(shù)據(jù)線,數(shù)據(jù)線的兩端分別插到PC的串口和實(shí)驗(yàn)箱的仿真機(jī)通訊口(RS-232接口)。打開實(shí)驗(yàn)箱右側(cè)電源,打開實(shí)驗(yàn)
42、箱里的電源。3. 打開調(diào)試軟件:開始程序EAT598AEDK88,如圖9.3所示。4. 進(jìn)入AEDK調(diào)試軟件:設(shè)置通訊口測試串口。如果測試成功則會(huì)彈出成功窗口,如果測試失敗。檢查數(shù)據(jù)線的連接。如圖9.49.5所示。圖9.3 打開調(diào)試軟件圖9.4 進(jìn)入調(diào)試軟件圖9.5 測試串口5. 在斷電的情況下連接連線。6. 調(diào)試軟件:文件打開選擇88asm文件夾里面的程序8255PUT.asm。7. 用快捷鍵Ctrl+F9編譯并連接成功后按F9運(yùn)行程序如圖9.6所示。圖9.6 編譯連接成功運(yùn)行程序五、預(yù)習(xí)要求1. 認(rèn)真閱讀實(shí)驗(yàn)指導(dǎo)書,認(rèn)真學(xué)習(xí)綜合實(shí)驗(yàn)箱使用說明手冊。2. 預(yù)習(xí)PC機(jī)系統(tǒng)的配置和軟件的安裝。3. 預(yù)習(xí)軟件環(huán)境的使用。4. 應(yīng)具備一定的硬件芯片的知識(shí)。六、實(shí)驗(yàn)報(bào)告要求及思考1. 根據(jù)報(bào)告格式要求,畫出系統(tǒng)模塊圖,標(biāo)明各模塊芯片端口地址及功能。2. 根據(jù)實(shí)驗(yàn)要求,按照實(shí)驗(yàn)步驟書寫實(shí)驗(yàn)過程,根據(jù)所給程序的編譯、運(yùn)行,查看結(jié)果是否正確。寫明詳細(xì)的執(zhí)行過程。3. 總結(jié)整個(gè)實(shí)驗(yàn)過程中發(fā)現(xiàn)的異?,F(xiàn)象,描述原因及解決方法。4. 如果PC與實(shí)驗(yàn)箱無法連接應(yīng)如何考慮解決?思考如何使軟件升級。實(shí)驗(yàn)十 RAM讀寫實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?. 掌握單板機(jī)內(nèi)存擴(kuò)充方法和外
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身顧問聘用合同范例
- 公司鋼筋制作合同范例
- 企業(yè)綠化合同范例
- 主播合同違約賠償合同范例
- 與購銷合同范例
- 健身房施工合同范本
- 人才輸送合作合同范例
- 買房交款合同范例
- 個(gè)人土地賣合同范例
- 臨時(shí)教師解聘合同范例
- 清華大學(xué)考生自述
- 高填方路基施工危險(xiǎn)源辨識(shí)及風(fēng)險(xiǎn)評價(jià)
- DB33_T 2352-2021鄉(xiāng)鎮(zhèn)運(yùn)輸服務(wù)站設(shè)置規(guī)范(可復(fù)制)
- 《紅樓夢 - 林黛玉進(jìn)賈府》PPT課件(教學(xué))
- 【新教材】高中語文超全課內(nèi)知識(shí)梳理(選擇性必修中冊)
- 血?dú)夥治雠R床基礎(chǔ)(課堂PPT)
- 第三章 文獻(xiàn)的版本
- 等截面雙鉸圓拱內(nèi)力計(jì)算
- ABB變頻器培訓(xùn)資料
- 五年級下冊英語課件--Lesson--7《Arriving-in-Beijing-》|冀教版-(三起)-(共21張PPT)
- NBC(一體式)系列氣體保護(hù)焊機(jī)說明書(凱爾達(dá))
評論
0/150
提交評論