匯編語言實習報告_第1頁
匯編語言實習報告_第2頁
匯編語言實習報告_第3頁
匯編語言實習報告_第4頁
匯編語言實習報告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、匯編語言實習報告實習題目: 16位二進制轉(zhuǎn)換成十進制學生姓名: 班 級: 學 號: 指導老師: 目 錄1 課程實習任務 32 基本知識.3 2.1 匯編語言程序結構3 2.2 關鍵指令分析3 2.3 匯編語言上機過程53 總體分析.7 3.1 程序功能分析.7 3.2 程序流程圖84 詳細設計.9 4.1 程序代碼95 調(diào)試過程.106 總結137 參考文獻131 課程實習任務題目一 16位二進制數(shù)轉(zhuǎn)換成十進制數(shù)并顯示基本功能:1、 在屏幕上輸入一個16位的二進制數(shù);2、 通過程序?qū)⑤斎氲亩M制轉(zhuǎn)換成10進制;3、 通過屏幕輸出10進制數(shù); 2 基本知識2.1匯編語言程序結構該匯編語言的程序結

2、構主要有:順序結構,循環(huán)結構及子程序結構。2.2關鍵指令分析該程序所涉及的關鍵指令及分析如下:指令1:LEA DX,UNM MOV AH,OAH分析:將從鍵盤輸入的數(shù)存到num緩沖區(qū)。指令2:LEA BX,NUM INC BX MOV CL,BYTE PTRBX分析:把實際輸入個數(shù)放到CX當中。指令3:INT BXMOV DL,BYTE PTRBXAND DX,0FFH ;將DX高位置零SUB DX,30H分析:將ASCII碼字轉(zhuǎn)換成數(shù)字。指令4:SAL AX,1ADD AX,DX分析:將AX中的數(shù)右移一位,相當于將這個數(shù)乘以2,再將這個數(shù)與DX中的數(shù)相加。 指令5:PUSH AXLEA DX

3、,PRT2MOV AH,9INT 21H分析:將AX保存在棧中,輸出兩個回車換行和提示信息。指令6:CALL DISPLAY分析:調(diào)用子程序。指令7:MOV AH,4CH分析:返回控制平臺。指令8:DISPLAY PROC NEARXOR CX,CX分析:以10進制字符串方式輸出數(shù)值,將CX清零。 指令9:XOR DX,DXDIV BXPUSH DX分析:除以10取余,并余數(shù)將其進棧處理。指令10:POP DXADD DL,30HMOV AH,2INT 21H分析:將數(shù)字轉(zhuǎn)換成ASCII碼字符顯示。 2.3匯編語言上機過程一、 用匯編語言編寫的源程序,使之運行必須經(jīng)過以下幾個步驟:1. 用編輯

4、程序建立一個擴展名為ASM的匯編語言源程序文件。2. 調(diào)匯編程序(MASM),對源程序匯編,生成機器碼目標文件,擴展名為OBJ。3. 連接(LINK)目標文件,生成可執(zhí)行文件,擴展名為EXE。4. 運行可執(zhí)行文件。5. 如果程序運行有錯,可調(diào)用DEBUG 程序?qū)XE文件進行調(diào)試。二、 編輯匯編語言源程序 可用各種編輯軟件來建立匯編語言源程序,例如記事本。本次實習采用emu8086仿真軟件經(jīng)行仿真。利用該軟件可大大的簡化程序的編輯調(diào)試過程。三、 匯編語言程序的運行EMU8086仿真軟件具有一個簡潔的操作界面,界面第二行有一個綠色的“模擬”按鈕,點擊該按鈕即開始仿真。四、 匯編程序的調(diào)試開始仿真

