微機原理實驗教案_第1頁
微機原理實驗教案_第2頁
微機原理實驗教案_第3頁
微機原理實驗教案_第4頁
微機原理實驗教案_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

四、程序框圖

實驗一排序程序的設計與實踐

第一頁第二頁,共34頁。五、程序清單DATASEGMENTBUFDB21H,34H,0A6H,78H,0F8H,88H,0C9H,01H,33H,11HLENEQU$-BUFDATAENDSSTACKSEGMENTBUFSDB300DUP(?)LENSEQU$-BUFSSTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,LENS

S5:MOVCX,LEN

DECCXA53:MOVBX,OFFSETBUFPUSHCXA52:MOVAX,[BX]CMPAL,AHJCA51A54:INCBX

LOOPA52POPCXLOOPA53MOVAH,4CHINT21HA51:XCHGAL,AHMOV[BX],AXJMPA54CODEENDSENDSTART實驗一排序程序的設計與實踐

第二頁第三頁,共34頁。六、實驗步驟及要求

(1)、在EDIT環(huán)境下鍵入編寫程序,保存為*.asm;(2)、編譯、連接源程序*.asm,分別生成*.obj、*.lst和*.exe文件。(3)、在TD調(diào)試環(huán)境下,用連續(xù)單步方式調(diào)試*.exe,觀察排序時數(shù)據(jù)移動變化情況。(4)、改程序為按從小到大排序。實驗一排序程序的設計與實踐

第三頁第四頁,共34頁。七、實驗報告要求(包含預習報告要求和最終報告要求)1.實驗名稱:

注意實驗項目名稱應與實驗大綱中的實驗項目名稱相符。2.實驗目的

3.實驗內(nèi)容及要求預習最終

