天天看點

彙編語言之實驗三

1. 練習1

第1步,編寫彙編源程式t1.asm, 源程式代碼如圖

彙編語言之實驗三

 使用edit編輯

彙編語言之實驗三

 編譯,使用masm

彙編語言之實驗三

 連接配接,使用link

彙編語言之實驗三

運作

彙編語言之實驗三

(1) 運作程式,觀察程式輸出結果是什麼? 

 36

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

改為2  4

編輯

彙編語言之實驗三

 編譯

彙編語言之實驗三

 連接配接

彙編語言之實驗三

 運作

彙編語言之實驗三

結果為24

 (3) 用debug對生成的可執行檔案 t1.exe 進行調試。

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

彙編語言之實驗三

cs=076A

da=075A

滿足(cs)=(ds)+10H關系

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

彙編語言之實驗三

果然如此

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

彙編語言之實驗三

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

彙編語言之實驗三
彙編語言之實驗三
彙編語言之實驗三

得到2  4

2. 練習2

第1步,編寫彙編源程式t2.asm,源程式代碼如圖

彙編語言之實驗三

 編輯

彙編語言之實驗三

 編譯

彙編語言之實驗三

 連接配接

彙編語言之實驗三

運作

彙編語言之實驗三

第2步,對源程式 t2.asm 進行彙編、連接配接、運作、調試

(1) 對t2.asm進行彙編、連接配接後,得到可執行檔案t2.exe。運作t2.exe,觀察程式運作 結果,驗證是否在螢幕左上方出現紅色的數值36。 注*)經測試,有些平台在 dosbox 下運作這個程式時有些問題,如果螢幕左上方沒有 輸出結果,請運作程式t2.exe前,先輸入cls指令清空一下螢幕,然後再執行t2.exe。

如上圖

(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 指令清 屏後,再次觀察程式運作結果。

彙編語言之實驗三

3. 延伸思考和分析

(1)把練習2和實驗 1「實驗任務(4)」,放到一起看,觀察并思考這兩個實驗任務之間 的關聯,結合實驗 1「實驗任務(4)」以及練習 2 中每行彙編指令的功能,了解練習 2 中程 序t2.asm實作的功能;

(2)把練習 2 和練習 1 放到一起看,結合兩個程式各自的源代碼以及運作結果,觀察 并思考這兩個程式在實作數值顯示時不同的做法。

實驗一中dl存放的是輸出的結果。改變了兩個dl寄存器值,輸出結果就改變了。

實驗二中bh存放的數值控制結果的顔色 bl中存放的數值控制着結果的數值。

轉載于:https://www.cnblogs.com/bowentianxia/p/9868420.html