5、后有兩個界面emulator和源文件,并可附加Random Access Memory內(nèi)存模塊和堆棧模塊。運行過程中會出現(xiàn)模擬屏幕顯示程序輸出信息。根據(jù)emulator、內(nèi)存和堆棧等的數(shù)值經(jīng)行程序調(diào)試,以使程序得到正確的結果。 圖1 (emulator) 圖2(堆棧) 圖3(屏幕) 圖4(內(nèi)存) 圖5(源文件)3 總體分析3.1程序功能分析1、顯示輸入的16位二進制數(shù)功能描述:將從鍵盤輸入的16位二進制數(shù)在屏幕上顯示出來。 功能實現(xiàn)主要步驟: (1)、先將輸入數(shù)據(jù)存入內(nèi)存中,再利用mov ah,09h將其顯示到屏幕上。 2、計算輸入二進制數(shù)的值。功能描述:將輸入的二進制數(shù)的所表示的數(shù)值計算出來

6、。功能實現(xiàn)主要步驟: 輸入的二進制數(shù)據(jù)在內(nèi)存中是以ASCII碼存儲的,取輸入的的第一位將其存入DX中,再將DX中的二進制數(shù)減去30H得到它的實際數(shù)值。將AX置零,并通過左移指令AX每次將其左移一位,相當于將它的乘以2,然后將AX和DX中的相加。循環(huán)執(zhí)行以上步驟將輸入的二進制數(shù)表示的值求出來,并將其放在AX中。3、將計算出的二進制數(shù)的值換成10進制數(shù)輸出 功能描述:將AX中的16進制數(shù)轉(zhuǎn)換成10進制數(shù)輸出功能實現(xiàn)主要步驟: 將AX中的數(shù)除以10,將余數(shù)放入堆棧。循環(huán)此操作直到AX為零。將堆棧中的數(shù)據(jù)進行出棧操作,每次出棧一位,并將這個數(shù)據(jù)加30H,然后輸出,顯示到屏幕。 3.2程序流程圖將AX中

7、的16進制數(shù)通過除法運算將其轉(zhuǎn)換成10進制數(shù)程序開始,等待用戶輸入將接收到的數(shù)據(jù)顯示到屏幕上并保存在屏幕上顯示10進制數(shù)通過循環(huán)計算將輸入的二級制數(shù)轉(zhuǎn)換成16進制數(shù),并保存在AX中4 詳細設計程序代碼:data segment num db 17,18 dup(?) prt1 db 0ah,'The input number is $' prt2 db 0ah,0dh,0ah,0dh,'The 10 decimal number is $'data endscode segment assume cs:code,ds:datastart: mov ax,data

8、 mov ds,ax mov dx,offset prt1 mov ah,09h int 21h lea dx,num mov ah,0ah int 21h lea bx,num inc bx mov cl,byte ptrbx and cx,0ffh xor ax,axnext: inc bx mov dl,byte ptrbx and dx,0ffh sub dx,30h sal ax,1 add ax,dx loop next push ax lea dx,prt2 mov ah,9 int 21h pop ax call display mov ah,4ch int 21hdispla

9、y proc near xor cx,cx mov bx,10continue1: xor dx,dx div bx push dx inc cx cmp ax,0 jnz continue1continue2: pop dx add dl,30h mov ah,2 int 21h loop continue2 retdisplay endpcode endsend start- 14 - 5 調(diào)試過程程序開始界面:點擊仿真軟件“模擬”按鈕,開始仿真。點擊的emulator菜單欄中的運行按鈕。屏幕提示輸入數(shù)字輸入16位二進制數(shù)1111110010101101回車,程序運行完畢,屏幕顯示輸出結果。用計算器檢驗輸出結果是否正確。檢驗完畢,結果正確。6 總結為期一周的匯編語言課程實習結束了,我對匯編語言有了全新的認識,看懂課本和實際動手做出一個程序還是有很大的區(qū)別。在最開始做這個題目的時候我比較迷茫,不太清楚從何處入手。后來和小組成員討論,請教老師,再結合課本,終于找到了突破口。然后通過查閱類似的資料,確定了實現(xiàn)程序功能的方法。知道如何做和把程序做出來是兩回事,從寫程序中我學到了不放棄的精神。面對一次次的失敗,只有堅持,再堅持,最后終于成功的做出來了,有一種驕傲,覺得很有成就感。通過這次實習,我學到了很多東西,讓我更加懂得團隊合作的重要性,小組成員間的分工,各個不同個

溫馨提示

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

評論

0/150

提交評論