使用方法
打開DOSBox,首先對工作目錄做一個掛載
mount c: d:\asm
然后進入虛擬目錄c:
最后直接輸入debug
用R命令查看改變寄存器的內容
R-查看寄存器的內容
前面有個“-”,這是debug的提示符
直接輸入r,即可查看寄存器的值
R 寄存器名-修改寄存器的值
例如輸入r ax,首先出現的是AX 0000,表名AX寄存器當前的值是0000,
而下面那一行出現了一個:,在這個地方直接輸入你想要更改的數值,例如FFFF
再次使用r命令查看,可以看到AX寄存器的值已變為了FFFF
PS:r ax和rax,中間有沒有空格都是一樣的
用D命令查看內存中的內容
D-列出預設地址內存處的128字節的內容
接着輸入d,還可以看到再往后面的128字節的內容,每一行是16個字節,總共是8行
D 段地址:偏移地址-列出內存中指定地址處的內容
以d 2000:0000為例
D 段地址:偏移地址 結尾偏移地址-列出內存中指定地址范圍內的內容
以d 2000:0 4f和d 2000:0 f為例
E命令改變內存中的內容
e 段地址:偏移地址 數據1 數據2 數據3 ...
以e 2000:0000 65 66 67 68 69 70為例
可以看到右側其實也就是左側的十六進制對應的ASCII字符
e 段地址:偏移地址-詢問式修改
①首先e 段地址:偏移地址,回車
②然后自動彈出了給定地址后第一個字節的值,此時可以輸入自己想要更改的值,
③如果要繼續修改,就按空格,重復上一步的操作
④如果修改結束,可按回車
例如,我們想把2000:0000后面的六個字節的內容變為abcdef
U命令將內存中的機器指令翻譯成匯編指令
為了驗證u命令,首先要使用e命令將機器指令寫入內存
e 2000:0 b8 23 01 b8 03 00 89 d8 01 d8
然后使用d命令查看2000:0后16個字節的內容,確認輸入無誤,d 2000:0 f
使用u 2000:0將內存中的機器指令翻譯成匯編指令
通過這個例子我們可以直觀的看到,在內存中指令和數據沒有什么區別,都只是數字而已
A命令以匯編語言的格式在內存中寫入機器指令
首先用r命令查看寄存器中的內容
然后用a命令,a 073f:100,回車
回車后輸入匯編指令,
每輸入一行指令就回車。輸入完畢的那次回車兩下。
可以通過d命令查看內存中的機器指令
可以使用u命令來查看代碼
T命令執行機器機器指令
直接輸入t,執行CS:IP處的指令
Q命令退出debug