日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DEBUG各命令详细说明(很详细)

發(fā)布時(shí)間:2024/4/18 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DEBUG各命令详细说明(很详细) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

DEBUG各命令詳細(xì)說明

啟動(dòng)DEBUG

1.打開Windows命令窗口

在Windows 95/98的環(huán)境中,打開命令窗口的步驟為:點(diǎn)擊“開始”→“運(yùn)行”,輸入“command”命令; 在WindowsXP及WIN7的環(huán)境中,打開命令窗口的步驟為:點(diǎn)擊“開始”→“運(yùn)行”,輸入“cmd”命令;

2.啟動(dòng)DEBUG

在命令窗口中啟動(dòng)DEBUG,啟動(dòng)命令一般為:DEBUG ?[文件名] [參數(shù)表]。其中:文件名指定被調(diào)試的文件,其包括名和后綴,參數(shù)表是被調(diào)試文件運(yùn)行時(shí)所需要的參數(shù)。被調(diào)試的文件可以是系統(tǒng)中的任何文件,但通常它們的 后綴為.EXE或.COM。 當(dāng)DEBUG啟動(dòng)成功后,將顯示連接符“-”,這時(shí),可輸入各種DEBUG命令。DEBUG中所有命令及其含義如DEBUG各命令功能說明表 所示。 關(guān)于使用命令的幾點(diǎn)說明:在提示符“-”下才能輸入命令,在按“回車”鍵后,該命令才開始執(zhí)行命令是單個(gè)字母,命令和參數(shù)的大小寫可混合輸入可用F1、 F2、F3、Ins、Del、左移鍵、右移鍵等編輯鍵來編輯本行命令當(dāng)命令出現(xiàn)語法錯(cuò)誤時(shí),將在出錯(cuò)位置顯示“^ Error”可用Ctrl+C或Ctrl+Break來終止當(dāng)前命令的執(zhí)行,還可用Ctrl+S或Ctrl+Num Lock來暫停屏幕顯示(當(dāng)連續(xù)不斷地顯示信息時(shí))
以下通過實(shí)現(xiàn)十九個(gè)示例來熟悉DEBUG的命令集和基本的匯編指令。

R命令的使用

R命令作用:觀看和修改寄存器的值。

在提示符“-”下輸入以下命令:R。DEBUG將會(huì)顯示出當(dāng)前所有寄存器和標(biāo)志位的狀態(tài)。

接下來再輸入命令RCX。在提示符“:”后輸入100。該命令的作用是將寄存器CX的值設(shè)置為100(注意:DEBUG使用的是十六進(jìn)制,這里的100相當(dāng)于十進(jìn)制的256。)

最后再執(zhí)行R命令,觀看修改后的寄存器值。

H命令的使用

H命令作用:計(jì)算兩個(gè)十六進(jìn)制數(shù)的和與差。

在提示符“下輸入以下命令:H?10?1。觀看命令執(zhí)行結(jié)果。

運(yùn)行結(jié)果的前一個(gè)數(shù)是計(jì)算出來的和,后一個(gè)數(shù)是計(jì)算出來的差。計(jì)算結(jié)果均用十六進(jìn)制形式表示。

D命令的使用

D命令作用:顯示內(nèi)存區(qū)域的內(nèi)容。

在提示符“下連續(xù)執(zhí)行命令RDD。觀看命令執(zhí)行結(jié)果。

前面已經(jīng)介紹過了,命令R的作用是顯示當(dāng)前寄存器的值。而命令D的作用是顯示內(nèi)存區(qū)域的內(nèi)容,最左邊是內(nèi)存的起始地址,中間以十六進(jìn)制的形式顯示內(nèi)存值,最右邊是以ASCII碼的形式顯示內(nèi)存值。每行最多顯示16個(gè)字節(jié)的內(nèi)容。

命令D可以帶參數(shù)也可省略參數(shù)。設(shè)DEBUG啟動(dòng)時(shí)DS的值為X,當(dāng)省略參數(shù)時(shí),命令D顯示內(nèi)容以X100為起始,每次顯示128個(gè)字節(jié)的內(nèi)容。以后再執(zhí)行不帶參數(shù)的命令D時(shí),DEBUG將按上次的位置接著顯示下去。

帶參數(shù)時(shí)DEBUG能夠顯示指定地址范圍的內(nèi)容。帶參數(shù)的方式有三種:

方式一:d?[起始位置]DEBUG從起始位置開始顯示128個(gè)字節(jié)的內(nèi)容。在提示符“-”下執(zhí)行命令D?1AF5:100。觀看命令執(zhí)行結(jié)果。

方式二:d?[起始位置]?[結(jié)束位置]DEBUG從起始位置開始一直顯示到結(jié)束位置。在提示符“-”下執(zhí)行命令D?DS:100?1FF。觀看命令執(zhí)行結(jié)果。

方式三:d?[起始位置]?[L長度],長度以L參數(shù)為標(biāo)識(shí)。DEBUG從起始位置開始顯示指定長度的內(nèi)容。在提示符“-”下執(zhí)行命令D?DS:100?L10。觀看命令執(zhí)行結(jié)果。

