熟悉、使用DEBUG調試工具實驗報告_第1頁
熟悉、使用DEBUG調試工具實驗報告_第2頁
熟悉、使用DEBUG調試工具實驗報告_第3頁
熟悉、使用DEBUG調試工具實驗報告_第4頁
熟悉、使用DEBUG調試工具實驗報告_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗目的:借助DEBUG程序發現匯編語言程序的錯誤并加以改正實驗過程:一,在debug環境下建立和匯編程序進入debugC:\debug回車輸入程序并匯編-A100回車0AF0:0100movdl,38回車0AF0:0102movah,2回車0AF0:0104int21h回車0AF0:0106int20h回車0AF0:0108回車運行程序-g=1008Programterminatednormally如果想分析該程序的指令,可使用反匯編命令U反匯編-u100,108回車0AF0:0100B238MOVDL,30AF0:0102B402MOVAH,00AF0:0104CD21INT210AF0:0106CD20INT200AF0:010856PUSHSI將機器指令程序送到起始地址為200h的單元-e200b2,38,b4,02,cd,21,cd,20,56-g=2008Programterminatednormally二,常用debug命令(1)顯示,修改寄存器內容顯示所有寄存器內容格式:一r回車功能:以十六進制形式顯示cpu內部個寄存器的值;以符號形式顯示標志寄存器的各標志位(除tf外)的值;并將CS:IP所指的內存內容反匯編成一條指令,可視為將要執行的指令。如:—r回車AX=0000 BX=0000 CX=0000 DX=0000SP=FFEEBP=0000 SI=0000 DI=0000NVUPEDS=0AF0ES=0AF0SS=0AF0CS=0AF0IP=0200NVUPEIPLNZNAPONCMOVDL,380AF0:0200B238MOVDL,38知:cs=0AF0h,IP=0100h修改寄存器格式:一r寄存器名 回車-rdsDS0AF:0AE0-rds的內容由原來的0af0h修改為0ae0h修改標志值格式:—rf例:-rfNVUPEIPLNZNAPONC-ovng回車將of,sf的值分別修改為1。(2)匯編,反匯編指令匯編命令A格式:一A內存地址回車例:調用dos中02h號功能顯示字符‘a',將該程序匯編到1270:100h開始的內存中。-A1270:1001270:0100mov,ah,21270:0102mov,dl,611270:0104int211270:0106int201270:0108反匯編命令U格式:一u內存塊回車功能:分三列顯示反匯編的結果,第一列為指令首地址,第二列為16進制形式的指令機器碼,第三列為指令的助記符。-u1270:1001270:0100B402MOVAH,021270:0102B261MOVDL,611270:0104CD21INT211270:0106CD20INT201270:01080000ADD[BX+SI],AL1270:010A0000ADD[BX+SI],AL1270:010C0000ADD[BX+SI],AL1270:010E0000ADD[BX+SI],AL1270:01100000ADD[BX+SI],AL1270:01120000ADD[BX+SI],AL

