1. 程式人生 > >實驗三 編程、編譯、連接、跟蹤

實驗三 編程、編譯、連接、跟蹤

width 使用方法 運行程序 驗證 行程 實驗 exe 編譯 總結

1. 練習 1

第 1 步,編寫匯編源程序 t1.asm, 源程序代碼如圖 1-1 所示。

技術分享圖片

第 2 步,對源程序 t1.asm 進行匯編、連接、運行、調試

(1) 運行程序,觀察程序輸出結果是什麽?

截圖如下:

技術分享圖片

技術分享圖片

技術分享圖片

結果是3和6

(2) 將 line4 line9 種寄存器 dl 的值分別修改為 0~9 中任何一個數字,重新匯編→ 連接→運行,觀察結果的變化。

技術分享圖片

技術分享圖片

3) 用 debug 對生成的可執行文件 t1.exe 進行調試。

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

?

技術分享圖片

如圖可知cs=ds+10

②PSP(程序段前綴)的頭兩個字節是 CD 20, 用 debug 查看 PSP 的內容,驗證是否

如此。

技術分享圖片

是的

③使用 u 命令對 t1.exe 進行反匯編,觀察反匯編得到的源代碼。

技術分享圖片

④使用 t 命令和 p 命令(遇到 int 命令時,用 p 命令)單步調試,觀察結果。

技術分享圖片

技術分享圖片

得到輸入的數字:4和7

練習2:

技術分享圖片

執行結果為紅色的36.

技術分享圖片

(2) 如果(1)結果得到驗證,重新打開 t2.asm,嘗試將源代碼中 line7 0433h0432h,

line10 0436h0439h, 然後重新匯編、連接,得到可執行文件 t2.exe。使用 cls

命令清屏後,再次觀察程序運行結果。

技術分享圖片

(3) 如果(1)結果得到驗證,重新打開 t2.asm,嘗試將源代碼中 line7 的 0433h0333h,

line10 0436h0336h, 然後重新匯編、連接,得到可執行文件 t2.exe。使用 cls 命令清屏後,再次觀察程序運行結果。

技術分享圖片

實驗一與實驗二對比總結:

實驗一中dl存放的是輸出的結果,

實驗二中bh存放的數值控制結果的顏色,bl中存放的數值控制著結果的數值。

這次實驗因為不太懂masm的使用,導致出現了很多岔子,以後我會努力,更加理解每個使用方法。

實驗三 編程、編譯、連接、跟蹤