E命令的使用

E命令作用:改變內(nèi)存單位的內(nèi)容。

E命令的使用方式為:E?[起始位置]

在提示符“-”下輸入以下命令:E?1AF5:100。

DEBUG首先顯示[1AF5:0000]的內(nèi)容00.,這時(shí)可以修改該字節(jié)的值。如果還要修改后續(xù)的內(nèi)容,可以按空格鍵繼續(xù)。當(dāng)要跳過某個(gè)字節(jié)時(shí),可以按連續(xù)的兩個(gè)空格跳到后一個(gè)字節(jié)去。

F命令的使用

F命令作用:使用指定的值填充指定內(nèi)存區(qū)域中的地址。

F命令的使用方式為:F?[范圍]?[填充列表]

在提示符“-”下輸入以下命令:F?1AF5:100?L20?1?2?3?4?5。執(zhí)行命令D?1AF5:100觀看命令執(zhí)行結(jié)果。

說明:該命令是用字節(jié)序列0102030405輪流填充從1AF5:100開始長度為20H的內(nèi)存區(qū)域。

在提示符“-”下輸入以下命令:F?1AF5:100?13F?41?42?43?44。

說明:該命令是用字節(jié)序列41424344輪流填充從1AF5:100開始一直到1AF5:13F的內(nèi)存區(qū)域。

M命令的使用

M命令作用:將指定內(nèi)存區(qū)域的數(shù)據(jù)復(fù)制到指定的地址去。

M命令的使用方式為:M?[范圍]?[指定地址]

在提示符“-”下輸入以下命令:M?1AF5:100?13F?1AF5:140。執(zhí)行命令D?1AF5:100觀看命令執(zhí)行結(jié)果。

C命令的使用

C命令作用:將兩塊內(nèi)存的內(nèi)容進(jìn)行比較。

C命令的使用方式為:C?[范圍]?[指定地址],意思就是將指定范圍的內(nèi)存區(qū)域與從指定地址開始的相同長度的內(nèi)存區(qū)域逐個(gè)字節(jié)進(jìn)行比較,列出不同的內(nèi)容。

在提示符“-”下輸入以下命令:C?1AF5:100?13F?1AF5:140。由于兩塊內(nèi)容完全相同,所以命令執(zhí)行后沒有任何顯示。

在提示符“-”下輸入以下命令:C?1AF5:100?107?1AF5:180,比較的區(qū)域長度為8個(gè)字節(jié)。命令執(zhí)行后列出比較結(jié)果不同的各個(gè)字節(jié)。

S命令的使用

S命令作用:在指定的內(nèi)存區(qū)域中搜索指定的串。

S命令的使用方式為:S?[范圍]?[指定串]

在提示符“-”下輸入以下命令:D?1AF5:100?11F。顯示該區(qū)域的內(nèi)存值。

在提示符“-”下輸入以下命令:S?1AF5:100?11F?41?42?43?44。搜索該區(qū)域是否存在字節(jié)串41?42?43?44,并將搜索結(jié)果一一列出。

從執(zhí)行結(jié)果可以看出,總共搜索到八處。

A命令的使用

A命令作用:輸入?yún)R編指令。

以下的程序要在屏幕上顯示“ABCD”四個(gè)字符。

首先用E命令將“ABCD$”四個(gè)字符預(yù)先放在內(nèi)存CS:200處,然后執(zhí)行A100命令輸入?yún)R編程序代碼:

MOV?AX,CS

MOV?DS,AX

MOV?DX,200

MOV?AH,9

INT?21

INT?20

