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


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



每次運行t命令,程序運行一行代碼,同時cs:ip地址自動偏移指令長度的地址
實驗任務二:
(1)用A命令將程序段寫入2000:0開始的內存單元中

此時我們注意到,代碼中jmp 2000:0003的效果使得代碼形成了一個循環,每次循環翻倍ax中的值,所以我們可以用它來計算2的8次方
(2)修改cs:ip值並用t命令運行程序




最后ax的結果為0100,即16的平方,2的8次方
實驗任務三:
(1)用d命令查看FFF0:0開始的內存地址,嘗試尋找生產日期

我們明顯注意到最后一行存在着生產日期為01/01/92
(2)嘗試改寫生產日期

此時我們發現並沒有成功改變,這是因為從C0000到FFFFF的內存地址都屬於ROM,不能修改其內容
實驗任務四:
(1)向從B8100H開始的單元中寫入數據



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


最終我發現,每次輸入數據,屏幕右上都會出現一個字符,再次輸入數據,字符顏色會改變。第一個數據決定字符形狀,第二個數據決定顏色,而改變更改的地址決定出現字符的位置。這是因為A0000到BFFFF的內存地址屬於顯存,更改會改變屏幕顯示。
l 實驗總結與體會
一、通過本次實驗,可以熟練掌握了debug工具幾項命令的基本使用:
1)r命令查看和修改寄存器中的內容(注意不能直接修改段寄存器)
2)e命令改寫內存單元中的內容(既可以寫入數據也可以寫入指令,因為它們實際上是一樣的)
3)d命令查看內存中的內容
4)u命令進行反匯編將內存中的內容解釋為對應的匯編指令
5)t命令執行cs:ip處的命令
6)a命令以匯編的方式向內存寫入指令
二、掌握了內存單元的分配和意義:
00000到9FFFF的內存地址屬於主儲存器地址空間
A0000到BFFFF的內存地址屬於顯存
C0000到FFFFF的內存地址都屬於ROM
修改顯存地址中的內存內容會改變屏幕顯示,無法修改ROM地址中的內容
