微機原理實驗4循環(huán)結構_第1頁
微機原理實驗4循環(huán)結構_第2頁
微機原理實驗4循環(huán)結構_第3頁
微機原理實驗4循環(huán)結構_第4頁
微機原理實驗4循環(huán)結構_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 物理與機電工程系(20152016 學年第 一 學期)調試程序的使用上機實驗報告專 業(yè):電子信息工程 學 號:姓 名: 成功回 任課教師: 官方個 實驗地點: 實驗樓5537 項目編號: 實 驗 四 1、 實驗目的:1. 加深對循環(huán)結構的理解。 2. 掌握循環(huán)程序的設計方法。 2、 實驗內容:1. 編制程序計算S=1+2·3+3·4+4·5+N(N+1)+直到N(N+1)大于200為止,并將結果由屏幕上顯示出來。 2. 將字形變量x以二進制數(shù)的形式在屏幕上顯示輸出。3. 將字形變量x以十六進制數(shù)的形式在屏幕上顯示輸出。4. 將內存單元緩

2、沖區(qū)中的符號數(shù)(20個)按從小到大的順序排列,并以十六進制數(shù)的形式顯。 3、 實驗過程:1. 編制程序計算S=1+2·3+3·4+4·5+N(N+1)+直到N(N+1)大于200為止,并將結果由屏幕上顯示出來。 程序流程圖如下: 程序源代碼如下:DATAS SEGMENT s dw ?;此處輸入數(shù)據段代碼 DATAS ENDS STACKS SEGMENT dw 64 dup(?);此處輸入堆棧段代碼 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS M

3、OV DS,AX mov bx,0001h ; BX=1 mov dl,02h ;DL=2lop2: mov al,dl ;AL=2 inc dl;加1 ;DL=3 mul dl;無符號數(shù)乘法 AX=AL*DL=2*3 add bx,ax ;BX=AX+BX cmp ax,00C8h;與200比較 jbe lop2;不高于轉移 mov s,bx mov ch,4 mov cl,4 lop1: rol bx,cl mov dl,bl and dl,0Fh cmp dl,09h jbe next;低于等于轉移 <= add dl,7 next: add dl,30h mov ah,2 int

4、 21h dec ch jnz lop1;非零轉移 MOV AH,4CH INT 21H CODES ENDS END START 程序運行結果如下:程序反匯編過程如下:2. 將字形變量x以二進制數(shù)的形式在屏幕上顯示輸出。 程序流程圖如下: 程序源代碼如下:DATAS SEGMENT x dw 1325h ;此處輸入數(shù)據段代碼 DATAS ENDS STACKS SEGMENT ;此處輸入堆棧段代碼 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX mov bx,

5、x mov cx,10h lop1: rol bx,1 ;不帶cf的循環(huán)左移 jc next;進位轉移,即cf=1 mov dl,30h;將0送入dl jmp next2 next: mov dl,31h;將1送入dl next2:mov ah,2 int 21h loop lop1;循環(huán)執(zhí)行l(wèi)op1 MOV AH,4CH INT 21HCODES ENDS END START 存入數(shù)據及程序運行結果如下圖:程序反匯編過程如下:3. 將字形變量x以十六進制數(shù)的形式在屏幕上顯示輸出。 程序流程圖如下: 程序源代碼如下:DATAS SEGMENT x dw 933;此處輸入數(shù)據段代碼 DATAS

6、ENDS STACKS SEGMENT ;此處輸入堆棧段代碼 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX mov bx,x mov ch,4 mov cl,4 lop1: rol bx,cl ;不帶cf的循環(huán)左移 mov dl,bl and dl,0Fh cmp dl,09h jbe next;低于等于轉移 add dl,7 next: add dl,30h mov ah,2 int 21h dec ch jnz lop1;非零轉移 MOV AH,4CH I

7、NT 21H CODES ENDS END START存入的轉換數(shù)據及程序運行結果如下:程序反匯編過程如下: 4. 將內存單元緩沖區(qū)中的符號數(shù)(20個)按從小到大的順序排列,并以十六進制數(shù)的形式顯。程序流程圖如下: 程序源代碼如下:;冒泡法對20個數(shù)升序排列DATAS SEGMENT X db 02h,01h,03h,04h,05h,06h,08h,09h,11h,88h,82h,84h,83h,96h,75h,90h,99h,28h,67h,97h ;此處輸入數(shù)據段代碼 LEN db $-x ;$表示當前位置20DATAS ENDS CODES SEGMENT ASSUME CS:CODES

