第 1 步,編寫彙編源程序 t1.asm, 源程序代碼如圖 1-1 所示。spa
第 2 步,對源程序 t1.asm 進行彙編、鏈接、運行、調試debug
(1) 運行程序,觀察程序輸出結果是什麼?3d
截圖以下:調試
結果是3和6blog
(2) 將 line4 和 line9 種寄存器 dl 的值分別修改成 0~9 中任何一個數字,從新彙編→ 鏈接→運行,觀察結果的變化。 asm
3) 用 debug 對生成的可執行文件 t1.exe 進行調試。bug
①使用 r 命令查看。觀察寄存器 cx 的值是 多少;觀察寄存器 ds 和 cs 的值是多少,它們之間是否知足關係(cs)=(ds)+10H? 程序
如圖可知cs=ds+10方法
②PSP(程序段前綴)的頭兩個字節是 CD 20, 用 debug 查看 PSP 的內容,驗證是否im
如此。
是的
③使用 u 命令對 t1.exe 進行反彙編,觀察反彙編獲得的源代碼。
④使用 t 命令和 p 命令(遇到 int 命令時,用 p 命令)單步調試,觀察結果。
獲得輸入的數字:4和7
練習2:
執行結果爲紅色的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 命令清屏後,再次觀察程序運行結果。
實驗一與實驗二對比總結:
實驗一中dl存放的是輸出的結果,
實驗二中bh存放的數值控制結果的顏色,bl中存放的數值控制着結果的數值。
此次實驗由於不太懂masm的使用,致使出現了不少岔子,之後我會努力,更加理解每一個使用方法。