組合語言debug的使用方法

2021-06-23 01:17:08 字數 1579 閱讀 5456

進入windows作業系統,輸入cmd回車

輸入debug 回車,這樣就進入了 debug模式

1: 輸入 -r 檢視或者修改暫存器,可以修改cs ip來指向要執行彙編的記憶體位址

-r 回車 檢視

-r ax 回車 修改 ax的值

-r cs 回車  修改 cs的值

-r ip 回車 修改 ip的值

2: 輸入-d 檢視記憶體中的資訊

-d 1000:0000 檢視段位址為1000h ,偏移位址為0開始的記憶體資訊

-d 1000:0000 00ff 就是檢視 1000:0000 到1000:00ff的記憶體資訊

檢視主機板生產日期

-d fff0:0000 00ff 可以看到右下角的 08/14/08 格式月/日/年, 08年8月14號生產的主機板

這裡的生產日期是唯讀的,無法修改,通過-e修改表面上看是改過了,下次開啟後又恢復之前資料了

如果直接用 -d 0100 則會顯示 ds:0100處的記憶體資訊,也就是顯示段位址為ds,便宜位址為0100的記憶體資訊。

-d ds:0100  也可以這麼使用

3:輸入-e修改記憶體中位置的資訊

-e 1000:0000 1a 00 09 10 a1 61 這樣就可以修改對應段位址為1000h ,偏移位址為0開始的記憶體資訊

-e 1000:0000 'a+b' 這樣就會在記憶體1000:0000處寫入61h(a的asicc碼) 1000:0001處+ 1000:0002 62

4:輸入-u檢視指定位置對應的彙編指令

-u 1000:0000 檢視該處的彙編指令

-u cs:0000 檢視段位址為cs處的彙編指令

5: 輸入-t 執行指令

-t 執行cs:ip所指向的第乙個指令,如果要執行自己寫入記憶體的指令,應該先通過-r來改變cs ip的值,然後再執行 -t 執行

-t 指令預設執行第一條指令後停止。但是當遇到修改ss的指令時,會把緊接的下一條指令也執行了。

6:輸入-a 輸入彙編指令

-a 1000:0000 回車

這樣就可以直接在1000:0000處輸入彙編指令了,注意再輸入完之後,輸入乙個空格,表示輸入完畢,輸入完畢後,通過-r修改cs ip來指向對應的記憶體位址,然後就可以通過-t逐行執行了,每執行一次通過-r來看對應的暫存器的變化。

-a 回車 直接輸入彙編指令,缺省會在cs:ip處輸入,所以直接用-a 回車輸入彙編指令,然後用-t執行那麼執行的就是剛剛輸入的彙編指令,這樣可以用來除錯彙編指令

7:輸入-g 直接跳轉到哪步執行

用-t是需要一步一步執行,但是往往遇到loop迴圈時候,次數很多,必須要用-g跳到指定行執行

-g 0019 直接跳到便宜位址為0019h處執行

最後用debug載入.exe檔案

用radasm編寫好asm檔案(新建選擇masm編譯器,dos)編寫好後用編譯、鏈結、執行,此時生成了對應的exe檔案。比如在:d:\radasm\masm\projects\test\test.exe

再用命令 debug d:\radasm\masm\projects\test\test.exe 回車

-u 檢視對應test.exe裡的彙編指令 -t執行 -g 跳轉到哪個偏移位址執行

組合語言實驗(DEBUG的使用)

一 實驗目的 1.熟悉debug的功能及執行。2.掌握debug常用命令。二 實驗內容 debug的載入及其常用命令 a u r d e t p g q 的使用情況。注意 微機進入debug狀態下之後,一切立即數和位址資料均被預設為十六進製制數,在輸入時數的後面不加字尾 h 2.將資料段中的兩個數求...

組合語言除錯DEBUG命令

1 顯示命令d d 位址 d 範圍 如不指定範圍,一次顯示8行 16個位元組。d 預設段暫存器為ds,當前偏移位址 d ds 100 d cs 200 d 200 100 d 200 200為偏移位址,預設段暫存器ds d ds 100 110 d 100 l 102.修改命令e e 位址 從指定位...

Debug的使用 《組合語言》學習筆記

說明 括號內的紅色為助記。一 什麼是debug debug是dos windows提供的實模式 8086方式 程式的除錯工具。使用它,可以檢視cpu各種暫存器的內容 記憶體的情況和在機器碼級跟蹤程式的執行。二 常用的debug功能 用debug的 r命令 register 檢視 改變cpu暫存器的內...