匯編語言程序設計實驗報告一


 

南京信息工程大學實驗報告

  • 實驗名稱 用機器指令和匯編指令編程(1)
  • 實驗日期   2018.10.22   
  • 學院:計軟院   
  • 專業:計算機科學與技術 
  • 年級:2017級
  • 班次:5班 
  • 姓名:陳奕明   
  • 學號 20171308194


一、實驗目的
1. 掌握使用debug工具編寫和調試匯編命令的方法

2. 掌握第1-2章所學的關於CPU、寄存器、內存的基礎知識

3. 掌握第1-2章涉及的幾條指令mov, add, sub, jmp的用法


二、實驗准備
1. 復習教材第1~2章內容,完成教材內相關檢測點

2. 結合教材實驗1 (P35)及公郵文件中心→實驗下的 “實驗1輔助文檔.pdf”學習debug 工具用法。


三、實驗內容
1. 教材實驗1(P35)

(1)練習教材 P35-45「預備知識:Debug 的使用」,學習 debug 啟動、退出及常用指 令用法;

(2)在練習基礎上,完成「2. 實驗任務」

Tips: 「2. 實驗任務」中每一項任務都可以在教材前序內容或練習中找到提示線索。建議先 完成「二、實驗准備」中要求的內容及實驗內容的第(1)項,這樣完成「2. 實驗任務」時會 很容易完成。比如: 實驗任務(1)可參照教材P41-43的(7)完成; 實驗任務(2)與教材 P20的檢測點(2)相似且相關;


四、實驗結論
任務一:

把如下的程序段寫入內存,逐條執行,觀察每條指令執行后CPU中相關寄存器中內容的變化。

首先使用e指令按題目要求的寫入機器碼指令(隨便找了個地址1000:0):

到達文本輸入限制后沒辦法,只能先執行了...執行完后,看一下已經寫入數據的內存單元的情況...嗯...數據是對的

繼續輸入並執行,執行完全部代碼后,使用u指令反匯編機器碼命令:

跟書上寫明的匯編命令相符。

然后輸入匯編命令:

中間又把1和字母l分不清了,出了個error。。。

命令輸入完畢,-t命令單步執行:

和上課聽講的一樣,對指定的寄存器進行數據的改寫操作。

后面的命令行有點多就用-t+數字=執行往后的幾條命令全部執行了:

最后的結果:

任務二:將下面三條指令寫入從2000:0開始的內存單元中,利用這3條指令計算2的8次方。

mov ax,1

add ax,ax

jmp 2000:0003

解題思路:2的三次方就是8,再看下題目給我們的三條命令。執行完第一條后ax的值為1,執行完第二條命令后ax的值為2,那么就需要我們再執行這條語句7次了,所以就要使用jmp命令,通過改變CS和IP寄存器的值來使得CPU繼續反復執行這條命令,所以往下又寫了七句jmp 2000:0003使得CPU再反復執行其次該語句,從而使得AX中的值變為二的八次方,由於八位寄存器的限制,最高位已經溢出了。。。。

第三題

PC主板上的ROM中寫有一個生產日期,在內存FFF00H~FFFFFH的某幾個單元中,請找到這個生產日期並且試圖改變它。

實驗截圖如下:

試圖修改但是失敗了,看來是因為ROM的關系,無法修改。

第四題

向內存B8100H開始的單元中填寫數據,如:

-e B810:0000 01 01 02 02 03 03 04 04

這是進行了一系列實驗過后的結果:

有這么些結果和感悟:

再向寄存器寫入數據時,每多兩個字節的數據就會產生一個新的顏色區域,而且寫入區域的CS碼每產生一次進位,就會使得產生的色塊區域產生換行,最終得到了這么些結果。


五、實驗心得與感悟
這次實驗主要實驗了R命令(用於查看、修改寄存器中的內容)、D命令(查看內存中的內容)、E命令(修改內存中的內容)、U命令(反匯編命令)、T命令(執行代碼行命令)

第四題經過這么多次的實驗測試,看來這一段內存空間是顯存。

我的電腦屏幕運行Dosbox窗口極小,最后查到按Alt+Enter可以進入全屏模式進行操作。

當初安裝Dosbox時經歷過,千萬別把程序裝在系統盤,否則會有權限問題。

暫時就這樣把,肯定還有許多要學的,要完善的,好好學習匯編!!

                                                                                                                                                                                                                                                 2018-10-27  21:28:25於宿舍


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM