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

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

運行 clas int 程序 功能 class .exe ima 滿足

(1).編寫匯編源程序 t1.asm, 源程序代碼如圖所示

技術分享圖片

技術分享圖片

運行結果為3 6

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

將第四排的值改為1,第九排的值改為4

技術分享圖片

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

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

技術分享圖片

PSP(程序段前綴)的頭兩個字節是 CD 20, debug 查看 PSP 的內容
技術分享圖片

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

技術分享圖片

④ 使用 t 命令和 p 命令(遇到 int 命令時,用 p 命令)單步調試,出現了3和6

技術分享圖片

技術分享圖片

(2)

1編寫匯編源程序 t2.asm,源程序代碼如圖所示

技術分享圖片

技術分享圖片

2.對源程序 t2.asm 進行匯編、連接、運行、調試

技術分享圖片

3,將line 10,與line 7修改,匯編並連接運行。

技術分享圖片

技術分享圖片

4.將源代碼中 line7 0433h0333h,

line10 0436h0336h, 然後重新匯編、連接

技術分享圖片

技術分享圖片

3. 延伸思考和分析
1)把練習 2 實驗 1「實驗任務(4),放到一起看,觀察並思考這兩個實驗任務之間
的關聯,結合實驗 1「實驗任務(4)以及練習 2 中每行匯編指令的功能,理解練習 2 中程
t2.asm 實現的功能;
2)把練習 2 練習 1 放到一起看,結合兩個程序各自的源代碼以及運行結果, 觀察
並思考這兩個程序在實現數值顯示時不同的做法

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