1. 程式人生 > >實驗三 第二次實驗

實驗三 第二次實驗

編寫彙編源程式t1.asm

對源程式 t1.asm 進行彙編、連線、執行、除錯

得到結果為36

將 line4和line9種暫存器dl 的值分別修改為 0~9 中任何一個數字,重新彙編→ 連線→執行,觀察結果的變化。

將line4改成9,將line9改成8 輸出98 

用debug對生成的可執行檔案 t1.exe 進行除錯。

① 使用 r 命令檢視。觀察暫存器 cx 的值是 多少;觀察暫存器 ds 和 cs 的值是多 少,它們之間是否滿足關係(cs)=(ds)+10H? 

cx=0016,ds075A,cs=076A。滿足

② PSP(程式段字首)的頭兩個位元組是CD 20, 用debug檢視PSP的內容,驗證是否 如此。

如圖所示頭兩個是CD 20

 ③ 使用 u 命令對 t1.exe 進行反彙編,觀察反彙編得到的原始碼。 ④ 使用 t 命令和 p 命令(遇到 int 命令時,用 p 命令)單步除錯,觀察結果。

 

編寫彙編源程式t2.asm

對源程式 t2.asm 進行彙編、連線、執行、除錯

 

(1) 對t2.asm進行彙編、連線後,得到可執行檔案t2.exe。執行t2.exe,觀察程式執行 結果,驗證是否在螢幕左上方出現紅色的數值36。

出現了

(2) 如果(1)結果得到驗證,重新開啟t2.asm,嘗試將原始碼中line7的0433h→0435h, line10 的 0436h→0437h, 然後重新彙編、連線,得到可執行檔案 t2.exe。使用 cls 命令清 屏後,再次觀察程式執行結果。

出現了57

(3) 如果(1)結果得到驗證,重新開啟t2.asm,嘗試將原始碼中line7的0433h→0431h, line10 的 0436h→0438h, 然後重新彙編、連線,得到可執行檔案 t2.exe。使用 cls 命令清 屏後,再次觀察程式執行結果。

出現了18
 

總結

更加深入的瞭解彙編還有使用dos這個程式,edit可以編輯源程式執行的命令。