南昌大學(xué)微機(jī)原理與接口技術(shù)實驗報告_第1頁
南昌大學(xué)微機(jī)原理與接口技術(shù)實驗報告_第2頁
南昌大學(xué)微機(jī)原理與接口技術(shù)實驗報告_第3頁
南昌大學(xué)微機(jī)原理與接口技術(shù)實驗報告_第4頁
南昌大學(xué)微機(jī)原理與接口技術(shù)實驗報告_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實 驗 報 告實驗課程: pc機(jī)原理與接口技術(shù) 姓 名: 學(xué) 號: 專業(yè)班級: 2016年 6月目錄實驗一 熟悉dos環(huán)境和匯編軟件的使用實驗二 debug的使用實驗三 順序結(jié)構(gòu)程序設(shè)計實驗實驗四 選擇結(jié)構(gòu)程序設(shè)計實驗實驗五 循環(huán)結(jié)構(gòu)程序設(shè)計實驗實驗六 綜合程序設(shè)計實驗實驗一:熟悉dos環(huán)境和匯編軟件的使用一、實驗要求: 必做二、實驗類型: 驗證三、實驗學(xué)時:2四、實驗地點:機(jī)房五、實驗?zāi)康?1、熟悉dos環(huán)境和dos基本操作。2、掌握匯編程序的使用方法:masm,link,edit(tc),debug六、實驗內(nèi)容:(一)、熟悉dos環(huán)境1、 ms-dos的啟動(二)、熟悉一些常用的dos命令

2、 1、更改盤符。 2、建立子目錄(文件夾)。 3、顯示/更改當(dāng)前目錄。 4、顯示磁盤目錄的內(nèi)容。(三)、熟悉調(diào)試程序debug.exe的應(yīng)用,練習(xí)debug的常用命令1匯編語言源程序的建立程序要求是:在屏幕上顯示“hello, world !”。設(shè)定源程序的文件名為hello.asm。 在dos狀態(tài)下鍵入以下命令:tc輸入以下源代碼并保存data segment buf db 'hello, world !$'data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,offse

3、t buf mov ah,9 int 21h mov ah,4ch int 21hcode ends end start 2 將源程序文件匯編成目標(biāo)程序文件masm hello.asmmasm宏匯編程序的主要功能有以下3點:(1)檢查源程序中存在的語法錯誤,并給出錯誤信息。(2)若源程序經(jīng)匯編后沒有語法錯誤,則產(chǎn)生擴(kuò)展名為.obj的目標(biāo)程序文件。(3)若源程序中使用了宏指令,則匯編程序?qū)⒄归_宏指令。源程序建立以后,在dos狀態(tài)下,采用宏匯編程序masm對源程序文件進(jìn)行匯編。 3用連接程序生成可執(zhí)行程序文件經(jīng)匯編以后產(chǎn)生的目標(biāo)程序文件(.obj文件)并不是可執(zhí)行程序文件,必須經(jīng)過連接以后,才能成

4、為可執(zhí)行文件(即擴(kuò)展名為.exe)。 link hello.obj如果匯編過程中有錯誤產(chǎn)生,則匯編程序?qū)@示出錯行號和錯誤信息。最后顯示的部分是警告錯誤及嚴(yán)重錯誤數(shù)。 當(dāng)程序中沒有定義堆棧段或雖然定義但不符合要求時,link在最后一行會給出類似 “l(fā)ink : warning l4021: no stack segment”的警告信息,表示用戶程序沒有定義堆棧段。該警告信息不影響可執(zhí)行程序的生成和正常運行,因為若用戶程序沒有定義堆棧段,程序運行時會自動使用系統(tǒng)提供的默認(rèn)堆棧。4程序的執(zhí)行當(dāng)我們建立了正確的可執(zhí)行文件以后,就可以直接在dos狀態(tài)下執(zhí)行該程序。hello.exe 如下圖所示。如果使

