彙編調試命令debug的基本用法

  在學習16位彙編時,debug是常用的調試工具,但很多基本用法命令幫助中並未提及,經查驗和實驗,特記錄如下:

  一、基本概念:

  debug可加載exe或com文件,並顯示內存中內容或變量值,還可以顯示cpu的寄存器值。可以顯示可執行文件的機器碼(彙編的方式),並且可以通過單步執行彙編代碼,檢測程序的邏輯錯誤,並可修改彙編代碼或內存數據。

  1、命令語法:

  dos下輸入:debug 可執行文件名稱,然後進入命令提示符界面(橫線-),輸入:命令 參數。

  例如:

  c:\>debug hello.exe(回車)

  -?(回車)  顯示幫助

  -r(回車)   顯示cpu寄存器值

  2、參數分隔符

  debug中參數之間的分隔符可用“空格”或“逗號”,效果一致,如:

  -u 100 110等於-u 100,110

  -d 0100:0000 0010等於-d 0100:0000,0010

  3、value的表示

  無論是debug的參數中含有的地址,立即數或彙編代碼中的數字,都是十六進制,無需加前綴或後綴,範圍只能是0~4位。

  字符需要引號,如:'a'

  4、debug命令和代碼不區分大小寫。
  5、地址(address)表示

  1)完全地址形式(段地址segment:偏移地址offset):段地址可通過段寄存器名稱和立即地址表示,如地址可通過DS:0010和0100:0010兩種方式表示。

  2)默認段地址形式(偏移地址offset):-d 0100(默認段地址是DS)。

  6、range的寫法

  參數range有2種寫法:

  1)開始地址和結束地址,如:

  -d 0100:0000 0010(結束地址段地址與開始相同,不能跨段)

  -d 0000 0010 (起始都是默認段地址)

  2)開始地址和長度,如:

  -d 0100:0000 l 0080(開始地址和長度)

  7、list的寫法

  用分隔符把各項羅列出來,如-f 0100:0110 1f 2f 3f ff(用數值列表輪流填充)

  8、string的表示

  'string'或"string"都行,表示一串字符,實質相當於字符list

  9、路徑path規範

  文件的路徑可寫成完整路徑,如當前目錄,可省略路徑

  10、加載彙編代碼

  可通過debug < hello.asm的方式加載彙編代碼,就相當於手動輸入每一行(最後必須有Q命令)。

a 100
mov ax,5
mov bx,10
add ax,bx
int 20
(blank line)
Q

  二、命令用法:

  1、N(指定文件名稱)

  指定寫出(W)或載入(L)的文件名稱,如載入hello.exe:

  -N c:\c\hello.exe

  -L

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章