版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、匯編語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書計(jì)算機(jī)應(yīng)用教研室編西南科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2006年3月實(shí)驗(yàn)指導(dǎo)書說明匯編語言程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程, 只有通過上機(jī)實(shí)踐才有可能掌握設(shè)計(jì) 技術(shù)并使其達(dá)到較高的水平,因此編寫了實(shí)驗(yàn)指導(dǎo)書,為匯編語言程序設(shè)計(jì)課程的實(shí)驗(yàn) 教學(xué)服務(wù)。實(shí)驗(yàn)指導(dǎo)書共分三部分,第一部分是實(shí)驗(yàn)的預(yù)備知識,介紹了匯編語言程序運(yùn)行時(shí) 所需要的一些應(yīng)用程序;第二部分是對實(shí)驗(yàn)報(bào)告的要求。第三部分是實(shí)驗(yàn)題目,分為驗(yàn)證型實(shí)驗(yàn)和設(shè)計(jì)型實(shí)驗(yàn)。在具體的實(shí)驗(yàn)過程中可以根據(jù)學(xué)生情況進(jìn)行選擇。目錄: TOC o 1-5 h z 第一部分 匯編語言程序設(shè)計(jì)實(shí)驗(yàn)基礎(chǔ)知識概述 4 HYPERLINK l book
2、mark2 o Current Document 1.1、匯編程序 MASM.EXE 4 HYPERLINK l bookmark4 o Current Document 宏匯編程序的功能 4 HYPERLINK l bookmark6 o Current Document 1.1.2匯編程序的用法 4 HYPERLINK l bookmark8 o Current Document MASM 出錯(cuò)信息 5 HYPERLINK l bookmark10 o Current Document 連接程序 LINK.EXE 6 HYPERLINK l bookmark12 o Current Doc
3、ument 1.2 DEBUG 命令詳解 7 HYPERLINK l bookmark14 o Current Document DEBUG 的功能7 HYPERLINK l bookmark16 o Current Document DEBUG 的使用方法 7 HYPERLINK l bookmark18 o Current Document DEBUG命令功能說明 8 HYPERLINK l bookmark20 o Current Document 第二部分 實(shí)驗(yàn)要求 36 HYPERLINK l bookmark22 o Current Document 2.1實(shí)驗(yàn)要求36 HYPER
4、LINK l bookmark24 o Current Document 2.2實(shí)驗(yàn)報(bào)告要求 36 HYPERLINK l bookmark26 o Current Document 2.3加強(qiáng)實(shí)踐能力的培養(yǎng) 36 HYPERLINK l bookmark28 o Current Document 第三部分 實(shí)驗(yàn)內(nèi)容37 HYPERLINK l bookmark30 o Current Document 實(shí)驗(yàn)1 MASM、LINK 指令的使用實(shí)驗(yàn) 37 HYPERLINK l bookmark34 o Current Document 實(shí)驗(yàn)2 匯編命令(偽指令)實(shí)驗(yàn) 39 HYPERLINK
5、l bookmark36 o Current Document 實(shí)驗(yàn) 3 順序結(jié)構(gòu)程序?qū)嶒?yàn) 40 HYPERLINK l bookmark38 o Current Document 實(shí)驗(yàn)4 簡單分支結(jié)構(gòu)程序?qū)嶒?yàn) 42 HYPERLINK l bookmark40 o Current Document 實(shí)驗(yàn)5循環(huán)結(jié)構(gòu)程序?qū)嶒?yàn)44 HYPERLINK l bookmark42 o Current Document 實(shí)驗(yàn)6子程序?qū)嶒?yàn)45 HYPERLINK l bookmark32 o Current Document 實(shí)驗(yàn)7 DOS功能調(diào)用 48 HYPERLINK l bookmark44 o
6、Current Document 實(shí)驗(yàn)8 排序和檢索程序?qū)嶒?yàn) 50實(shí)驗(yàn)9 字符串操作實(shí)驗(yàn)53第四部分 參考資料591.1、匯編程序 MASM.EXE經(jīng)過編輯的程序所建立的匯編語言源程序, 是不能直接在計(jì)算機(jī)上運(yùn)行的。 必須經(jīng)過匯 編、連接后才能運(yùn)行。目前使用的匯編程序有宏匯編程序 MASM和小匯編程序 ASM。小匯 編程序與宏匯編程序的區(qū)別在于:宏匯編程序有宏處理能力,而小匯編程形沒有這種功能。另外,小匯編(ASM)處理的匯編語言程序可以在 64KB的內(nèi)存條件下運(yùn)行,且只能有限制地 使用偽指令。而宏匯編(MASM)則必須在96KB以上的內(nèi)存條件下才能運(yùn)行,且可以使用各 種偽指令。ASM和MAS
7、M的程序運(yùn)行過程,除匯編時(shí)使用ASM或MASM進(jìn)行匯編外,其它步驟完全薩同。1.1.1宏匯編程序的功能宏匯編程序 MASM.EXE是將用匯編語言編制的源程序轉(zhuǎn)換為機(jī)器代碼的目標(biāo)程序 的軟件。MASM工作后生成3種文件:目標(biāo)文件(.OBJ)、列表文件(丄ST)和交叉索 引文件(.CRF )。1.1.2匯編程序的用法宏匯編程序的使用方法有兩種:交互式用法和命令行用法。1、交互式用法在DOS提示符下,鍵入 MASM,并按回車鍵,宏匯編程序連續(xù)顯示 4個(gè)提示,用戶根 據(jù)提示,逐個(gè)回答后,宏匯編程序開始工作。假設(shè)匯編語言源程序名為EXAM.ASM,并存放在當(dāng)前盤當(dāng)前目錄下,生成的文件也放在當(dāng)前盤當(dāng)前目錄
8、下。其操作過程如下:C MASMSource File name.ASM: EXAMObject File namEXAM.OBJ:Source List ing NUL.LST: EXAMASM EXAM, EXAM, EXAM, EXAM三個(gè)文件全生成CMASM EXAM, , EXAM ;生成 EXAM.OBJ 和 EXAM丄ST 文件CMASM EXAM ;僅生成 EXAM.OBJ 文件命令行中的“;”作為命令行的終止符,未輸入部分將使用MASM的隱含設(shè)定值。/開關(guān)參數(shù)也是可選項(xiàng),用以指定匯編程序的可選操作,開關(guān)參數(shù)可以是下述 5種情況:/D :在匯編程序的兩遍掃描中都產(chǎn)生列表文件,為
9、用戶查找兩遍掃描步驟錯(cuò)誤提供 方便。/O :在列表文件中用八進(jìn)制表示生成的目標(biāo)代碼和偏移量;/X :列表偽操作在條件為假時(shí),不作列表;/R :對源程序中的8087指令進(jìn)行匯編,并產(chǎn)生8087目標(biāo)代碼;/E :對源程序中的8087指令進(jìn)行匯編,產(chǎn)生 8087仿真目標(biāo)代碼。開關(guān)參數(shù)的使用方法是寫在匯編命令行的字符串之后,每個(gè)開關(guān)參數(shù)前用一個(gè)斜杠 “/ ”,然后是開關(guān)字母。使用參數(shù)的多少和順序由用戶根據(jù)需要確定。例如:A MASM MYPRG/D/E1.1.3 MASM出錯(cuò)信息匯編程序在對源程序進(jìn)行匯編的過程中,對匯編語言程序進(jìn)行詞法句法的檢查。一旦檢查出語法錯(cuò)誤,則顯示出錯(cuò)信息,MASM 5.0版
10、的錯(cuò)誤信息格式:(語句號)錯(cuò)誤性質(zhì)語句號是出錯(cuò)語句在源程序行中的語句行號。例如:(20) Symbol 丨 multi define(20)是語句行號,錯(cuò)誤性質(zhì)是:符號多重定義下面給出常見的主要錯(cuò)誤。Block nest ing error 塊嵌套錯(cuò)誤嵌套的過程、段、結(jié)構(gòu)、宏定義、重復(fù)塊定義等不恰當(dāng)?shù)亟Y(jié)束。Extra characters on line 語句行上有額外字符當(dāng)在語句行上接收到定義指令、命令語句的足夠信息時(shí),還有其它多余字符。U nknow symbol type.不認(rèn)識的符號類型符號語句,在類型字段內(nèi)有不能識別的符號。Symbol is multi defined . 重復(fù)定義
11、符號符號在標(biāo)號域中出現(xiàn)兩次以上。bymbol not defined .符號未定義操作數(shù)域或操作碼域引用了未在標(biāo)號域中出現(xiàn)過的標(biāo)號。Phase error between passes兩次掃描中間的步驟錯(cuò)程序中有二義性的指令語句。Symbol type usage illegal .符號類型用法錯(cuò)使用PUBLIC語句中的符號用法錯(cuò)。Symbol is reserved word .符號是保留字非法地使用了匯編程序的保留字。Division by 0 or overflow . 除法被 0 除或溢出在除法指令語句中,除數(shù)為0或商超出允許范圍。Operand type must match .操作
12、數(shù)類型必須匹配在要求操作數(shù)必須匹配的情況下.匯編程序得到了參量不同的類型和大小。Value is out of ran ge.值超出范圍所使用的數(shù)值超出了使用范圍。Relative jump out ran ge.相對轉(zhuǎn)移超出范圍相對轉(zhuǎn)移超出了當(dāng)前指令的范圍(一 128 一 127個(gè)字節(jié))。No or un reachable CS.沒有或不能達(dá)到 CS企圖轉(zhuǎn)移至不可達(dá)到的標(biāo)號。Opera nd expected .希望有操作數(shù)語句中沒有操作數(shù)。1.1.4連接程序 LINK.EXE1、連接程序的功能連接程序LINK.EXE是將匯編程序或高級語言編譯程序產(chǎn)生的目標(biāo)程序(.OBJ)連接和裝配成可執(zhí)
13、行程序的軟件。它具有下述功能:將匯編程序或高級語言編譯程序生成的一個(gè)或多個(gè).0BJ文件連接成一個(gè)可執(zhí)行文件和一個(gè)內(nèi)存映象文件.可以在匯編系統(tǒng)和各種高級語言編譯系統(tǒng)提供的庫文件(.LIB)中檢索目標(biāo)塊引用的標(biāo)準(zhǔn)庫函數(shù),井與目標(biāo)模塊組合在一起。檢查連接過程中的錯(cuò)誤,提供錯(cuò)誤信息。2、連接程序的用法在DOS提示符下,鍵入 LINK并按回車鍵,LINK連續(xù)提出4個(gè)問題,用戶逐個(gè)回答 后,LINK開始進(jìn)行連接工作。假設(shè)要進(jìn)行連接的ABC.OBJ文件在當(dāng)前盤當(dāng)前目錄下,其操作過程如下:C LINK ABCObject Mudules.OBJ:ABCRun fileABC.EXE:List file NUL
14、,MAP: ABCLibraries.LIB:第一個(gè)提示要求輸入欲連接的目標(biāo)模塊名。若只有一共欲連接的模塊,則鍵入該文件 名即可;若有多個(gè)模塊要連接成一個(gè)可執(zhí)行文件,則鍵入連接的所有目標(biāo)模塊名,模塊名之間用“十”號連接。本例中僅有一個(gè)目標(biāo)文件ABC.OBJ。第二個(gè)提示要求輸入連接后生成的可執(zhí)行程序的文件名。如果用戶只按回車鍵不回答 文件名,則以第一個(gè)目標(biāo)文件名為可執(zhí)行程序的文件名;若鍵入文件名,則以鍵入的文件名為可執(zhí)行程序文件的基本名,擴(kuò)展名為.EXE。本例回答文件名。第三個(gè)提示要求輸入欲生成的映象文件名。如果用戶只按回車控不回答文件名,則不產(chǎn)生映家文件。若鍵入文件名,則以鍵入的名字為映象文件
15、的基本名,擴(kuò)展名為.MAP。本例回答為ABC,將產(chǎn)生ABC.MAP文件。第四個(gè)提示輸入連接時(shí)使用的庫文件名。用戶應(yīng)根據(jù)生成的目標(biāo)文件所用的程序設(shè)計(jì) 語言編譯系統(tǒng)確定受用的庫文件并輸入庫文件名。若用一個(gè)以上的庫文件,則用“十”號將所用庫文件名連接起來一并輸入。庫文件的擴(kuò)展名為丄IB。本例中末使用庫文件,所以只按回車鍵。上述問題回答后,LINK開始進(jìn)行連接工作,若連接有錯(cuò),打印出錯(cuò)信息。DEBUG命令詳解DEBU(是 DOS中的一個(gè)外部命令,從 DOS1.0起就帶有此命令,因此可見此命令的重要 性了。雖然此命令的功能非常強(qiáng)大, 可以解決許多問題, 可是對許多人來說,尤其是初學(xué)者 來說,卻非常不易掌
16、握。因此,現(xiàn)將 DEBUG勺命令詳細(xì)介紹一番,以讓大家知道它的使用。DEBUG 的功能動(dòng)態(tài)調(diào)試程序 DEBUGS稱糾錯(cuò)程序,它主要具有下述功能:1)提供對可執(zhí)行程序(.EXE)或二進(jìn)制文件的控制和檢測手段,使用戶能利用 DEBUG 提供的命令監(jiān)視和控制被調(diào)試程序的執(zhí)行過程。裝入、顯示或修改任一文件。對磁盤直接進(jìn)行物理讀寫或邏輯讀寫。DEBUG的使用方法1、啟動(dòng)DEBU啲方法啟動(dòng)DEBU圍使用下述兩種方法之一:1)在DOS提示符下直接鍵入:C DEBUGDEBUG即被調(diào)入內(nèi)存并啟動(dòng)運(yùn)行,顯示DEBU啲提示符:“” 在Dos提示符下鍵入:C DEBUG文件名DEBUG即被調(diào)入內(nèi)存并啟動(dòng)運(yùn)行,然后將
17、指定的文件調(diào)入內(nèi)存,并顯示DEBUG提示符a ?。由于DEBU圍以將任一文件調(diào)入內(nèi)存,所以“文件名”必須寫全稱,若有擴(kuò)展名一定要鍵 入擴(kuò)展名。2 . DBDU(啟動(dòng)后各寄存器的狀態(tài)(1)以第一種方法啟動(dòng)后各寄存器的狀態(tài)段寄存器(DS、ES S5和CS)置為DEBUGS序末尾的第一個(gè)段的段邊界值;指令指示器1P的值置為0100H;堆棧指示器 SP的值置為OFFEEHAX BX CX DX SI、DI和BP寄存器均置為 0;標(biāo)志寄存器的狀態(tài)為 NV(0F= 0) , UP(DF= 0) , EIIF = 1) , PL(SF = 0) , NZ(XF= 0), NA(AF= 0) , PO(PF=
18、 O), NC(CF= 0)。(2)以第二種方法啟動(dòng)后各寄存器的狀態(tài)若DEBUG裝入的程序是非執(zhí)行程序(非.EXE文件),除BX、CX外,各寄存器的值與第 一種方法啟動(dòng)時(shí)相同。BX CX為文件長度。若DEBUG裝入的程序是可執(zhí)行程序(.EXE文件),DEBUGS其重新定位,則各寄存器的 值如下:段寄存器CS SS IP和3P置成程序中規(guī)定的值,DS和ES置為程序段前綴的段地址值;BX CX為可執(zhí)行程序的文件長度,AX DX SI、DI、BP置為0;標(biāo)志寄存器的值與第一種方法啟動(dòng)時(shí)相同。DEBUG命令功能說明Debug:A (匯編)直接將8086/8087/8088 記憶碼合并到內(nèi)存。該命令從匯
19、編語言語句創(chuàng)建可執(zhí)行的機(jī)器碼。所有數(shù)值都是十六進(jìn)制格式,必須按一到四個(gè)字符輸入這些數(shù)值。在引用的操作代碼(操作碼)前指定前綴記憶碼。a address參數(shù)address指定鍵入?yún)R編語言指令的位置。 對address使用十六進(jìn)制值,并鍵入不以“ h”字符結(jié)尾的 每個(gè)值。如果不指定地址,a將在它上次停止處開始匯編。有關(guān)將數(shù)據(jù)輸入到指定字節(jié)中的信息,請單擊“相關(guān)主題”列表中的Debug E (鍵入)。有關(guān)反匯編字節(jié)的信息,請單擊“相關(guān)主題”列表中的Debug U (反匯編)。說明使用記憶碼段的替代記憶碼為 cs:、ds:、es:和ss:。遠(yuǎn)程返回的記憶碼是 retf 。字符串處理的記憶 碼必須明確聲
20、明字符串大小。例如,使用movsw可以移動(dòng)16位的字串,使用movsb可以移動(dòng)8位字節(jié)串。匯編跳轉(zhuǎn)和調(diào)用匯編程序根據(jù)字節(jié)替換自動(dòng)將短、近和遠(yuǎn)的跳轉(zhuǎn)及調(diào)用匯編到目標(biāo)地址。通過使用near或far前綴可以替代這樣的跳轉(zhuǎn)或調(diào)用,如下例所示: -a0100:05000100:0500 jmp 502 ; a 2-byte short jump0100:0502 jmp near 505 ; a 3-byte near jump0100:0505 jmp far 50a ; a 5-byte far jump可以將near前綴縮寫為ne。區(qū)分字和字節(jié)內(nèi)存位置當(dāng)某個(gè)操作數(shù)可以引用某個(gè)字內(nèi)存位置或者字節(jié)內(nèi)存
21、位置時(shí),必須用前綴word ptr或者前綴byte ptr指定數(shù)據(jù)類型??山邮艿目s寫分別是wo和by。以下范例顯示兩種格式: dec wo si neg byte ptr 128指定操作數(shù)Debug使用包括在中括號()的操作數(shù)引用內(nèi)存地址的習(xí)慣用法。這是因?yàn)榱硪环矫鍰ebug不能區(qū)分立即操作數(shù)和內(nèi)存地址的操作數(shù)。以下范例顯示兩種格式: mov ax,21 ; load AX with 21h mov ax,21 ; load AX with the ;contents of;memory locatio n 21h使用偽指令使用a命令提供兩個(gè)常用的偽指令:db操作碼,將字節(jié)值直接匯編到內(nèi)存,d
22、w操作碼,將字值直接匯編到內(nèi)存。以下是兩個(gè)偽指令的范例:db 1,2,3,4,THIS IS AN EXAMPLEdb THIS IS A QUOTATION MARK:db THIS IS A QUOTATION MARK:dw 1000,2000,3000,BACH范例a命令支持所有形式的間接注冊命令,如下例所示: add bx,34bp+2.si-1pop bp+dipush si)還支持所有操作碼同義詞,如下例所示:loopz 100loope 100ja 200jnbe 200對于8087操作碼,必須指定 wait或fwait 前綴,如下例所示:fwait fadd st,st(3)
23、 ; this line assembles;an fwait prefixDebug:C (比較)比較內(nèi)存的兩個(gè)部分。c range address參數(shù)range指定要比較的內(nèi)存第一個(gè)區(qū)域的起始和結(jié)束地址,或起始地址和長度。有關(guān)有效的ran ge值的信息,請單擊“相關(guān)主題”列表中的“ Debug說明”。address指定要比較的第二個(gè)內(nèi)存區(qū)域的起始地址。有關(guān)有效address值的信息,請單擊“相關(guān)主題”列表中的“ Debug說明”。說明如果range 和address 內(nèi)存區(qū)域相同,Debug將不顯示任何內(nèi)容而直接返回到Debug提示符。如果有差異,Debug將按如下格式顯示:address
24、l bytel byte2 addess2范例以下命令具有相同效果:c100,10f 300C100I10 300每個(gè)命令都對100h到10Fh的內(nèi)存數(shù)據(jù)塊與300h到30Fh的內(nèi)存數(shù)據(jù)塊進(jìn)行比較。Debug響應(yīng)前面的命令并顯示如下信息(假定 DS = 197F)197F:0100 4D E4 197F:0300197F:0101 67 99 197F:0301197F:0102 A3 27 197F:0302197F:0103 35 F3 197F:0303197F:0104 97 BD 197F:0304197F:0105 04 35 197F:0305197F:0107 76 71 19
25、7F:0307197F:0108 E6 11 197F:0308197F:0109 19 2C 197F:0309197F:010A 80 0A 197F:030A197F:010B 36 7F 197F:030B197F:010C BE 22 197F:030C197F:010D 83 93 197F:030D197F:010E 49 77 197F:030E197F:010F 4F 8A 197F:030F注意列表中缺少地址 197F:0106和197F:0306。這表明那些地址中的值是相同的。Debug:D (轉(zhuǎn)儲)顯示一定范圍內(nèi)存地址的內(nèi)容。d range參數(shù)range指定要顯示其內(nèi)容
26、的內(nèi)存區(qū)域的起始和結(jié)束地址,或起始地址和長度。有關(guān)有效的ran ge值的信息,請單擊相關(guān)主題”列表中的Debug說明”。 如果不指定range ,Debug程序?qū)?從以前d命令中所指定的地址范圍的末尾開始顯示 128個(gè)字節(jié)的內(nèi)容。有關(guān)顯示寄存器內(nèi)容的信息,請單擊“相關(guān)主題”列表中的Debug R (寄存器)。說明當(dāng)使用d命令時(shí),Debug以兩個(gè)部分顯示內(nèi)存內(nèi)容:十六進(jìn)制部分(每個(gè)字節(jié)的值都用十 六進(jìn)制格式表示)和 ASCII碼部分(每個(gè)字節(jié)的值都用ASCII碼字符表示)。每個(gè)非打印字符在顯示的ASCII部分由句號(.)表示。每個(gè)顯示行顯示 16字節(jié)的內(nèi)容,第 8字節(jié)和第9字節(jié)之間有一個(gè)連字符。
27、每個(gè)顯示行從16字節(jié)的邊界上開始。范例假定鍵入以下命令:dcs:100 10fDebug按以下格式顯示范圍中的內(nèi)容:04BA:0100 54 4F 4D 00 53 41 57 59-45 52 00 00 00 00 00 00 TOM.SAWYER如果在沒有參數(shù)的情況下鍵入d命令,Debug按以前范例中所描述的內(nèi)容來編排顯示格式。顯示的每行以比前一行的地址大16個(gè)字節(jié)(如果是顯示 40列的屏幕,則為 8個(gè)字節(jié))的地址開頭。對于后面鍵入的每個(gè)不帶參數(shù)的d命令,Debug將緊接在最后顯示的命令后立即顯示字節(jié)內(nèi)容。如果鍵入以下命令,Debug將從CS:100開始顯示20h個(gè)字節(jié)的內(nèi)容:dcs:1
28、00 l 20如果鍵入以下命令,Debug將顯示范圍從 CS段的100h到115h中所有字節(jié)的內(nèi)容:dcs:100 115Debug:E (鍵入)將數(shù)據(jù)輸入到內(nèi)存中指定的地址??梢园词M(jìn)制或 ASCII格式鍵入數(shù)據(jù)。以前存儲在指定位置的任何數(shù)據(jù)全部丟失。e address list參數(shù)address指定輸入數(shù)據(jù)的第一個(gè)內(nèi)存位置。list指定要輸入到內(nèi)存的連續(xù)字節(jié)中的數(shù)據(jù)。Debug A (匯編)。有關(guān)集成記憶碼的信息,請單擊“相關(guān)主題”列表中的有關(guān)顯示內(nèi)存部分內(nèi)容的信息,請單擊相關(guān)主題”列表中的Debug D (轉(zhuǎn)儲)。說明使用address 參數(shù) 如果在沒有指定可選的list 參數(shù)的值情況
29、下指定 address的值,Debug將顯示地址和內(nèi) 容,在下一行重復(fù)地址,并等待您的輸入。此時(shí),您可以執(zhí)行下列操作之一:替換字節(jié)值。為此,請?jiān)诋?dāng)前值后鍵入新值。如果您鍵入的值不是有效的十六進(jìn)制值,或該值包含兩個(gè)以上的數(shù)字,則Debug不會回顯無效或額外的字符。進(jìn)入下一個(gè)字節(jié)。為此,請按SPACEBAR空格鍵)。要更改該字節(jié)中的值,請?jiān)诋?dāng)前值后鍵入新值。如果按 SPACEBAR空格鍵)時(shí),移動(dòng)超過了 8位界限,Debug程序?qū)@示新的 一行并在行首顯示新地址。返回到前一個(gè)字節(jié)。為此,請按HYPHEN鍵(-)??梢苑磸?fù)按 HYPHEN鍵(-) 向后移動(dòng)超過多個(gè)字節(jié)。在按 HYPHEN時(shí),Debu
30、g開始新行并顯示當(dāng)前地址和字節(jié)值。停止執(zhí)行e命令。為此,請按 ENTER鍵。在任何字節(jié)位置都可以按ENTER使用list 參數(shù) 如果指定list 參數(shù)的值,隨后的 e命令將使用列表中的值替換現(xiàn)有的字節(jié)值。如果發(fā)生錯(cuò)誤,將不更改任何字節(jié)值。List值可以是十六進(jìn)制字節(jié)或字符串。使用空格、逗號或制表符來分隔值。必須將字符串 包括在單或雙引號中。范例 假定鍵入以下命令:ecs:100Debug按下面的格式顯示第一個(gè)字節(jié)的內(nèi)容:04BA:0100 EB.要將該值更改為41,請?jiān)诓迦朦c(diǎn)鍵入 41,如下所示: 04BA:0100 EB.41_可以用一個(gè)e命令鍵入連續(xù)的字節(jié)值。在鍵入新值后按SPACEBAR
31、空格鍵),而不是按ENTER鍵。Debug顯示下一個(gè)值。在此范例中,如果按三次 SPACEBAR空格鍵),Debug將 顯示下面的值:04BA:0100 EB.41 10. 00. BC.要將十六進(jìn)制值 BC更改為42,請?jiān)诓迦朦c(diǎn)鍵入 42,如下所示: 04BA:0100 EB.41 10. 00. BC.42_假定決定值10應(yīng)該是6F。要糾正該值,請按HYPHEN鍵兩次以返回到地址 0101 (值10 )。Debug顯示以下內(nèi)容:04BA:0100 EB.41 10. 00. BC.42-04BA:0102 00.-04BA:0101 10._在插入點(diǎn)鍵入6f更改值,如下所示:04BA:01
32、01 10.6f_按ENTER停止e命令并返回到Debug提示符下。以下是字符串項(xiàng)的范例:eds:100 This is the text example該字符串將從DS:100開始填充24個(gè)字節(jié)Debug:F (填充)使用指定的值填充指定內(nèi)存區(qū)域中的地址??梢灾付ㄊM(jìn)制或 ASCII格式表示的數(shù)據(jù)。任何以前存儲在指定位置的數(shù)據(jù)將會丟失。f range list參數(shù)range指定要填充內(nèi)存區(qū)域的起始和結(jié)束地址,或起始地址和長度。關(guān)于有效的ran ge值的信息,請單擊“相關(guān)主題”列表中的“ Debug說明”。list指定要輸入的數(shù)據(jù)。List可以由十六進(jìn)制數(shù)或引號包括起來的字符串組成。說明 使
33、用range 參數(shù)如果ran ge包含的字節(jié)數(shù)比list中的數(shù)值大,Debug將在list 中反復(fù)指派值,直到range中的所有字節(jié)全部填充。如果在range中的任何內(nèi)存損壞或不存在,Debug將顯示錯(cuò)誤消息并停止f命令。使用list 參數(shù)如果list包含的數(shù)值多于range中的字節(jié)數(shù),Debug將忽略list 中額外的值。范例假定鍵入以下命令:fO4ba:1OOI1OO 42 45 52 54 41作為響應(yīng),Debug使用指定的值填充從 04BA:100到04BA:1FF的內(nèi)存位置。Debug重復(fù)這五個(gè)值直到100h個(gè)字節(jié)全部填滿為止。Debug:G (轉(zhuǎn)向)運(yùn)行當(dāng)前在內(nèi)存中的程序。g =a
34、ddress breakpo in ts參數(shù)=address指定當(dāng)前在內(nèi)存中要開始執(zhí)行的程序地址。如果不指定address ,Windows 2000將從CS:IP寄存器中的當(dāng)前地址開始執(zhí)行程序。breakpo ints指定可以設(shè)置為g命令的部分的1到10個(gè)臨時(shí)斷點(diǎn)。有關(guān)執(zhí)行循環(huán)、重復(fù)的字符串指令、 軟件中斷或子程序的信息,請單擊“相關(guān)主題”列表中的Debug P (執(zhí)行)。有關(guān)執(zhí)行指令的信息,請單擊“相關(guān)主題”列表中的Debug T (跟蹤)。Debug:H (十六進(jìn)制)對指定的兩個(gè)參數(shù)執(zhí)行十六進(jìn)制運(yùn)算。h valuel value2參數(shù)valuel代表從0到FFFFh范圍內(nèi)的任何十六進(jìn)制數(shù)
35、字。value2代表從0到FFFFh范圍內(nèi)第二個(gè)十六進(jìn)制數(shù)字。說明Debug首先將指定的兩個(gè)參數(shù)相加,然后從第一個(gè)參數(shù)中減去第二個(gè)參數(shù)。這些計(jì)算的結(jié)果顯示在一行中:先計(jì)算和,然后計(jì)算差。范例假定鍵入以下命令:h19f 10aDebug執(zhí)行運(yùn)算并顯示以下結(jié)果。02A9 0095Debug:I (輸入)從指定的端口讀取并顯示一個(gè)字節(jié)值。port參數(shù)port按地址指定輸入端口。地址可以是16位的值。有關(guān)將字節(jié)值發(fā)送到輸出端口的信息,請單擊“相關(guān)主題”列表中的Debug O (輸出)。范例假定鍵入以下命令:i2f8同時(shí)假定端口的字節(jié)值是42h。 Debug讀取該字節(jié),并將其值顯示如下:42Debug:
36、L (加載)將某個(gè)文件或特定磁盤扇區(qū)的內(nèi)容加載到內(nèi)存。要從磁盤文件加載 BX:CX寄存器中指定的字節(jié)數(shù)內(nèi)容,請使用以下語法:address要略過 Windows 2000文件系統(tǒng)并直接加載特定的扇區(qū),請使用以下語法:address drive start nu mber參數(shù)address指定要在其中加載文件或扇區(qū)內(nèi)容的內(nèi)存位置。如果不指定address ,Debug將使用CS寄存器中的當(dāng)前地址。drive0 = A, 1 = B, 2 = C 等。指定包含讀取指定扇區(qū)的磁盤的驅(qū)動(dòng)器。該值是數(shù)值型:start指定要加載其內(nèi)容的第一個(gè)扇區(qū)的十六進(jìn)制數(shù)。nu mber指定要加載其內(nèi)容的連續(xù)扇區(qū)的十六
37、進(jìn)制數(shù)。只有要加載特定扇區(qū)的內(nèi)容而不是加載 debug命令行或最近的 Debug n (名稱)命令中指定的文件時(shí), 才能使用drive、start 和number 參數(shù)。有關(guān)指定用于I命令的文件的信息,請單擊“相關(guān)主題”列表中的Debug n (名稱)。有關(guān)寫入調(diào)試到磁盤的文件的信息,請單擊相關(guān)主題”列表中的Debug w (寫入)。注意 使用不帶參數(shù)的I命令當(dāng)使用不帶參數(shù)的I命令時(shí),在debug命令行上指定的文件將加載到內(nèi)存中,從地址CS:100開始。Debug同時(shí)將BX和CX寄存器設(shè)置為加載的字節(jié)數(shù)。如果不在debug命令行指定文件,所裝入的文件將是最近使用n命令經(jīng)常指定的文件。使用具有a
38、ddress 參數(shù)的1命令如果使用帶address 參數(shù)的I命令,Debug將從內(nèi)存位置address 開始加載文件或指定 扇區(qū)的內(nèi)容。使用帶全部參數(shù)的I命令如果使用帶所有參數(shù)的I命令,Debug將加載指定磁盤扇區(qū)的內(nèi)容而不是加載文件。加載特定扇區(qū)的內(nèi)容指定范圍內(nèi)的每個(gè)扇區(qū)均從drive 讀取。Debug從start 開始加載,直到在number中指定的扇區(qū)數(shù)中的內(nèi)容全部被加載。加載.exe 文件Debug忽略.exe 文件的地址 address 參數(shù)。如果指定 .exe 文件,Debug將文件重新定 位到.exe文件的標(biāo)題中指定的加載地址。在.exe文件被加載到內(nèi)存前,標(biāo)題自身從.exe文件
39、脫離,因此磁盤上的.exe 文件大小與內(nèi)存中的不同。如果要檢查整個(gè).exe 文件,請使用不同的擴(kuò)展名重命名文件。打開十六進(jìn)制文件Debug將具有.hex 擴(kuò)展名的文件認(rèn)為十六進(jìn)制格式文件。鍵入不帶參數(shù)的I命令,可以加載從十六進(jìn)制文件中指定的地址處開始的十六進(jìn)制文件。如果鍵入的I命令包含address參數(shù),Debug將把指定的地址加到在十六進(jìn)制文件中找到的地址上,以確定起始地址。范例假定啟動(dòng)Debug并鍵入以下命令:n 現(xiàn)在可以鍵入I命令以加載F 。 Debug將加載文件并顯示 Debug提示符。假定需要從驅(qū)動(dòng)器 C將起始邏輯扇區(qū)為15 (OFh)的109 (6Dh)個(gè)扇區(qū)的內(nèi)容加載到起始 地址
40、為04BA:0100的內(nèi)存中。為此,請鍵入以下命令:IO4ba:1OO 2 0f 6dDebug:M (移動(dòng))將一個(gè)內(nèi)存塊中的內(nèi)容復(fù)制到另一個(gè)內(nèi)存塊中。m range address參數(shù)range指定要復(fù)制內(nèi)容的內(nèi)存區(qū)域的起始和結(jié)束地址,或起始地址和長度。address指定要將range內(nèi)容復(fù)制到該位置的起始地址。說明 復(fù)制操作對現(xiàn)有數(shù)據(jù)的影響如果新數(shù)據(jù)沒有寫入正在被復(fù)制的數(shù)據(jù)塊中的地址,則源數(shù)據(jù)將保持不變。 但是,如果目標(biāo)塊已經(jīng)包含數(shù)據(jù)(就象它在覆蓋副本操作中一樣),則將改寫該數(shù)據(jù)。(覆蓋復(fù)制操作是指那 些目標(biāo)數(shù)據(jù)塊部分內(nèi)容覆蓋原數(shù)據(jù)塊部分內(nèi)容的操作。)執(zhí)行覆蓋復(fù)制操作m命令執(zhí)行目標(biāo)地址的覆
41、蓋復(fù)制操作,而不丟失數(shù)據(jù)。將改寫的地址內(nèi)容首先復(fù)制。因此, 如果將較高位地址的數(shù)據(jù)復(fù)制到較低位地址,則復(fù)制操作從原塊的最低位地址開始并向最高位地址進(jìn)行。反之,如果要將數(shù)據(jù)從低地址復(fù)制到高地址,復(fù)制操作從原塊的最高地址開始,向最低地址進(jìn)行。范例假定鍵入以下命令:mcs:100 110 cs:500Debug首先將CS:110地址中的內(nèi)容復(fù)制到地址 CS:510中,然后將CS:10F地址中的內(nèi)容 復(fù)制到CS:50F中,如此操作直至將 CS:100地址中的內(nèi)容復(fù)制到地址 CS:500中。要查看 結(jié)果,請使用Debug d (轉(zhuǎn)儲)命令,并使用 m命令指定目標(biāo)地址Debug:N (名稱)指定Debug
42、 I (加載)或w (寫入)命令的可執(zhí)行文件的名稱,或者指定正在調(diào)試的可執(zhí)行 文件的參數(shù)。n drive:path file name要指定測試的可執(zhí)行文件的參數(shù),請使用以下語法:n file-parameters參數(shù)如果在沒有參數(shù)的情況下使用,則n命令清除當(dāng)前規(guī)范。drive:path file name指定要測試的可執(zhí)行文件的位置和名稱。file-parameters為正在測試的可執(zhí)行文件指定參數(shù)和開關(guān)。有關(guān)將文件或指定磁盤扇區(qū)的內(nèi)容加載到內(nèi)存中的信息,請單擊“相關(guān)主題”列表中的Debug L (加載)。有關(guān)寫入調(diào)試到磁盤的文件的信息,請單擊相關(guān)主題”列表中的Debug W (寫入)。說明
43、n命令的兩個(gè)用途可以按兩種方式使用 n命令。首先,您可以使用它以指定后面的I (加載)或w (寫入)命令所使用的文件。如果在沒有命名所調(diào)試文件的情況下啟動(dòng)Debug,必須在使用I命令加載文件之前使用命令 nfilename 。在CS:5C為文件控制塊(FCB)正確編排文件名的格 式。其次,可以使用 n命令指定被調(diào)試文件的命令行參數(shù)和開關(guān)。內(nèi)存區(qū)域以下四個(gè)內(nèi)存區(qū)域都會受到n命令的影響:內(nèi)存位置內(nèi)容CS:5C文件1的文件控制數(shù)據(jù)塊(FCB)CS:6C文件2的文件控制數(shù)據(jù)塊(FCB)CS:80n命令行的長度(以字符表示)CS:81n命令行字符的開頭為n命令指定的第一個(gè)文件名被放在CS:5C的FCB中
44、。如果指定第二個(gè)文件名,此名稱將放置到CS:6C的FCB中。n命令行上鍵入的字符數(shù)(除第一個(gè)字符之外,n)存儲在位置CS:80。n命令行上的實(shí)際字符 (再次,除了字母n之外)存儲在以CS:81開頭的位置。 注意這些字符可以是在 Win dows 2000命令提示符下鍵入的命令中有效的任何開關(guān)和分隔 符。范例假定已經(jīng)啟動(dòng) Debug,并加載了正在調(diào)試的程序P。接著您決定為 P 指定兩個(gè)參數(shù)并運(yùn)行此程序。以下是此范例的命令序列:debug n param1 param2g在這種情況下,Debug g (轉(zhuǎn)向)命令會運(yùn)行該程序,就好像您已在Windows 2000命令提示符后鍵入了如下命令:prog
45、 param1 param2所以,測試和調(diào)試反映P 通常的運(yùn)行時(shí)間環(huán)境。在下面的命令序列中,第一個(gè)n命令將File1.exe指定為后接的I (加載)命令的文件,該命令將File1.exe 加載到內(nèi)存。第二個(gè)n命令指定File1.exe將使用的參數(shù)。最后,g命令將運(yùn)行 File1.exe 文件,就好像您在 Windows 2000命令行中鍵入了 File1 File2.dat File2.dat 一樣。n file1.exelnfile2.dat file3.datg不要在n命令的第二種形式后使用I命令。還要注意,如果現(xiàn)在使用w (寫入)命令,Windows 2000將使用名稱File2.dat
46、保存正在調(diào)試的文件 File1.exe。為避免出現(xiàn)此結(jié)果,應(yīng)該總是在I或w命令之前立即使用 n命令的第一種形式。Debug:。(輸出)將字節(jié)值發(fā)送到輸出端口。o port byte-value參數(shù)port通過地址指定輸出端口。端口地址可以是16位值。byte-value指定要指向port 的字節(jié)值。有關(guān)從輸入端口讀取字節(jié)值的信息,請單擊“相關(guān)主題”列表中的Debug I (輸入)。范例要將字節(jié)值4Fh發(fā)送到地址為2F8h的輸出端口,請鍵入以下命令:o2f8 4fDebug:P (執(zhí)行)執(zhí)行循環(huán)、重復(fù)的字符串指令、軟件中斷或子例程;或通過任何其他指令跟蹤。p = address nu mber參
47、數(shù)=address指定第一個(gè)要執(zhí)行指令的位置。如果不指定地址,則默認(rèn)地址是在CS:IP寄存器中指定的當(dāng)前地址。nu mber指定在將控制返回給 Debug之前要執(zhí)行的指令數(shù)。默認(rèn)值為1。有關(guān)運(yùn)行當(dāng)前在內(nèi)存中程序的信息,請單擊相關(guān)主題”列表中的Debug G (轉(zhuǎn)向)。有關(guān)執(zhí)行指令的信息,請單擊“相關(guān)主題”列表中的Debug T (跟蹤)。說明控制傳送到要測試的程序當(dāng)p命令將控制從Debug傳送到要測試的程序時(shí),該程序不間斷運(yùn)行,直到循環(huán)、重復(fù)字 符串指令、軟件中斷或者完成了指定地址的子例程為止,或者直到執(zhí)行了指定數(shù)量的機(jī)器指令為止??刂品祷氐?Debug。地址參數(shù)的限制如果address參數(shù)沒
48、有指定段,Debug將使用被測試程序的CS寄存器。如果省略address,程序?qū)腃S:IP寄存器所指定的地址開始執(zhí)行。必須在 address 參數(shù)之前使用 等號(=)以便將它與number參數(shù)區(qū)分。如果在指定地址處的指令不是循環(huán)、重復(fù)的字符 串指令、軟件中斷或子例程,則p命令與Debug t (跟蹤)命令的作用相同。使用p命令顯示的郵件當(dāng)p執(zhí)行完一段說明后,Debug顯示出程序的寄存器內(nèi)容、標(biāo)志的狀態(tài)以及下一段將要被執(zhí)行的指令的解碼形式。警告不能使用p命令跟蹤只讀內(nèi)存(ROM)。范例假定正在測試的程序在地址CS:143F處包含一個(gè)call 指令。要運(yùn)行call 目標(biāo)位置的子程序然后將控制返回
49、到Debug,請鍵入以下命令:p=143fDebug按以下格式顯示結(jié)果:AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=2246 ES=2246 SS=2246 CS=2246 IP=1443 NV UP EI PL NZ AC PO NC2246:1442 7505 JNZ 144ADebug:Q (退出)停止Debug會話,不保存當(dāng)前測試的文件。當(dāng)您鍵入q以后,控制返回到 Windows 2000的命令提示符。參數(shù)Debug W (寫入)。該命令不帶參數(shù)。有關(guān)保存文件的信息,請單擊“相關(guān)主題”列表中的Deb
50、ug:R (寄存器)顯示或改變一個(gè)或多個(gè) CPU寄存器的內(nèi)容。r register- name參數(shù)無如果在沒有參數(shù)的情況下使用,則r命令顯示所有寄存器的內(nèi)容以及寄存器存儲區(qū)域中的標(biāo)志。register- name指定要顯示其內(nèi)容的寄存器名。有關(guān)顯示內(nèi)存部分內(nèi)容的信息,請單擊“相關(guān)主題”列表中的Debug D (轉(zhuǎn)儲)。有關(guān)反匯編字節(jié)的信息,請單擊“相關(guān)主題”列表中的Debug U (反匯編)。說明使用r命令如果指定了寄存器名稱,Windows 2000將顯示以十六進(jìn)制標(biāo)記表示的寄存器的16位值,并將冒號顯示為提示符。如果要更改包含在寄存器中的值,除非鍵入新值并按ENTER鍵;否則,請按ENTE
51、R鍵返回Debug提示符。有效寄存器名以下是 register-name的有效值: ax、bx、ex、dx、sp、bp、si、di、ds、es、ss、cs、ip、pc及f。ip和pe都引用指令指針。如果指定寄存器名稱,而不是從前面的列表中指定,Windows 2000將顯示以下消息:br error使用f字符而不是寄存器名如果鍵入f字符代替寄存器名,Debug將每個(gè)標(biāo)記的當(dāng)前設(shè)置顯示為兩字母代碼,然后顯 示Debug提示符。要更改標(biāo)志的設(shè)置,請從下表中鍵入適當(dāng)?shù)膬勺帜复a:標(biāo)志名設(shè)置清除溢出ovnv方向dn (減)up (增)中斷ei (啟用) di (禁用)正負(fù)ng (負(fù))pl (正)零zr
52、 nz輔助進(jìn)位acna奇偶校驗(yàn)pe (偶校驗(yàn))po (奇校驗(yàn))進(jìn)位cync可以按任何順序鍵入新的標(biāo)志值。不需要在這些值之間留出空格。要停止r命令,請按ENTER鍵。任何沒有指定新值的標(biāo)志保持不變。用r命令顯示的郵件如果為標(biāo)記指定了多個(gè)值,Debug將顯示以下消息:df error如果指定沒有在前面的表中列出的標(biāo)志代碼,Debug將顯示以下消息:bf error在這兩種情況下,Debug將忽略所有在無效項(xiàng)目之后指定的設(shè)置。Debug的默認(rèn)設(shè)置在啟動(dòng)Debug時(shí),會將段寄存器設(shè)置到空閑內(nèi)存的低端,指令指針設(shè)置為0100h,清除所有標(biāo)志,并且將其余寄存器設(shè)置為零,除了被設(shè)置為FFEEh的sp之外。D
53、ebug:R范例要查看所有寄存器的內(nèi)容、所有標(biāo)記的狀態(tài)和當(dāng)前位置的指令解碼表,請鍵入以下命令:r如果當(dāng)前位置是CS:11A,顯示外觀將類似于以下內(nèi)容:AX=OEOO BX=OOFF CX=0007 DX=01FF SP=039D BP=OOOO SI=005C DI=OOOODS=04BA ES=04BA SS=04BA CS=04BA IP=011A NV UP DI NG NZ AC PE NC04BA:011A CD21 INT 21要只查看標(biāo)志的狀態(tài),請鍵入以下命令:rfDebug按以下格式顯示信息:NV UP DI NG NZ AC PE NC - _現(xiàn)在,您可以按任意順序鍵入一個(gè)或
54、多個(gè)有效的標(biāo)志值,其中可以有或沒有空格,如下所示:nv up di ng nz ac pe nc - pleicyDebug結(jié)束r命令并顯示Debug提示符。要查看更改,請鍵入r或rf 命令。Debug將顯示以下內(nèi)容:NV UP EI PL NZ AC PE CY - _按ENTER返回到 Debug提示符。Debug:S (搜索)在某個(gè)地址范圍搜索一個(gè)或多個(gè)字節(jié)值的模式。s range list參數(shù)range指定要搜索范圍的開始和結(jié)束地址。有關(guān)ran ge參數(shù)有效值的信息,請單擊“相關(guān)主題”列表中的 Debug。list指定一個(gè)或多個(gè)字節(jié)值的模式,或要搜索的字符串。用空格或逗號分隔每個(gè)字節(jié)值
55、和下一個(gè)字節(jié)值。將字符串值包括在引號中。說明如果list參數(shù)包含多個(gè)字節(jié)值,Debug將只顯示出現(xiàn)字節(jié)值的第一個(gè)地址。如果list 只包含一個(gè)字節(jié)值,Debug將顯示指定范圍內(nèi)出現(xiàn)該值的所有地址。范例假定需要查找包含值 41并且范圍從CS:100到CS:110的所有地址。為此,請鍵入以下命 令:scs:100 110 41Debug按以下格式顯示結(jié)果:04BA:010404BA:010D以下命令在 CS:100到CS:1A0的范圍內(nèi)搜索字符串“ Ph”。scs:100 1a0 PhDebug:U (反匯編)反匯編字節(jié)并顯示相應(yīng)的原語句,其中包括地址和字節(jié)值。反匯編代碼看起來象已匯編文件 的列表
56、。u range參數(shù)無u命令分解20h字節(jié)(默認(rèn)值),從前面 u命令所顯如果在沒有參數(shù)的情況下使用,則 示地址后的第一個(gè)地址開始。rangeran ge 參數(shù)有效值的指定要反匯編代碼的起始地址和結(jié)束地址,或起始地址和長度。有關(guān)有關(guān)集成記憶碼的信息,請單擊相關(guān)主題”列表中的Debug A (匯編)。有關(guān)顯示內(nèi)存部分內(nèi)容的信息,請單擊相關(guān)主題”列表中的Debug D (轉(zhuǎn)儲)。范例要反匯編16 (10h) 字節(jié),從地址04BA:0100開始,請鍵入以下命令:uO4ba:1OOI1ODebug按以下格式顯示結(jié)果:04BA:0100 206472 AND SI+72,AH04BA:0103 69 DB
57、 6904BA:0104 7665 JBE 016B04BA:0106 207370 AND BP+DI+70,DH04BA:0109 65 DB 6504BA:010A 63 DB 6304BA:010B 69 DB 6904BA:010C 66 DB 6604BA:010D 69 DB 6904BA:010E 63 DB 6304BA:010F 61 DB 61如果只顯示從04BA:0100到04BA:0108特定地址的信息,請鍵入以下命令:u04ba:0100 0108Debug顯示以下內(nèi)容: 04BA:0100 206472 AND SI+72,AH04BA:0103 69 DB 69
58、04BA:0104 7665 JBE 016B04BA:0106 207370 AND BP+DI+70,DHDebug:W (寫入)將文件或特定分區(qū)寫入磁盤。要將在BX:CX寄存器中指定字節(jié)數(shù)的內(nèi)容寫入磁盤文件,請使用以下語法:w address要略過 Windows 2000文件系統(tǒng)并直接寫入特定的扇區(qū),請使用以下語法:w address drive start nu mber參數(shù)address指定要寫到磁盤文件的文件或部分文件的起始內(nèi)存地址。如果不指定address ,Debug程序?qū)腃S:100開始。關(guān)于address參數(shù)有效值的信息,請?jiān)谙嚓P(guān)主題”列表中單擊Debug。drive指
59、定包含目標(biāo)盤的驅(qū)動(dòng)器。該值是數(shù)值型:0 = A, 1 = B, 2 = C, 等等。start指定要寫入第一個(gè)扇區(qū)的十六進(jìn)制數(shù)。nu mber指定要寫入的扇區(qū)數(shù)。有關(guān)指定用于w命令的文件的信息,請單擊相關(guān)主題”列表中的Debug N (名稱)。有關(guān)將文件或文件扇區(qū)內(nèi)容加載到內(nèi)存中的信息,請單擊“相關(guān)主題”列表中的Debug L(加載)。說明必須在啟動(dòng)Debug時(shí)或者在最近的 Debug n (名稱)命令中指定磁盤文件的名字。這兩種方法都可以將地址 CS:5C處文件控制塊的文件名正確地編排格式。在使用不帶參數(shù)的 w命令之前重新設(shè)置 BX:CX如果使用了 Debug g (轉(zhuǎn)向)、t (跟蹤)、p
60、 (執(zhí)行)或r (寄存器)命令,必須在使用無 參數(shù)的w命令之前,將 BX:CX寄存器復(fù)位。將修改后的文件寫入磁盤如果修改文件但不更改文件名、長度或起始地址,Debug仍然可以正確地將文件寫入源磁盤位置。w命令的限制不能用該命令寫入.exe或.hex文件。警告因?yàn)槁赃^ Windows 2000文件句柄,所以寫入特定的分區(qū)非常危險(xiǎn)。如果鍵入錯(cuò)誤的值,則磁盤文件結(jié)構(gòu)很容易被損壞。范例假定要將起始地址為 CS:100的內(nèi)存內(nèi)容寫入到驅(qū)動(dòng)器B的磁盤中。需要將數(shù)據(jù)從磁盤的邏輯扇區(qū)號37h開始并持續(xù)2Bh個(gè)扇區(qū)。為此,鍵入以下命令:wcs:100 1 37 2b當(dāng)寫操作完成時(shí),Debug再次顯示Debug提
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年華師大新版七年級生物下冊月考試卷含答案
- 2025年湘教新版九年級歷史下冊階段測試試卷含答案
- 2025年浙教版必修1歷史下冊月考試卷
- 2025年人教A新版七年級科學(xué)下冊階段測試試卷含答案
- 2025年蘇教新版九年級歷史下冊月考試卷
- 2025年仁愛科普版選擇性必修1語文上冊階段測試試卷含答案
- 二零二五版木材加工廢棄物處理合同3篇
- 二零二五年度苗圃場租賃與環(huán)保技術(shù)應(yīng)用合同3篇
- 承包協(xié)議合同(2篇)
- 二零二五版農(nóng)業(yè)用地流轉(zhuǎn)合同范本(含政府補(bǔ)貼條款)3篇
- 【語文】第23課《“蛟龍”探?!氛n件 2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- 加強(qiáng)教師隊(duì)伍建設(shè)教師領(lǐng)域?qū)W習(xí)二十屆三中全會精神專題課
- 2024-2025學(xué)年人教版數(shù)學(xué)七年級上冊期末復(fù)習(xí)卷(含答案)
- 2024年決戰(zhàn)行測5000題言語理解與表達(dá)(培優(yōu)b卷)
- 四年級數(shù)學(xué)上冊人教版24秋《小學(xué)學(xué)霸單元期末標(biāo)準(zhǔn)卷》考前專項(xiàng)沖刺訓(xùn)練
- 2025年慢性阻塞性肺疾病全球創(chuàng)議GOLD指南修訂解讀課件
- (完整版)減數(shù)分裂課件
- 銀行辦公大樓物業(yè)服務(wù)投標(biāo)方案投標(biāo)文件(技術(shù)方案)
- 第01講 直線的方程(九大題型)(練習(xí))
- 微粒貸逾期還款協(xié)議書范本
- 人教版七年級上冊數(shù)學(xué)全冊課時(shí)練習(xí)帶答案
評論
0/150
提交評論