5、用測試數(shù)據(jù)均可運行并能看到正確結(jié)果,則說明該程序編寫正確。但若得不到正確結(jié)果或結(jié)果無法看到(沒有結(jié)果輸出的情況下),則需要使用調(diào)試工具來調(diào)試程序了。7、 寫出實驗小結(jié),內(nèi)容包括實驗心得(收獲)、不足之處和今后應(yīng)注意的問題。 由于是第一次實驗,對整個編程環(huán)境和實驗內(nèi)容都不是很熟悉,但經(jīng)過這次實驗,對這 些都有一些大致的了解,特別是學(xué)會了如何調(diào)試程序,也對從匯編課上學(xué)習(xí)到的理論知識有了更深刻的認(rèn)識,經(jīng)過自己動手編程,對匯編語言更加熟悉,通過將理論用于實踐,也對學(xué)習(xí)匯編知識有很大幫助。實驗二:debug的使用一、實驗要求: 必做二、實驗類型: 驗證三、實驗學(xué)時:2四、實驗地點:機(jī)房五、實驗?zāi)康?1、

6、熟悉debug基本操作。六、實驗內(nèi)容: 1、debug程序的啟動在dos環(huán)境下,鍵入debug2、debug的主要命令(1)匯編命令a(2)反匯編命令u(3) 運行命令g(4) 追蹤命令t(5)顯示內(nèi)存單元內(nèi)容的命令d(6)修改內(nèi)存單元內(nèi)容的命令e略(7)檢查和修改寄存器內(nèi)容的命令r(8)命名命令n略(9)裝入命令l略(10) 寫命令w略(11) 退出debug命令q 略七、實驗小結(jié)及心得體會 通過本次實驗,了解debug調(diào)試程序常用命令的基本格式、主要功能和使用方法。熟悉進(jìn)入或退出debug調(diào)試程序運行界面的步驟。掌握用debug調(diào)試程序進(jìn)行程序編輯、調(diào)試、運行、結(jié)果檢查的基本方法。進(jìn)一步匯

7、編語言上機(jī)環(huán)境及基本操作。感覺它比其他高級語言確實要復(fù)雜,但是能更一步體會計算機(jī)是如何操作的!通過對debug 的運用,我們了解到了很多關(guān)于電腦方面的知識,也知道了debug 的強(qiáng)大功能。我們應(yīng)多加練習(xí),以便熟悉的掌握這方面的知識。實驗三 順序結(jié)構(gòu)程序設(shè)計實驗一、實驗要求: 必做二、實驗類型: 驗證三、實驗學(xué)時:2四、實驗地點:機(jī)房五、實驗?zāi)康?1、掌握順序程序的設(shè)計方法。六、實驗內(nèi)容:1. 編寫程序?qū)崿F(xiàn):從鍵盤輸入兩個1位的十進(jìn)制數(shù),計算這兩個數(shù)之和,并將結(jié)果在屏幕上顯示出來。 提示:數(shù)據(jù)段的格式可定義為: data segment infor1 db 'plea

8、se input the first data(<10):$' infor2 db 0ah,0dh,'please input the second data(<10):$' infor3 db 0ah,0dh,'the result is:$' data ends code segment assume cs:code start: mov cx,2 mov bl,0 next: mov ah,1 int 21h sub al,30h jc next cmp al,9h ja next add al,bl daa mov bl,al mov

9、 dl,13 mov ah,2 int 21h mov dl,10 int 21h loop next mov cl,4 mov dh,2 next1: rol bl,cl mov dl,bl and dl,0fh add dl,30h mov ah,2 int 21h dec dh jnz next1 mov ah,1 int 21h mov ah,4ch int 21h code ends end start2編寫程序?qū)崿F(xiàn):從鍵盤輸入09中任意一個自然數(shù),將其平方值在屏幕上顯示出來(要求使用查表法)。輸出infor1信息(09h)接收第一個輸入數(shù)(01h)接收第一個輸入數(shù)-30h輸出inf