4.程序設計(從大到?。﹫蟾嬉髨蟾嬉蟀鞒虉D和源程序,源程序必須加必要注釋。

5.實驗結(jié)果及結(jié)果分析6.實驗中出現(xiàn)的問題及解決方法7.回答思考題(如何改為由小到大排序)

實驗一排序程序的設計與實踐

第四頁第五頁,共34頁。實驗一求最大值程序

一、實驗目的1.掌握條件判斷指令的用法。2.掌握循環(huán)程序的設計方法。3.學習在屏幕上顯示字符的方法。4.學習在PC機上建立、匯編、鏈接、調(diào)試和運行匯編語言的過程。

二、實驗內(nèi)容

在首地址為DATA1的數(shù)組中找出最大值,并在屏幕上顯示出來。DATA1DB35H,07H,0ABH,56H,12H,98H,0CDH,76H,0FAH,0BFH顯示結(jié)果如下圖所示:第五頁第六頁,共34頁。實驗一求最大值程序

三、程序框圖

第六頁第七頁,共34頁。實驗一求最大值程序

四、實驗步驟及要求(1)輸入程序,進行調(diào)試,運行出求最大值程序的結(jié)果。(2)熟悉TD調(diào)試環(huán)境下,在TD環(huán)境下單步運行本程序,以加深對程序指令的理解。(3)如何把程序改成求最小值的程序。(4)如果為有符號數(shù),其最大值、最小值怎么求取。第七頁第八頁,共34頁。實驗一求最大值程序

五、程序介紹

要掌握這個程序,需要理解以下幾點:

1.程序完成的任務有:定義及初始化、求最值、顯示最值。2.怎么顯示字符?例如顯示“A”,利用INT21H的AH=02H號子功能,顯示DL的內(nèi)容,DL中的值為字符對應的ASCII碼值。

3.宏定義介紹DISXMACROX

MOVDL,XMOVAH,02INT21HENDM4.如果結(jié)果最大值是FAH,存儲在AL中,如何顯示?先AL暫存BL,對AL邏輯右移4位,再判斷是不是大于9,若大于9加37H,否則加30H,然后送去顯示。取出暫存的BL送AL,然后與0FH相與,再判斷是不是大于9,若大于9加37H,否則加30H,再送去顯示。5.返回DOS可用INT21H的AH=4CH號子功能。6.如何顯示字符串?利用INT21H的AH=09H號子功能,DX指向顯示字符串首地址。第八頁第九頁,共34頁。實驗一求最大值程序

六、實驗程序DISXMACROXMOVDL,XMOVAH,02INT21HENDMSTACKSEGMENTSTADB512DUP(?)TOPEQULENGTHSTASTACKENDSDATASEGMENTBUFDB'MAXNUMBER:',0DH,0AH,'$'DATA1DB35H,07H,0ABH,56H,12HDB98H,0CDH,76H,0FAH,0BFHBLOCKDB10DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,STACKMOVSS,AXMOVSP,TOPMOVAX,DATAMOVDS,AXMOVDX,OFFSETBUFMOVAH,09INT21HMOVSI,OFFSETBLOCKMOVCX,[SI]DECCXMOVSI,OFFSETDATA1MOVAL,[SI]MAX1:INCSICMPAL,[SI]JANEXTMOVAL,[SI];AL中定義為最大值NEXT:LOOPMAX1第九頁第十頁,共34頁。實驗一求最大值程序

MOVBL,ALMOVCL,04SHRAL,CLCMPAL,09JAMAX4ADDAL,30HMAX2:DISXALMOVAL,BLANDAL,0FHCMPAL,09JAMAX5ADDAL,30HMAX3:DISXAL

MOVAH,4CHINT21HMAX4:ADDAL,37HJMPMAX2MAX5:ADDAL,37HJMPMAX3CODEENDSENDSTART第十頁第十一頁,共34頁。實驗一求最大值程序

七、實驗報告要求(包含預習報告要求和最終報告要求)1.實驗名稱:

注意實驗項目名稱應與實驗大綱中的實驗項目名稱相符。2.實驗目的

3.實驗內(nèi)容及要求預習最終

4.程序設計(求最大值)報告要求報告要求包含流程圖和源程序,源程序必須加必要注釋。

5.實驗結(jié)果及結(jié)果分析6.實驗中出現(xiàn)的問題及解決方法7.回答思考題

第十一頁第十二頁,共34頁。實驗二多位十進制數(shù)加法程序設計與調(diào)試

一、實驗目的1.學習宏指令的編寫方法。2.學習在屏幕上顯示字符串的方法。3.學習子程序的調(diào)用方法。4.掌握數(shù)據(jù)傳送和算術(shù)運算指令的用法。5.掌握多位十進制數(shù)加(減)程序的編制方法。6.學習在PC機上建立、匯編、鏈接、調(diào)試和運行匯編語言的過程。第十二頁第十三頁,共34頁。實驗二多位十進制數(shù)加法程序設計與調(diào)試

二、實驗內(nèi)容

將兩個5位十進制數(shù)相加,要求被加數(shù)與加數(shù)均以ASCII碼形式各自順序存放在DATA1和DATA2為首的5個內(nèi)存單元中,結(jié)果送DATA3處,并在屏幕上顯示出來。

DATA1DB33H,39H,31H,37H,34HDATA2DB36H,35H,30H,38H,32H

47193+2805675249第十三頁第十四頁,共34頁。實驗二多位十進制數(shù)加法程序設計與調(diào)試

三.程序理解介紹

1.加數(shù)與被加數(shù)均以ASCII碼形式存在內(nèi)存中,在進行運算之前,先轉(zhuǎn)換為十六進制數(shù)的形式(只要減去30H即可)。2.多位數(shù)的加法要用帶進位的加法指令ADC,并且在首次相加之前要注意先清進位位。

3.因為是非組合的BCD碼(或ASCII碼)的運算,所以用十進制調(diào)整指令AAA對運算結(jié)果加以修正。

4.運算結(jié)果在送顯示之前應轉(zhuǎn)換為用ASCII碼表示的數(shù)字串(加上30H即可)。5.在屏幕上顯示結(jié)果可利用INT21H的02號子功能,因該功能一次只能顯示一個字符,故對于顯示數(shù)字串來說,要編寫一段顯示子程序,反復使用02H號子功能。

6.加數(shù)與被加數(shù)為5位,而和可能為5位或6位,即考慮到帶進位和不帶進位的情況。在顯示和數(shù)時最好按實際情況顯示,而不要出現(xiàn)0。

第十四頁第十五頁,共34頁。實驗二多位十進制數(shù)加法程序設計與調(diào)試

四.實驗程序DISXMACROXMOVDL,XMOVAH,02HINT21HENDMDATASEGMENTMESSDB'TWOMULBITDECIMALNUMBERSADD',0DH,0AHDB0DH,0AH,'$'DATA1DB33H,39H,31H,37H,34HDATA2DB36H,35H,30H,38H,32HDATA3DB6DUP(?)DATAENDSSTACKSEGMENTSTADB20DUP(?)TOPEQULENGTHSTASTACKENDS

第十五頁第十六頁,共34頁。實驗二兩個多位十進制數(shù)相加的

程序CODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXMOVDX,OFFSETMESSMOVAH,09HINT21HMOVSI,OFFSETDATA1MOVBX,05CALLDISPLDISX2BHMOVSI,OFFSETDATA2MOVBX,05CALLDISPLMOVSI,OFFSETDATA1MOVDI,OFFSETDATA2

CALLADDADISX3DHMOVSI,OFFSETDATA3MOVBX,05CALLDISPLDISX0DHDISX0AHMOVAH,4CHINT21HDISPLPROCNEARDS1:DISX[SI+BX-1]DECBXJNZDS1RETDISPLENDP第十六頁第十七頁,共34頁。實驗二多位十進制數(shù)加法程序設計與調(diào)試

ADDAPROCNEARMOVDX,SIMOVBP,DIMOVBX,05AD1:SUBBYTEPTR[SI+BX-1],30HSUBBYTEPTR[DI+BX-1],30HDECBXJNZAD1MOVCX,05CLCMOVBX,OFFSETDATA3AD2:MOVAL,[SI]MOVAH,[DI]ADCAL,AHAAAMOV[BX],AL

INCSIINCDIINCBXLOOPAD2MOVSI,OFFSETDATA3MOVBX,05AD3:ADDBYTEPTR[SI+BX-1],30HDECBXJNZAD3RETADDAENDPCODEENDSENDSTART

第十七頁第十八頁,共34頁。實驗二多位十進制數(shù)加法程序設計與調(diào)試

五.實驗要求先完成不考慮最高位相加產(chǎn)生進位的程序的調(diào)試,然后改寫程序完成考慮進位相加,并能正常顯示的程序。47193+68056115249第十八頁第十九頁,共34頁。實驗二多位十進制數(shù)加法程序設計與調(diào)試

六、實驗報告要求(包含預習報告要求和最終報告要求)1.實驗名稱:

注意實驗項目名稱應與實驗大綱中的實驗項目名稱相符。2.實驗目的

3.實驗內(nèi)容及要求預習最終

4.程序設計報告要求報告要求包含流程圖和源程序,源程序必須加必要注釋。

5.實驗結(jié)果及結(jié)果分析6.實驗中出現(xiàn)的問題及解決方法7.回答思考題

第十九頁第二十頁,共34頁。實驗三十進制數(shù)轉(zhuǎn)化為二進制數(shù)程序設計

一、實驗目的

1.掌握數(shù)制轉(zhuǎn)換的基本原理。2.學會編寫十進制數(shù)轉(zhuǎn)化為二進制數(shù)的程序。3.掌握鍵入字符串的接收方法。4.掌握在屏幕上顯示字符及字符串的方法。第二十頁第二十一頁,共34頁。實驗三十進制數(shù)轉(zhuǎn)化為二進制數(shù)程序設計

二、實驗內(nèi)容及結(jié)果

將十進制數(shù)轉(zhuǎn)化為二進制數(shù)。假定十進制輸入數(shù)的范圍為0~65535,要求通過鍵盤輸入,并且將轉(zhuǎn)換后的二進制數(shù)以十六進制數(shù)的形式顯示在屏幕上。

第二十一頁第二十二頁,共34頁。實驗三十進制數(shù)轉(zhuǎn)化為二進制數(shù)程序設計

三、實驗重點問題

1.轉(zhuǎn)換方法十進制數(shù)轉(zhuǎn)化為二進制數(shù)。十進制數(shù)的范圍為0~65535,通過鍵盤輸入十進制數(shù),轉(zhuǎn)換后的二進制數(shù)結(jié)果以十六進制數(shù)形式在屏幕上顯示。十翻二所采用的基本公式為(0~65535轉(zhuǎn)化為××××H):高位×10+低位例如:十進制數(shù)135={[(0×10)+1]×10+3}×10+5

第二十二頁第二十三頁,共34頁。實驗三十進制數(shù)轉(zhuǎn)化為二進制數(shù)程序設計

2.

0AH號系統(tǒng)功能調(diào)用的使用格式如下:

BUFDB15;定義緩沖區(qū)DB?DB15DUP(?)MOVDX,OFFSETBUF;0AH號系統(tǒng)功能調(diào)用MOVAH,0AHINT21H3.

每次加低位運算前均要將低位數(shù)由ASCII碼轉(zhuǎn)換為十進制數(shù)。4.將轉(zhuǎn)換結(jié)果送顯示可利用INT21H的02號子功能,送顯示前應轉(zhuǎn)換為ASCII碼(DISX)。第二十三頁第二十四頁,共34頁。實驗三十進制數(shù)轉(zhuǎn)化為二進制數(shù)程序設計

四、實驗程序DISXMACROXMOVAH,02MOVDL,XINT21HENDMCRLFMACRODISX0DHDISX0AHENDMSTACKSEGMENTSTADB512DUP(?)TOPEQULENGTHSTASTACKENDSDATASEGMENTBUFDB6DB?DB6DUP(?)MES1DB'INPUTDECIMALISTNUMBER:','$'MES2DB'OUTPUT:','$'MES3DB'INPUTERROR!','$'DATAENDS第二十四頁第二十五頁,共34頁。實驗三十進制數(shù)轉(zhuǎn)化為二進制數(shù)程序設計

CODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXMOVSP,TOPMOVDX,OFFSETMES1MOVAH,09HINT21H

MOVDX,OFFSETBUFMOVAH,0AHINT21HCRLFCRLFMOVSI,OFFSETBUFMOVCL,[SI+1]XORCH,CHXORAX,AXCLCSFE1:MOVBX,10MULBX;(AX)*(BX)=DX:AXCMPDX,0JNEERROMOVDL,[SI+2]CMPDL,30HJBERROCMPDL,39HJAERROANDDL,0FHXORDH,DHADDAX,DXJCERROINCSILOOPSFE1第二十五頁第二十六頁,共34頁。實驗三十進制數(shù)轉(zhuǎn)化為二進制數(shù)程序設計

PUSHAXMOVDX,OFFSETMES2MOVAH,09HINT21HPOPAXCALLDISUPJMPSFE2CRLFERRO:MOVDX,OFFSETMES3MOVAH,09HINT21HSFE2:MOVAH,4CHINT21HDISUP:MOVCH,02HMOVBX,AXDISUP1:MOVAL,BHMOVCL,04SHRAL,CLCMPAL,09JADISUP4ADDAL,30HDISUP2:DISXALMOVAL,BHANDAL,0FHCMPAL,09JADISUP5ADDAL,30HDISUP3:DISXALDECCHJNZDISUP6DISX48HRET第二十六頁第二十七頁,共34頁。實驗三十進制數(shù)轉(zhuǎn)化為二進制數(shù)程序設計

DISUP4:

溫馨提示

  • 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

提交評論