8、,DS:DATASSTART: MOV AX,DATAS MOV DS,AX mov cl,LEN dec cl;外循環(huán)只需19次 ;外循環(huán)開始lop12:mov ch,cl ;CH作為內循環(huán)計數(shù)器 lea si,X ;si只想當前要比較的數(shù) ;內循環(huán)開始lop11:mov al,si ;AL=09H inc si ;SI只想下一個數(shù) cmp al,si ;9-8 jbe next ;<= xchg al,si; AL=08 mov si-1,al ;SI-1=08next:dec ch ;內循環(huán)結束嗎?CH=0? jne lop11 ;內循環(huán)到此結束 dec cl ;外循環(huán)結束嗎 jn

9、e lop12 ;外循環(huán)到此結束 ;在屏幕上顯示20個數(shù) lea si,X xor ch,ch mov cl,LEN ;CH記錄循環(huán)顯示20 個數(shù) mov bh,cl ;轉出 再循環(huán)顯示20個數(shù) lopout: mov bl,si ;循環(huán)單字符輸出 mov ch,2 mov cl,4lopprint1: rol bl,cl ;BL=01H=0000 0001 mov dl,bl ;0000 0001 and dl,0fh ;0001 1 cmp dl,09h jbe next1 add dl,07hnext1: add dl,30h mov ah,2 int 21h dec ch jnz lo

10、pprint1 mov dl,20h ;輸出空格 mov ah,2 int 21h ;接著輸出第二個數(shù) add si,1 dec bh jnz lopout MOV AH,4CH INT 21H CODES ENDS END START 存入的排序數(shù)組及其運行結果排序如下:程序反匯編過程如下:4、 實驗結論1> 學習并使用了DEBUG程序,進一步掌握和熟悉匯編語言程序上機過程、DEBUG的常用指令。 2> 根據要求編寫了程序,用循環(huán)結構設計程序實現(xiàn)符號函數(shù),運行MASM FOR WINDOWS軟件,打開寫好的程序,源程序即用p指令逐條執(zhí)行的寄存器變化及指令逐條含義,主要運用有功能鍵

11、的調用,如1、2、9號功能鍵,及其出入口參數(shù),回車換行的運用。 3> 根據要求編寫了將字形變量轉換為二進制、十六進制并顯示的程序。將字形變量存入源程序中,通過利用JIE、JMP、JGE等轉移指令,大小寫字母的ASIIC碼及相關輸入顯示功能號的調用等通過單層或多層循環(huán)來實現(xiàn)。在DEBUG下查看執(zhí)行結果,用p指令逐條執(zhí)行源程序的寄存器變化及指令逐條含義。 4> 根據要求畫出流程圖編寫了循環(huán)結構下的數(shù)的累加,利用JIE、JMP、JGE等轉移指令,大小寫字母即數(shù)字的ASIIC碼、1、2、9等相關輸入顯示功能號的調用等實現(xiàn)數(shù)的循環(huán)累加并且判斷結構是否大于200,然后逐字在屏幕上以十六進制顯示

12、相應結果。在DEBUG下查看執(zhí)行結果,用p指令逐條執(zhí)行源程序的寄存器變化及指令逐條含義。 5> 利用轉移指令JBE JNZ和移位指令ROL以邏輯與指令AND將一串數(shù)組按照從大到小的順序用冒泡法實現(xiàn)了排序,然后逐字在屏幕上以十六進制顯示相應結果。并運用MASM FOR WINDOWS軟件逐步調試運行了改程序。 6> 通過以上四個程序的設計、調試、運行,了解、熟悉并掌握了循環(huán)程序的基本結構和設計以及多層循環(huán)結構程序的上機運行和調試方法。5、 實驗中存在問題及解決方法1> 程序調試中,對一些轉換指令及其執(zhí)行過程中的對標志位的影響不是很熟悉,導致有些程序片段看起來有些吃力,尤其在調試過程中;在查看分析寄存器的存儲狀態(tài)時有些不太清楚。2> 格式問題,對匯編

溫馨提示

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

評論

0/150

提交評論