




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上微機原理實驗1、 實驗目的:1、 應用學過的匯編語言編寫簡單程序,將匯編語言在編程中實際應用。2、 掌握匯編語言的編輯、匯編、連接、調試等基本方法。3、 靈活應用各種語句實現要求的程序功能。4、 在實驗中進一步掌握并熟練應用匯編語言,理解常用指令、偽指令及存儲空間分配等2、 實驗內容:從鍵盤取得一串字符顯示在屏幕上,然后將這串字符以輸入的反序再顯示一遍,并統計這字符串中A的個數,顯示在屏幕上。附加要求:可以從鍵盤輸入需要統計的字符,并統計這字符串中這個字符的個數,顯示在屏幕上。3、 流程圖:開 始結 束輸出相同的字符數量計數加1和輸入字符比較是否相同CX=0?指針指向
2、第一個字符設置CX循環(huán)次數即字符串的字符數輸出提示輸入字符SHU RU ZI FU CX=0?輸出指針指向單元中的字符指針指向 1指向前一個單元指針指向字符串最后一個字符設置循環(huán)次數CX為輸入的字符個數輸出提示“反轉后字符”FAN ZHUAN HOU ZI FU 輸入字符串輸出提示“輸入字符串”SHU RU ZI FU CHUAN 輸入要查找的字符否是是否指向下一個字符是 否4、 實驗程序:DATAS SEGMENTPASS DB 20 ;預留20個字節(jié)的空間存放輸入的字符BLK1 DB 'SHU RU ZI FU CHUAN: $' ;在屏幕上要顯示的提示語句BLK2 DB
3、'SHU RU ZI FU : $'BLK3 DB 'SHU LIANG SHI: $'BLK4 DB 'FAN ZHUAN HOU: $'DATAS ENDS;*以上是數據段定義,下面開始代碼段*CODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX ;實現ASSUME中的承諾;* MOV AH,09H ;字符串輸出功能09H LEA DX,BLK1 INT 21H ;*顯示第一句提示語* MOV AH,0AH ;字符串輸入功能0AH LEA DX,PASS INT
4、 21H ;*以上完成字符串輸入并顯示出來* MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H ;*以上實現回車換行* MOV AH,09H LEA DX,BLK4 INT 21H ;*輸出BLK4中定義的內容,提示為反轉后字符串* MOV CL,PASS+1 ;PASS+1處是實際輸入的字符個數 MOV CH,0 ;CH置0,CX為循環(huán)的次數也就是輸入的字符個數 MOV DL,PASS+1 MOV DH,0 ;DX同樣是字符個數,用于后面的加法運算 LEA SI,PASS+2 ;PASS+2處為實際輸入字符的開始位置; ADD SI,DX ;用加法
5、實現了將SI的指針指向了字符串的最后一個字符S0: DEC SI ;SI不斷減1,指針指向地址不斷前移,也就反向了輸出剛才輸入的字符串 MOV AH,02H ;顯示輸出功能02H MOV DL,SI ;輸出指針所指向單元中的內容 INT 21H LOOP S0;*以上用循實現了字符串的反轉后輸出功能* MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H ;*回車換行* MOV AH,09H LEA DX,BLK2 INT 21H;*顯示提示語BLK2輸入要查找的字符的提示語輸出* MOV AH,01H ; 有回顯的輸入,顯示的是輸入的要查找字符 INT
6、 21H MOV CL,PASS+1 XOR CH,CH LEA SI,PASS+2 XOR DL,DL ;和前面相同CX設置了循環(huán)次數,SI指向第一個字符S1: CMP AL,SI ;進行字符比較,是和Al比較,若相同則計數加1,不同則比較下一個 JNZ NEXT INC DL ;DL記錄的是比較過程中相同的字符數NEXT: INC SI ;指向下一個字符LOOP S1 MOV BL,DL ;DL記錄的數量給BL后面語句輸出之前要用到DL ;*通過以上循環(huán)將所有字符比較一遍得到數量* MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H ;*回車換
7、行* MOV AH,09H LEA DX,BLK3 INT 21H;*輸出提示語BLK3相同字符的數量* MOV DL,BL ADD DL,30H ;計數加30H是為了轉換成ASC碼輸出。 MOV AH,02H INT 21H MOV AH,4CH INT 21HCODES ENDS END START5、 調試及遇到的問題:在使用MASA進行連接link的時候出現了語句的錯誤,經過仔細的查找將語句中因為輸入錯誤,符號輸入錯誤,比如出現了漢字輸入的分號等問題加以修改,程序可以正常生成obj文件,進而可以生成exe可執(zhí)行文件,但是在執(zhí)行過程中出現了下面幾個比較嚴重的問題,是因為程序編寫邏輯或原理
8、錯誤造成的,雖然可以得到exe可執(zhí)行文件但是輸出的結果是有問題的,所以經過了改正才得以解決。(1)從輸出的字符串可以看出輸出了亂碼 經過查找是因為,定義的字符串地址PASS,其中PASS+1是字符的個數,PASS+2是第一個字符串,所以在程序中將字符個數 MOV CL,PASS+1 語句寫成了MOV CL,PASS就使得程序出現了上面的顯示有亂碼輸出。(2)輸出的字符少了一個問題在相同的位置,字符的第一個實際的位置是在PASS+2,而在編寫程序的時候寫的是PASS+1,所以導致了在程序輸出的時候得到的是少一個字符的情況。這個問題需要仔細看輸出才發(fā)現的,所以在編程的時候容易發(fā)生錯誤,在認真看輸出
9、后發(fā)現少了一個字符。(3)輸出的數量顯示的是一個笑臉圖案而不是數字查找問題后發(fā)現,是在定義輸出的時候少了一個步驟,ADD DL,30H ,加30H是讓DL中得到的計數值轉化成為ASC碼輸出然后我們才能看到數字,否則看到的都是對應的亂碼。這個問題是一個編程程序根本問題如果不解決是得不到最終結果的,所以在多次調試和改變之后終于能夠得到最后的正確結果。6、 實驗結果:經過反復的找錯調試,最終程序正確并且得到了輸出的結果,輸入任意的字符串,能夠反序輸出然后輸入要查找的字符,能夠得到要查找的字符的個數。7、 分析總結:通過這次實驗,實際操作編寫一個程序,并運行得到結果,整個過程讓我對匯編語言的理解更為深刻,對匯編語言的各種語句的功能更加熟悉,對匯編程序的運行過程也有了更直觀的了解。課程知識和實驗結合起來,能夠使知識運用更熟悉靈活。同時,編寫程序是一個需要知識和細心地過程,任何的細小的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 縣級疾病預防控制機構慢病預防控制工作規(guī)范
- 2025年甲基六氫苯酐項目發(fā)展計劃
- 2025年加工羽毛(絨)項目建議書
- 2025年高性能傳輸線纜項目合作計劃書
- 2025年電視制式轉換器項目發(fā)展計劃
- 2025年動態(tài)心電圖監(jiān)測系統設備合作協議書
- 2025年汽車內外飾件項目發(fā)展計劃
- 2025年文化產業(yè)專項資金申請報告:文化產業(yè)發(fā)展專項資金分配機制研究
- 智能投顧平臺風控合規(guī)運營風險管理策略與合規(guī)執(zhí)行風險預警系統應用報告
- 制造業(yè)數字化轉型數據治理在2025年的創(chuàng)新路徑與挑戰(zhàn)應對策略分析
- 四年級上冊 口算題 1000題
- 九上道法知識點梳理(全冊)-九年級道德與法治上冊必備知識梳理總結(部編版)
- YB/T 5202.1-2003不定形耐火材料試樣制備方法第1部分:耐火澆注料
- GB/T 700-2006碳素結構鋼
- GB/T 41419-2022數字化試衣虛擬人體用術語和定義
- GB/T 24218.1-2009紡織品非織造布試驗方法第1部分:單位面積質量的測定
- GB/T 1633-2000熱塑性塑料維卡軟化溫度(VST)的測定
- 《病毒學》(研究生)全冊配套完整課件
- 第十七章其他熔化焊接與熱切割作業(yè)課件
- 腧穴總論 2特定穴課件
- 數顯壓力表說明書
評論
0/150
提交評論