1270:01140000ADD[BX+SI],AL1270:01160000ADD[BX+SI],AL1270:01180000ADD[BX+SI],AL1270:011A0000ADD[BX+SI],AL1270:011C0000ADD[BX+SI],AL1270:011E0000ADD[BX+SI],AL3)執行程序單步執行格式:一七=內存地址回車格式:一卩=內存地址回車功能:用命令中的內存地址的段地址和偏移地址修改CS和ip,然后執行由cs:ip指向的內存單元處的一條指令,顯示各寄存器的值,并反匯編下一條指令,返回debug狀態。例:-t=1270:100SP=FFEEBP=000AX=0200BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=0AE0ES=0AF0SS=0AF0CS=1270IP=0102OVUPEDS=0AE0ES=0AF0SS=0AF0CS=1270IP=0102OVUPEINGNZNAPONC1270:0102B261MOV1270:0102B261MOVDL,61執行結果:ah=2,cs值不變,ip的值增加2,cs:ip指向第二條指令多步執行格式:一七=內存地址 執行指令的條數格式:一卩=內存地址 執行指令的條數命令t和p的不同:one:帶重復前綴rep/repnz/repz的串操作指令和loop/loopz/loopn等循環指令是與cs相關的指令。用t命令執行這類指令時,每執行一次,ex值減一,就停下來返回debug;而p命令執行時,一直執行到cx=0,執行其后的下一條指令,才返回debugtwo:調用指令call及中斷調用指令int,由于這類指令修改了cs和ip,使程序結構產生轉向。用t命令則在cs:ip(子程序)入口處停下來返回debug,可用t命令進行跟蹤。而用p命令則顯示call和int的下一條指令如:分別用t和p執行1270:0140h處的指令int21h。-t=1270:104AX=0200 BX=0000 CX=0000 DX=0000 SP=FFE8 BP=0000SI=0000DI=0000DS=0AE0 ES=0AF0 SS=0AF0 CS=00A7 IP=107COVUP DINGNZNAPONC-p=1270:104AX=0200 BX=0000 CX=0000 DX=0000 SP=FFE8 BP=0000SI=0000DI=0000DS=0AE0 ES=0AF0 SS=0AF0 CS=1270 IP=0106OVUP DINGNZNAPONC1270:0106CD20INT20連續執行—&=內存地址斷點執行格式:一&=內存地址斷點地址(4)顯示,修改內存內容顯示命令d格式:一d內存塊例:顯示-dl270:100h到1210內存塊的內容-d1270:100l301270:0100B402B261CD21CD20-0000000000000000 ...a.!. 1270:0110 0000000000000000-0000000000000001270:01200000000000000000-0000000000000000 修改命令e格式l:—e內存地址字符或數值串格式2:—e內存地址填充指令格式:一f內存塊字符或數值串例:一fds:20002100‘helloworld'搜索指令s格式:一s內存塊字符或數值串移動指令m格式:一m內存塊1內存塊2的首地址功能:將內存塊1的內容復制到內存塊2,內存塊1內容不變比較指令c格式:一c內存塊1內存塊2的首地址(5)讀寫磁盤指定文件命令N格式:一N[d:][PATH]文件名.擴展名 回車

功能:為命令L和命令W指定文件,其中[d:][PATH]為文件所在的盤號和路徑。寫入命令W格式:一W內存地址回車功能:將指定內存塊的內容寫到由命令N指定的文件中,其中內存塊的首地址命令W指定,內存塊的大小由BX,CX兩寄存器決定,BX存放內存塊大小的高字節,CX存放內存塊大小的低字節。裝入命令L塊格式:一L內存地址回車功能:將命令N指定的文件裝入到命令L給出的內存地址開始處。文件固定裝入到CS:IP處。裝入可執行的.EXE或.COM文件通常在調試可執行的.EXE或.COM文件時,可以不用N和L命令來裝入,而直接在進入debug的命令后加上要裝入的文件。格式:〉[d:][path]debug文件名.擴展名 回車功能:將命令中指定的文件裝入到內存CS:IP處例:把從1270:100h開始30h個字節的內存塊內容寫到D盤的根目錄AA.DAT文件中-nI:aa.dat ;用命令N指定文件名-rbx;修改-rbx;修改BX的值BX0000:0 ;bx=0h,存放文件長度的高位值-rcxCX0010:30 ;cx=30h,存放文件長度的低位值-w1270:100;將指定的內存塊寫到aa.dat文件上。Writing00030bytes例:將I盤根目錄下的aa.dat文件調到內存CS:100h開始處。-nI:aa.dat回車-lcs:100 回車-ucs:100 回車1270:0100B402MOVAH,021270:0102B261MOVDL,611270:0104CD21INT211270:0106CD20INT201270:01080000ADD[BX+SI],AL1270:010A0000ADD[BX+SI],AL1270:010C0000ADD[BX+SI],AL1270:010E0000ADD[BX+SI],AL1270:01100000ADD[BX+SI],AL1270:01120000ADD[BX+SI],AL1270:01140000ADD[BX+SI],AL1270:01160000ADD[BX+SI],AL1270:01180000ADD[BX+SI],AL1270:011A0000AD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論