實驗三 編程、編譯、連接、跟蹤
1. 練習1
第1步,編寫匯編源程序t1.asm, 源程序代碼如圖1-1所示。
第2步,對源程序 t1.asm 進行匯編、連接、運行、調試
(1) 運行程序,觀察程序輸出結果是什麽?
36
(2) 將 line4和line9種寄存器dl 的值分別修改為 0~9 中任何一個數字,重新匯編→ 連接→運行,觀察結果的變化。
dl都變為1
結果為11
(3) 用debug對生成的可執行文件 t1.exe 進行調試。
① 使用 r 命令查看。觀察寄存器 cx 的值是 多少;觀察寄存器 ds 和 cs 的值是多 少,它們之間是否滿足關系(cs)=(ds)+10H?
cs=076A,ds=075A,滿足(cs)=(ds)+10H
② PSP(程序段前綴)的頭兩個字節是CD 20, 用debug查看PSP的內容,驗證是否 如此。
是的
③ 使用 u 命令對 t1.exe 進行反匯編,觀察反匯編得到的源代碼。
④ 使用 t 命令和 p 命令(遇到 int 命令時,用 p 命令)單步調試,觀察結果。
2. 練習2
第1步,編寫匯編源程序t2.asm,源程序代碼如圖1-2所示。
第2步,對源程序 t2.asm 進行匯編、連接、運行、調試
(1) 對t2.asm進行匯編、連接後,得到可執行文件t2.exe。運行t2.exe,觀察程序運行 結果,驗證是否在屏幕左上方出現紅色的數值36。
如上圖
(2) 如果(1)結果得到驗證,重新打開t2.asm,嘗試將源代碼中line7的0433h→0432h, line10 的 0436h→0439h, 然後重新匯編、連接,得到可執行文件 t2.exe。使用 cls 命令清 屏後,再次觀察程序運行結果。
(3) 如果(1)結果得到驗證,重新打開t2.asm,嘗試將源代碼中line7的0433h→0333h, line10 的 0436h→0336h, 然後重新匯編、連接,得到可執行文件 t2.exe。使用 cls 命令清 屏後,再次觀察程序運行結果。
實驗三 編程、編譯、連接、跟蹤