目錄
一、安裝DoxBox,并下載匯編工具(MASM文件)
二、debug是什么
三、debug中的命令
一、安裝DoxBox,并下載匯編工具(MASM文件)
鏈接:
https://pan.baidu.com/s/1IbyJj-JIkl_oMOJmkKiaGQ?pwd=j4th
提取碼:j4th
?1、下載安裝之后雙擊DOSBox0.74-win32-installer.exe文件進行安裝。
2、配置DOS匯編器
? ? ? ?(1) 直接將下載好的MASM文件夾直接復制到自己安裝DosBox文件夾下面即可。
- MASM.EXE文件用于編譯;
- LINK.EXE文件用于鏈接;
- debug.exe文件用于調試;
????????
? ? ? ? (2)打開DosBox,輸入以下命令將Debug工具掛載到虛擬C盤:
mount C d:/Dosbox/masm
????????
? ? ? ? ?其中:d:/Dosbox/masm路徑下存放著debug.exe文件;
? ? ? ? (3)運行debug工具,輸入一下兩條命令,即可運行debug.exe文件。
二、debug是什么
? ? ? ??Debug是DOS系統中著名的調試程序,也可以在Windows系統中以實模式運行。Debug的主要功能包括查看和修改寄存器內容、查看和修改內存內容、將內存中的機器指令翻譯成匯編指令、執行機器指令、以匯編指令格式寫入內存等。
三、debug中的命令
? ? ? ? (1)R命令用于查看或改變CPU寄存器的內容
? ? ? ? ? ? ? ? 查看所有寄存器的內容
-r 用于查看寄存器的值
? ? ? ? ? ? ? ? 查看指定寄存器的內容
-r 寄存器名
? ? ? ? ? ? ? ? 修改寄存器的內容,debug會提示輸入新的值(以“:”表示)?
-r 寄存器名
:值
? ? ? ? ? ? ? ? 實例演示:?
????????(2)D命令用于查看內存中的內容
???????????????? 指定段地址和偏移地址
-d 段地址:偏移地址
從段地址1000和偏移地址0開始顯示內存內容? ? ? ? ? ? ??
????????????????使用段寄存器
-d 段寄存器:偏移地址
?從 DS 段寄存器中的段地址和偏移地址 100 開始顯示內存內容
?????????????????不指定地址
-d
????????????????指定指定段地址和偏移地址以及結尾偏移地址
-d 段地址:偏移地址 結尾偏移地址
從段地址1000和偏移地址0開始顯示內存內容,結束位置在段地址1000和偏移地址1f
- 如果指定了段地址和偏移地址,d 命令將從該地址開始顯示內存內容。
- 如果未指定地址,d 命令將從上次 d 命令顯示的最后一個單元的下一個單元開始顯示,或者從默認地址開始顯示。
- 默認情況下,d 命令從 DS:100H 地址開始顯示 128 個單元的內容,但實際行為可能因環境而異。
? ????????????????輸出格式:
- 每行顯示 16 個字節的內容。
- 左邊是每行的起始地址。
- 中間是每個內存單元中的數據對應的十六進制值。
- 右邊是每個內存單元中的數據對應的可顯示的 ASCII 碼字符。若沒有對應可顯示的 ASCII 字符,DEBUG 就用“.”來代替
? ? ? ? (3)E命令用于修改內存中的內容
? ? ? ? ? ? ? ? 批量修改內存單元
E 段地址:偏移地址 數據1 數據2...
? ? ? ? ? ?逐個修改內存單元
E 段地址:偏移地址逐個詢問式修改空格 -接受,繼續回車 -結束
? ?
? ? ? ? (4)U命令用于將內存中的機器指令翻譯成匯編指令
匯編指令
mov ax,0123H
mov bx,0003H
mov ax, bx
add ax,bx
對應的機器碼為
B8 23 01
BB 03 00
89 D8
01 D8
e 段地址:偏移地址 數據(機器碼)-------寫入
d?段地址:偏移地址? ? -----------------查看
u?段地址:偏移地址? ------------查看對應的匯編指令
?
? ? ? ? (5)A命令用于以匯編指令格式在內存中寫入機器指令
a? 段地址:偏移地址 數據(寫入匯編指令)
d 段地址:偏移地址 --------查看數據
u 段地址:偏移地址 -----------查看代碼
?
? ? ? ? (6)T命令用于執行cs:ip處的機器指令
? ? ? ? ? ? ? ? 先在CS:IP地址處寫入幾條指令
? ? ? ? ????????使用-t執行
? ? ? ? (7)Q命令用于退出Debug
-q 退出debug