10、or2信息(09h)接收第二個輸入數(shù)(01h)接收第二個輸入數(shù)-30h輸出infor3信息(09h)倆加數(shù)相加并修正和的十位數(shù)+30h后輸出(02h)和的個位數(shù)+30h后輸出(02h)退出datas segment table db 00h,01h,04h,09h,16h,25h,36h,49h,64h,81h datas ends stacks segment stacks ends codes segment assume cs:codes,ds:datas,ss:stacks start: mov ax,datas mov ds,ax mov ah,07h int 21h and al,

11、0fh mov dl,al xor dh,dh mov bx,offset table add bx,dx mov al,bx mov cl,04h mov bl,al shr al,cl mov dl,al add dl,30h mov ah,02h int 21h and bl,0fh mov dl,bl add dl,30h mov ah,02h int 21h mov ah,4ch int 21h codes ends end start七、實驗心得 (1)了解了編制匯編語言程序的步驟:分析題意,確定算法;根據(jù)算法畫出程序框圖; 根據(jù)框圖編寫程序;上機(jī)調(diào)試程序。 (

12、2)理解了調(diào)試過程的反復(fù)性,發(fā)生錯誤時,一步步往回驗證,直到找到錯誤,修改后,繼續(xù)重新執(zhí)行。 (3)通過單步執(zhí)行命令t跟蹤調(diào)試,提高了對寄存器根據(jù)指令變化的理解;同時對debug命令格式、功能有了基礎(chǔ)的了解。實驗四 選擇結(jié)構(gòu)程序設(shè)計實驗一、實驗?zāi)康? 1. 掌握分支程序的設(shè)計方法。 2. 了解小寫和大寫字母的ascii碼表示及其轉(zhuǎn)換方法,了解數(shù)字及其他字符的ascii碼表示方法。二、實驗儀器: pc機(jī)一臺三、實驗內(nèi)容 1、從鍵盤輸入一字符,判斷該字符是小寫字母、大寫字母、數(shù)字還是其它字符。若輸入為小寫字母,則顯示“you input a lowercase letter!”; 若輸入

13、為大寫字母,則顯示“you input a uppercase letter!”; 若輸入為數(shù)字,則顯示“you input a digit!”; 若輸入為其它字符,則顯示“you input other letter!”。 2、在屏幕上顯示“are you really want to exit?”,然后從鍵盤輸入一字符,若輸入“y”或“y”,則顯示“thank you for your using!”; 若輸入“n”或“n”,則顯示“l(fā)ets continue!”; 若輸入其它字符,則顯示“you press an error key!”后程序結(jié)束。四、實驗程序與流程圖實驗步驟 

14、(1) 完成匯編語言源程序的編輯和連接過程。 (2) 利用debug進(jìn)行程序調(diào)試和運行。實驗程序(1):dseg segmentmsglf db 0ah, 0dh, '$'msgup db 'you input a uppercase letter!', 0ah, 0dh, '$'msglo db 'you input a lowercase letter!', 0ah, 0dh, '$'msgnum db 'you input a digit!', 0ah, 0dh,

15、 '$'msgot db 'you input other letter!', 0ah, 0dh, '$'dseg endscseg segmentassume ds:dseg, cs:csegbegin:mov ax, dsegmov ds, axmov ah, 1int 21hmov bl, allea dx, msglfmov ah, 9int 21hmov al, blcmp al, '0'jl otherccmp al, '9'jg notnumlea dx, msgnumjmp outputnotnum

16、:cmp al, 'a'jl otherccmp al, 'z'jg notuplea dx, msgupjmp outputnotup:cmp al, 'a'jl otherccmp al, 'z'jg otherclea dx, msglojmp outputotherc:lea dx, msgotoutput:mov ah, 9int 21hmov ah, 4chint 21hcseg endsend begin開始顯示提示信息“please press any key to input a letter 及功能號為1的單字

