【組合語言】實驗三
練習一:編寫程式碼
用masm進行編譯除錯
可以得到結果為 :36
如果將line4的dl變為2,line9的dl變為5,我們再進行編譯
可見結果變成了25!說明改動有效啦
用debug對生成的可執行檔案 t1.exe 進行除錯。
首先用r命令:
實驗截圖:
得到cs=076A,ds=075A,滿足公式(cs)=(ds)+10H。
PSP(程式段字首)的頭兩個位元組是CD 20, 用debug檢視PSP的內容,驗證是否如此。
由此可見,確實如此
使用 u 命令對 t1.exe 進行反彙編,觀察反彙編得到的原始碼。
使用 t 命令和 p 命令(遇到 int 命令時,用 p 命令)單步除錯,觀察結果:
得到25。
練習2:
編寫程式碼:
對源程式 t2.asm 進行彙編、連線、執行、除錯 :
對t2.asm進行彙編、連線後,得到可執行檔案t2.exe。執行t2.exe,觀察程式執行 結果,驗證是否在螢幕左上方出現紅色的數值36。 注*)經測試,有些平臺在 dosbox 下執行這個程式時有些問題,如果螢幕左上方沒有 輸出結果,請執行程式t2.exe前,先輸入cls命令清空一下螢幕,然後再執行t2.exe。
重新開啟t2.asm,嘗試將原始碼中line7的0433h→0432h, line10 的 0436h→0439h, 然後重新彙編、連線,得到可執行檔案 t2.exe。使用 cls 命令清 屏後,再次觀察程式執行結果。
可以發現數字發生了改變,結果為29
將原始碼中line7的0433h→0333h, line10 的 0436h→0336h, 然後重新彙編、連線,得到可執行檔案 t2.exe。使用 cls 命令清屏後,再次觀察程式執行結果。
又發生了改變,結果為36,數字顏色發生了變化。
實驗總結:這個實驗還是蠻有意思的,通過自己的輸入改變,結果發生改變,數字顏色竟然也會出現變化。這是一個探索的過程,非常奇妙。同時也讓我對該軟體加深了了解。變得想要去學更多。