(說明:前兩行匯編指令用于將段寄存器CS的值賦給段寄存器DS。第三到第五行匯編代碼的作用是顯示以“$”為結(jié)尾的字符串。最后一行用于結(jié)束程序。

G命令的使用

G命令作用:執(zhí)行匯編指令。

G命令的使用方法是:G [=起始地址]??[斷點(diǎn)地址],意思是從起始地址開始執(zhí)行到斷點(diǎn)地址。如果不設(shè)置斷點(diǎn),則程序一直運(yùn)行到中止指令才停止。

在設(shè)置完示例九的的內(nèi)存數(shù)據(jù)并且輸入完示例九的程序后運(yùn)行這些匯編代碼。在DEBUG中執(zhí)行命令G=100,觀看運(yùn)行結(jié)果。

匯編程序運(yùn)行后在屏幕上顯示出“ABCD”四個(gè)字符。

接下來在DEBUG中執(zhí)行G=100?10B,意思是從地址CS100開始,一直運(yùn)行到CS10B停止。觀看運(yùn)行結(jié)果。

命令執(zhí)行后,不但顯示出字符串“ABCD”,而且列出當(dāng)前寄存器和標(biāo)志位的值。

U命令的使用

U命令作用:對(duì)機(jī)器代碼反匯編顯示。

U命令的使用方法是:U [范圍]。如果范圍參數(shù)只輸入了起始地址,則只對(duì)20H個(gè)字節(jié)的機(jī)器代碼反匯編。執(zhí)行命令U100,觀看反匯編結(jié)果。

執(zhí)行命令U100?10B,觀看反匯編結(jié)果。該命令的作用是對(duì)從100到10B的機(jī)器代碼進(jìn)行反匯編。

N命令的使用

N命令作用:設(shè)置文件名,為將剛才編寫的匯編程序存盤做準(zhǔn)備。

以下的DEBUG命令序列作用將剛才的匯編程序存為磁盤的COM可執(zhí)行程序。

D200?20F

U100?10C

N??E:\FIRST.COM

RCX

:110

W

第一和第二條命令的作用是檢查一下剛才編寫的匯編指令。第三條命令的作用是設(shè)置存盤文件名為E:\FIRST.COM,第四條命令的作用是設(shè)置存盤文件大小為110H個(gè)字節(jié)。最后一條命令是將文件存盤。

文件存盤后執(zhí)行E:\FIRST.COM,觀看存盤的可執(zhí)行文件的運(yùn)行效果。

W命令的使用

W命令作用:將文件或者特定扇區(qū)寫入磁盤。

在示例“N命令的使用”中已經(jīng)實(shí)驗(yàn)了如何使用W命令將文件存盤。

在沒有很好地掌握匯編語言和磁盤文件系統(tǒng)前,暫時(shí)不要使用W命令寫磁盤扇區(qū),否則很容易損壞磁盤文件,甚至破壞整個(gè)磁盤的文件系統(tǒng)。

L命令的使用

L命令作用:從磁盤中將文件或扇區(qū)內(nèi)容讀入內(nèi)存。

將文件調(diào)入內(nèi)存必須先用DEBUG的N命令設(shè)定文件名。以下例子是將E:\FIRST.COM讀入內(nèi)容。

N?FIRST.COM

L

觀看調(diào)入程序的匯編代碼可以使用DEBUG的U命令,用U100觀看調(diào)入的COM文件。

?

讀取磁盤扇區(qū)的方式是:L?[內(nèi)存地址]?[磁盤驅(qū)動(dòng)器號(hào)]?[起始扇區(qū)]?[扇區(qū)數(shù)]。“內(nèi)存地址”指定要在其中加載文件或扇區(qū)內(nèi)容的內(nèi)存位置,如果不指定“內(nèi)存地址”的話,DEBUG將使用CS寄存器中的當(dāng)前地址。“磁盤驅(qū)動(dòng)器號(hào)”指定包含讀取指定扇區(qū)的磁盤的驅(qū)動(dòng)器,該值是數(shù)值型:0=A1=B2=C等。“起始扇區(qū)”指定要加載其內(nèi)容的第一個(gè)扇區(qū)的十六進(jìn)制數(shù)。“扇區(qū)數(shù)”指定要加載其內(nèi)容的連續(xù)扇區(qū)的十六進(jìn)制數(shù)。

只有要加載特定扇區(qū)的內(nèi)容而不是加載文件時(shí),才能使用[磁盤驅(qū)動(dòng)器號(hào)]?[起始扇區(qū)]?[扇區(qū)數(shù)]參數(shù)。

例如:要將C盤第一扇區(qū)讀取到內(nèi)存DS:300的位置,相應(yīng)的DEBUG命令為L?DS:300?2?1?1。但是由于Windows操作系統(tǒng)對(duì)文件系統(tǒng)的保護(hù),這條命令可能會(huì)被操作系統(tǒng)禁止運(yùn)行。

T命令的使用

T命令作用:執(zhí)行匯編程序,單步跟蹤。

T命令的使用方式是T?[=地址]?[指令數(shù)]。如果忽略“地址”的話,T命令從CS:IP處開始運(yùn)行。“指令數(shù)”是要單步執(zhí)行的指令的數(shù)量。

以下示例對(duì)E:\FIRST.COM進(jìn)行單步跟蹤。

N?E:\FIRST.COM

L

U100?10B

R

T=100

T

第一、二條命令是裝入文件,第三條命令是列出程序反匯編代碼,第四條命令是顯示當(dāng)前寄存器值,第五條命令是從CS:100處開始單步跟蹤,第六條命令是繼續(xù)跟蹤后續(xù)的指令。

P命令的使用

P命令作用:執(zhí)行匯編程序,單步跟蹤。與T命令不同的是:P命令不會(huì)跟蹤進(jìn)入子程序或軟中斷。

P命令的使用方式與T命令的使用方式完全相同。

I命令的使用

I命令作用:從計(jì)算機(jī)輸入端口讀取數(shù)據(jù)并顯示。

I命令的用法是I?[端口地址]。例如從3F8號(hào)端口讀取數(shù)據(jù)并顯示的命令為:I?3F8。這里不對(duì)該命令做解釋。

O命令的使用

O命令作用:向計(jì)算機(jī)輸出端口送出數(shù)據(jù)。

O命令的用法是O?[端口地址]?[字節(jié)值]。例如向278號(hào)端口發(fā)出數(shù)據(jù)20H的命令為:I?278?20。這里不對(duì)該命令做解釋。

Q命令的使用

Q命令的作用是退出DEBUG,回到DOS狀態(tài)。

總結(jié)

以上是生活随笔為你收集整理的DEBUG各命令详细说明(很详细)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。