


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、微機原理與匯編語言實驗報告學號:*班級:*姓名:*指導教師:*一. 實驗目的1. 通過上機實驗進一步熟悉并掌握匯編語言的指令系統(tǒng)和尋址方式;2. 熟悉匯編語言程序上機的流程,以及與實驗有關的系統(tǒng)軟件(如編輯程序、 匯編程序、連接程序和調試程序等)3. 學習匯編程序設計的基本方法和技能,熟練掌握用匯編語言設計、編寫、 調試和運行程序的方法4. 能夠獨自編寫,調試,并成功運行一個完整的程序。二. 實驗內容與步驟1. 掌握匯編語言程序上機過程首先,新建文本文檔后將擴展名改為.ASM,這是匯編語言源程序的文件格式, 以記事本形式打開后在其中鍵入所編寫的程序。 第一次題目是在屏幕上顯示一串 字符串,在老
2、師的指導下,編寫的程序如下:data segme ntn ote db 'hello','$'data endscode segme ntmai n proc farassume cs:code,ds:data,es:datastart:push dssub ax,axpush axmov ax,datamov ds,axmov es,axmov ah,09hlea dx,note int 21h main endpcode endsend start之后,要進行編譯和運行。源程序經過翻譯程序成為機器能夠識別的目標程 序,目標程序再經過連接程序連接后轉換成在機器
3、上可執(zhí)行的程序。基本流程圖如下:在編譯的過程中,程序查出的主要是語法上的錯誤, 如果有錯,則不能通過匯編,要糾錯后重新匯編直到無錯為止。最后,生成的.EXE文件即為可執(zhí)行文件,從磁盤調入內存運行,得到運行 結果。上述程序的運行結果為在屏幕上顯示出“hello ”。2. 編程完成任意兩個兩位數(shù)的加法運算編程任務的基本要求為:從鍵盤輸入任意兩個兩位數(shù)相加,將結果顯示在屏 幕上。剛開始拿到題目后,頭腦里是比較混亂的。經過與同學的探討之后,我們大 概確定出要完成整個功能,需經過以下過程:將輸入的ASCII碼與十進制數(shù)值進 行轉換,并保存在寄存器中;通過調用程序將兩個數(shù)相加,并將結果保存;將結 果顯示在
4、屏幕上。雖然有一個基本的思路,但還是沒有辦法下手敲代碼,于是在網上查找有關 資料,網上的一些講解和實例也給我們提供了一些啟發(fā)。整個過程通過主程序調 用子程序來完成,即如下格式:CALL過程名RET過程以語句PRO(開頭,用語句ENDP吉束。所以我理解這和我們學過的 C+h編程 里調用函數(shù)是相似的,在 C+中,首先將函數(shù)定義,而后在主程序中調用這些函 數(shù)完成運算,而匯編語言中是定義子程序的功能,在主程序中調用這些功能進行 運算。之后,我們開始嘗試寫代碼,但仍然是參考網上的一些實例來進行。首先,數(shù)據段的定義:data segme ntin data dw 2 dupoutdata dw 1 dup
5、notein1 db 'please in put the first decimal nu mber(0-99):$'notein2 db 'please in put the sec ond decimal nu mber(0-99):$'noteout db 'the result of addition is:$'no tewar n db 'warni ng:wro ng char!$'no teaga in db 'please in put aga in:$'data endsshow macro a
6、ddrmov ah,9hlea dx,addrint 21hendm這部分定義了在屏幕上現(xiàn)實的提示和輸入數(shù)值的位數(shù)。值得一提的是宏定義 這一部分:show為宏名,之后的三行代碼是對 9號功能的調用,即顯示以$結尾 的字符串,經此定義后,就可以在源程序中調用宏,只需在需要復制宏體的地方 寫宏的名字show即可。以上部分為第二次的實驗過程,最終的程序沒有寫出來,但還是有一些收獲 的。第一,是將這個運算的基本過程理解了,特別是對于主程序調用子程序的方式有了更深一步的認識,將其類比到 C+語言中更有利于學習,所以各種編程語 言應該都是有相通之處的。第二,了解了宏指令的定義和調用,老師課上是講解 過的,
7、但當時沒有特別注意,現(xiàn)在自己寫代碼時才意識到這個問題。第三,自己 寫代碼時才注意到基礎知識的不牢固,通過這一過程鞏固一下基本知識也算一個收獲吧。第三次實驗課,老師把完整的代碼展示給我們并仔細的講解了一遍。經過老 師的講解,我們對整個運算過程都有了比較清晰的理解,但再一次自己動手的時候又陷入昨天一樣的困境,無從下手,只得根據網上的實例和老師的代碼將過程 基本還原,第二部分代碼如下:code segme ntassume cs:code,ds:data,es:datamai n proc farstart:push dssub ax,axpush axmov ax,datamov ds,axmov
8、 es,axshow noteinlcall crlfcall deci_i nputmov in data,bxcall crlfshow notein2call crlfcall deci_i nputmov in data+2,bxcall crlfmov ax,bxadd ax,i ndatamov outdata,axshow no teoutcall crlfcall deci_outputretmain endp首先前面一部分是匯編語言的基本框架,show notein1 ,show notein2 ,show noteout 是通過調用宏來顯示之前定義過的字符串。deci_in
9、put ,deci_output為兩個子程序,通過call來調用運行。mov, add等指令進行數(shù)據的傳送和算術 計算在這段代碼中有這樣兩條語句: mov indata,bx 和mov indata+2,bx,在數(shù)據定 義中定義的是兩個字變量來存放輸入的數(shù)值,in data表示的是首地址,即第一 個變量存放處,indata+2表示第二個變量存放處,2是偏移量。接下來是子程序:deci_i nput proc n earmov bx,0n ewchar:mov ah,1int 21hcmp al,Odhjz exitsub al,30hjl no teerrcmp al,9djg no teer
10、rcbwxchg ax,bxmov cx,10dmul cxxchg ax,bxadd bx,axjmp n ewcharno teerr:call crlfshow no tewar ncall crlfshow no teaga injmp n ewcharexit: retdeci_i nput endp這段子程序將鍵盤上輸入的ASCII轉換為十進制數(shù)并將其存放在寄存器中, 在其中也對數(shù)值的位數(shù)進行了限制,限定于兩位數(shù)。由于輸入兩個數(shù)的過程是一樣的,所以其實就是進行了一次循環(huán),兩次調用的子程序都是一樣的。兩數(shù)相加 的過程在主程序中完成,得到的結果存于相應寄存器,接下來的工作就是將其顯 示
11、出來,用下面這段子程序:deci_output proc n earmov bx,outdatamov cl,100dmov ax,bxdiv clmov bl,ahmov dl,aladd dl,30hcall dispcharmov ax,0mov al,blcbwmov cl,10ddiv clmov bl,ahmov dl,aladd dl,30hcall dispcharmov dl,bladd dl,30hcall dispcharretdeci_output endp這就是整個運算的基本過程。第三次實驗課主要是對于程序內部具體執(zhí)行的 一些細節(jié)的理解,對數(shù)據傳送與儲存,數(shù)值的轉換過
12、程都認識的更加深刻了一些。第四次實驗課,經過大家共同的討論和分析,所得代碼已經能夠正常編譯并 且運行。在這個過程中十分遺憾的是沒有自己獨立的寫出這個程序的代碼,基本上是按照網上的實例和老師的代碼完成的,這充分說明自己距離獨立編寫程序還有一大段差距,需要做的努力還有很多。三. 總結與收獲這次實驗沒有真正獨立寫出代碼,完成任務是很大的遺憾。在這個過我也 總結了以下一些收獲與不足:1. 對于基礎知識的掌握不足,如尋址方式,指令系統(tǒng)等等,都沒有充分理解 其意義,反應在編程過程中就是無從下手, 不知該寫什么。其實編程的過程也是 一個回顧知識的過程,這個過程對理解尋址方式等知識有很大的幫助。2. 程序的調
13、用是匯編程序中一個重要的部分,可以類比函數(shù)的調用,雖然有 很大的區(qū)別,但這種思想應該是共通的。不同的功能用不同的子程序來完成,使 得思路和過程會比較清晰。3. 編程不是上來就敲代碼,那樣誰都寫不出來,首先要充分的分析問題,改 用怎樣的思路解決,要分幾步完成,每一步的步驟和作用又都是什么, 這些問題 是在寫代碼之前都要想清楚的,絕不可能一邊寫一遍去想過程,那樣沒有明確思 路會越寫越亂。4. 老師也說過,編程就是一道坎,邁過去就會發(fā)現(xiàn)其實也并不是那么困難,但在邁的這個過程中是需要付出極大的努力,自己多寫多練,代碼不是看出來的而是自己寫出來的,勤加練習才會有所收獲。以上是我的一點感受和收獲,不只是編
14、程,任何一種技能都是要勤奮練習才 有所得的。在此,也要感謝老師的幫助和辛勤指導。四. 附錄完整的程序代碼如下:data segme ntin data dw 2 dup(?) outdata dw 1 dup(?) notein1 db 'please in put the first decimal nu mber(0-99):$' notein2 db 'please in put the sec ond decimal nu mber(0-99):$' noteout db 'the result of addition is:$' no
15、tewar n db 'warni ng:wro ng char!$'no teaga in db 'please in put aga in:$'data endsshow macro addrmov ah,9h lea dx,addr int 21h endm code segme ntassume cs:code,ds:data,es:data mai n proc farstart: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax show notein1 call crlf call
16、deci_i nput mov in data,bx call crlf show notein2 call crlf call deci_i nput mov in data+2,bx call crlf mov ax,bx add ax,i ndata mov outdata,ax show no teout call crlf call deci_output ret main endpdeci_i nput proc n ear mov bx,0n ewchar:mov ah,1 int 21h cmp al,0dh jz exit sub al,30h jl no teerr cmp
17、 al,9djg no teerrcbw xchg ax,bx mov cx,10d mul cx xchg ax,bx add bx,ax jmp n ewchar no teerr:call crlf show no tewar n call crlf show no teaga in jmp n ewchar exit: ret deci_i nput endp deci_output proc near mov bx,outdata mov cl,100d mov ax,bx div cl mov bl,ah mov dl,al add dl,30h call dispchar mov ax,0 mov al,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國電焊帽行業(yè)產業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國電子壓力計行業(yè)產業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國瑜伽工作室系統(tǒng)行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 高等教育科研成果轉化管理機制研究
- 酒店安全生培訓
- 施工項目資源管理(培訓)
- 心理健康教育培訓實施總結
- 探尋教育心理學掌握學生心靈鑰匙
- 特種設備法律法規(guī)培訓課件
- 教育國際化背景下的品牌價值評估
- 銀行副行長個人簡歷表格
- 第四講 堅持以人民為中心PPT習概論2023優(yōu)化版教學課件
- 麻精藥品培訓課件
- 醫(yī)院全員聘用制度和崗位聘任管理制度
- 粗紗機任務與工藝流程
- 探究食育課程對小班幼兒良好飲食習慣形成的作用 論文
- 湖北武漢洪山區(qū)招考聘用社區(qū)干事235人模擬檢測試卷【共1000題含答案解析】
- 14 《中國胰島素泵治療指南(2021年版)》要點解讀
- 12J4-2 《專用門窗》標準圖集
- 膩子實驗方法
- GB/T 3532-2009日用瓷器
評論
0/150
提交評論