匯編實驗一 查看CPU和內存,用機器指令和匯編指令編程


 

實驗結論

實驗任務一:

(1)A命令將程序段寫入1000:0開始的內存單元中,然后用U命令查看寫入的代碼段反匯編結果

 

 

(2)r命令改寫cs:ip地址,再用r命令查看一下,用t命令運行代碼

 

每次運行t命令,程序運行一行代碼,同時cs:ip地址自動偏移指令長度的地址

實驗任務二:

(1)A命令將程序段寫入2000:0開始的內存單元中

此時我們注意到,代碼中jmp 2000:0003的效果使得代碼形成了一個循環,每次循環翻倍ax中的值,所以我們可以用它來計算28次方

(2)修改cs:ip值並用t命令運行程序

 

最后ax的結果為0100,即16的平方,28次方

實驗任務三:

(1)d命令查看FFF0:0開始的內存地址,嘗試尋找生產日期

 我們明顯注意到最后一行存在着生產日期為01/01/92

(2)嘗試改寫生產日期

  此時我們發現並沒有成功改變,這是因為從C0000FFFFF的內存地址都屬於ROM,不能修改其內容

實驗任務四:

(1)向從B8100H開始的單元中寫入數據

(2)嘗試更改輸入的數據和更改數據的地址

 最終我發現,每次輸入數據,屏幕右上都會出現一個字符,再次輸入數據,字符顏色會改變。第一個數據決定字符形狀,第二個數據決定顏色,而改變更改的地址決定出現字符的位置。這是因為A0000BFFFF的內存地址屬於顯存,更改會改變屏幕顯示。

 

實驗總結與體會

 一、通過本次實驗,可以熟練掌握了debug工具幾項命令的基本使用:

 

  1r命令查看和修改寄存器中的內容(注意不能直接修改段寄存器)

 

2e命令改寫內存單元中的內容(既可以寫入數據也可以寫入指令,因為它們實際上是一樣的)

 

3d命令查看內存中的內容

 

4u命令進行反匯編將內存中的內容解釋為對應的匯編指令

 

5t命令執行cs:ip處的命令

 

6a命令以匯編的方式向內存寫入指令

 

二、掌握了內存單元的分配和意義:

 

000009FFFF的內存地址屬於主儲存器地址空間

 

A0000BFFFF的內存地址屬於顯存

 

C0000FFFFF的內存地址都屬於ROM

 

修改顯存地址中的內存內容會改變屏幕顯示,無法修改ROM地址中的內容


免責聲明!

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



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