教材實驗4(P121)
實驗任務(1)和(2) 首先,在t1.asm中寫入源程序。
然后,進入虛擬Dos進行編譯和連接,并沒有警告錯誤和必須改正的錯誤。
這是編譯和連接產生的目標文件以及可執行文件。用debug對可執行文件進行調試。首先進行反匯編。
先用t命令單步調試代碼段前四條語句,在開始對0:200~0:22f內存單元進行修改之前查看0:200~0:22f內存單元的值。然后用g命令運行程序,運行到076A:0011之前。再查看0:200~0:22f內存單元的值。結果顯示傳送成功。

實驗任務(3) 應該將對應的機器碼分別存儲到指定的內存單元。由于我個人的虛擬Dos默認 CS = 076A,所以第一空應該填寫 076A或者CS ,根據對所有指令的機器碼的統計,在mov ax,4c00h 指令之前總共有24個字節,所以循環計數寄存器cx 的值為24。并進行了接下來的操作來驗證我的推斷。 首先在t2.asm 寫入源程序。 
然后,進入虛擬Dos進行編譯和連接,并沒有警告錯誤和必須改正的錯誤。
先進行反匯編,查看機器碼的個數。
用t命令單步調試到循環執行之前,查看0:200 后面若干內存單元的值。再用g命令執行指令到076A:0018之前結束,并再次查看0:200 后面若干的內存單元的值,發現已經被修改并用u命令對0:200后面的內存單元進行反匯編,發現指令被成功復制!

實驗教材5(P133-137)
實驗任務(5) 首先是程序的源代碼。以及編譯、連接形成的文件
用u命令進行反匯編,并通過反匯編的內容得知a,b,c段的段地址。并分別查看a,b,c的8個字節的內容。
用g命令執行指令到076D:001C之前,并用d命令查看c的8個字節。達到了預期的目標!
實驗任務(6) 首先是程序的源代碼。以及編譯、連接形成的文件
用u命令進行反匯編,可知a段和b段對應的段地址,并用d命令查看在push操作之前每個段的8個字單元。
用g命令運行程序到076D:001b之前,并用d命令查看邏輯段b的8個字單元,發現并被正確復制進去。 
新聞熱點
疑難解答
圖片精選