17、符序列實驗程序(2)data segment infor1 db 0ah,0dh,"are you really want to exit?:$" infor2 db 0ah,0dh,"thank you for your using!$" infor3 db 0ah,0dh,"let's continue!$" infor4 db 0ah,0dh,"you press an error key!$" data ends code segment assume cs:code,ds:data start:

18、mov ax,data mov ds,ax mov dx,offset infor1 mov ah,09h int 21h mov ah,01h int 21h cmp al,'y' je yes cmp al,'n' je no cmp al,'y' je yes cmp al,'n' je no jmp othe yes: mov dx,offset infor2 mov ah,09h int 21h jmp pend no: mov dx,offset infor3 mov ah,09h int 21h jmp pend o

19、ther: mov dx,offset infor4 mov ah,09h int 21h jmp pend pend: mov ah,4ch int 21h code ends end start實驗五 循環(huán)結(jié)構(gòu)程序設(shè)計實驗一、實驗要求: 必做二、實驗類型: 驗證三、實驗學(xué)時:2四、實驗地點:機(jī)房五、實驗?zāi)康?1、掌握循環(huán)程序的設(shè)計方法。2、掌握比較指令、轉(zhuǎn)移指令和循環(huán)指令的使用方法。3、進(jìn)一步掌握調(diào)試工具的使用方法。六、實驗內(nèi)容1、試編寫一程序,要求能從鍵盤接收一個個位數(shù)n,然后響鈴n次(響鈴的ascii碼為07h)。 提示:用2號功能號輸出07h就會響鈴一次。七、實驗報告要求 1、畫出流

20、程圖,編寫源程序,調(diào)試成功。 2、寫出實驗小結(jié),內(nèi)容包括實驗心得(收獲)、不足之處和今后應(yīng)注意的問題。data segment tip db 'please input a number:','$'data endscodes segment assume cs:codes,ds:datastart: mov ax,data mov ds,ax lea dx,tip mov ah,09h int 21h mov ah,01h int 21h and ax,01h mov cx,ax be:mov dl,07h mov ah,02h int 21h loop be

21、codes ends end start 輸入數(shù)字后聽到對應(yīng)次數(shù)的響鈴八、實驗心得: 本次實驗主要是循環(huán)結(jié)構(gòu)的程序。通過本次實驗,學(xué)習(xí)匯編語言中循環(huán)結(jié)構(gòu)類型的程序的編輯、編譯與連接,更好的掌握分支程序的結(jié)構(gòu)。通過本次實驗,我對循環(huán)結(jié)構(gòu)有了一定的理解,尤其是loop循環(huán)指令,對于cmp指令和jzn、jz等指令也有了一定的了解 實驗六 綜合程序設(shè)計實驗一、實驗要求: 必做二、實驗類型: 驗證三、實驗學(xué)時:2四、實驗地點:機(jī)房五、實驗?zāi)康?1、掌握綜合程序的設(shè)計方法。六、實驗內(nèi)容1、編寫一個完整的8086匯編語言程序,從附加段中首地址為adr1(變量名)連續(xù)存放的100個字型無符號整數(shù)中找

22、出最大數(shù),并將此數(shù)及其偏移地址分別放入變量max和maxm中2、有一個首地址為array的n個字的數(shù)組,請編程序使該數(shù)組中的數(shù)按照從大到小的次序排序。(采用冒泡排序算法)七、實驗報告要求 1、畫出流程圖,編寫源程序,調(diào)試成功。 2、寫出實驗小結(jié),內(nèi)容包括實驗心得(收獲)、不足之處和今后應(yīng)注意的問題。data segmentmov ax,es:siadr1 dw 100 dup(?)lop1:cmp ax,es:simax dw ?jae lop3maxm dw ?mov ax,es:sidata endsmov es:maxm,sicode segmentlop3:add si,2assume cs:code,ds:data,es:dataloop lop1main proc farmov es:max,ax mov ax,datamov ah,4chmov es,axint 21hmov

溫馨提示

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

最新文檔

評論

0/150

提交評論