iret縮寫(xiě)是什么意思,iret的全稱(chēng)及含義,iret全稱(chēng)意思大全
iret縮寫(xiě)是什么意思
IRET英文含義
1、IRET的英文全稱(chēng):Instituto Regional de Estudios en Sustancias Tóxicas (Central American Institute for Studies on Toxic Substances) | 中文意思:───Instituto區域de Estudios en Sustancias Tóxicas(中美洲有毒物質(zhì)的研究研究所)
2、IRET的英文全稱(chēng):Institute for Rational-Emotive Therapy (now Albert Ellis Institute) | 中文意思:───理性情緒療法研究所(現艾里斯學(xué)院)
3、IRET的英文全稱(chēng):Institute for Research on the Economics of Taxation (Washington, DC) | 中文意思:───在稅收的經(jīng)濟學(xué)研究所(華盛頓特區)
4、IRET的英文全稱(chēng):Institutional Responses to Emergent Technologies | 中文意思:───機構應對應急技術(shù)
5、IRET的英文全稱(chēng):Institute for Research on the Economics of Taxation (Washington, DC) | 中文意思:───稅收經(jīng)濟學(xué)研究所(華盛頓特區)
6、IRET的英文全稱(chēng):Investors Real Estate Trust (est. 1970; North Dakota) | 中文意思:───投資者房地產(chǎn)信托(est。 1970;北達科他州)
7、IRET的英文全稱(chēng):Instituto Regional de Estudios en Sustancias TÓxicas (Central American Institute for Studies on Toxic Substances) | 中文意思:───Instituto Regional de Estudios en Sustancias TÓxicas (Central American Institute for Studies on Toxic Substances)
8、IRET的英文全稱(chēng):Interrupt Return | 中文意思:───斷續回波
9、IRET的英文全稱(chēng):Interrupt Return | 中文意思:───中斷返回;中斷反回;中斷返回指令
請問(wèn)這個(gè)Debug命令怎么使用
啟動(dòng) Debug,它是可用于測試和調試 MS-DOS 可執行文件的程序。
Debug [[drive:][path] filename [parameters]]
參數
[drive:][path] filename
指定要測試的可執行文件的位置和名稱(chēng)。
parameters
指定要測試的可執行文件所需要的任何命令行信息。
++
說(shuō)明
使用 Debug 命令但不指定要測試的文件
如果使用沒(méi)有位置和文件名的 Debug 命令,然后鍵入所有的 Debug 命令以響應 Debug 提示符,連字符 (-)。
Debug 命令
以下是 Debug 命令列表:
? 顯示 Debug 命令列表。
a 匯編 8086/8087/8088 記憶碼。
c 比較內存的兩個(gè)部分。
d 顯示部分內存的內容。
e 從指定地址開(kāi)始,將數據輸入到內存。
f 使用指定值填充一段內存。
g 運行在內存中的可執行文件。
h 執行十六進(jìn)制運算。
i 顯示來(lái)自特定端口的 1 字節值。
l 將文件或磁盤(pán)扇區內容加載到內存。
m 復制內存塊中的內容
/n 為 l 或 w 命令指定文件,或者指定正在測試的文件的參數。
o 向輸出端口發(fā)送 1 個(gè)字節的值。
p 執行循環(huán)、重復的字符串指令、軟件中斷或子例程。
q 停止 Debug 會(huì )話(huà)。
r 顯示或改變一個(gè)或多個(gè)寄存器。
s 在部分內存中搜索一個(gè)或多個(gè)字節值的模式。
t 執行一條指令,然后顯示所有寄存器的內容、所有標志的狀態(tài)和 Debug 下一步要執行的指令的**形式。
u 反匯編字節并顯示相應的原語(yǔ)句。
w 將被測試文件寫(xiě)入磁盤(pán)。
xa 分配擴展內存。
xd 釋放擴展內存。
xm 映射擴展內存頁(yè)。
xs 顯示擴展內存的狀態(tài)。
分隔命令參數
所有 Debug 命令都接受參數,除了 q 命令之外??梢杂枚禾柣蚩崭穹指魠?,但是只有在兩個(gè)十六進(jìn)制值之間才需要這些分隔符。因此,以下命令等價(jià):
dcs:100 110
d cs:100 110
d,cs:100,110
指定有效地址項
Debug 命令中的 address 參數指定內存位置。Address 是一個(gè)包含字母段記錄的二位名稱(chēng)或一個(gè)四位字段地址加上一個(gè)偏移量??梢院雎远渭拇嫫骰蚨蔚刂?。a,g,l,t,u 和 w 命令的默認段是 CS。所有其他命令的默認段是 DS。所有數值均為十六進(jìn)制格式。
有效地址如下:
CS:0100
04BA:0100
在段名和偏移量之間要有冒號。
指定有效范圍項
Debug 命令中的 range 參數指定了內存的范圍??梢詾?range 選擇兩種格式:起始地址和結束地址,或者起始地址和長(cháng)度范圍(由 l 表示)。
例如,下面的兩個(gè)語(yǔ)法都可以指定從 CS:100 開(kāi)始的 16 字節范圍:
cs:100 10f
cs:100 l 10
++
Debug 子命令
選擇 Debug 命令以獲得詳細信息。
Debug:A(匯編)
Debug:C(比較)
Debug(轉儲)
Debug:E(鍵入)
Debug:F(填充)
Debug:G(轉向)
Debug:H(十六進(jìn)制)
Debug:I(輸入)
Debug:L(加載)
Debug:M(移動(dòng))
Debug:N(名稱(chēng))
Debug:O(輸出)
Debug:P(執行)
Debug:Q(退出)
Debug:r(寄存器)
Debug:s(搜索)
Debug:T(跟蹤)
Debug:U(反匯編)
Debug:W(寫(xiě)入)
Debug:XA(分配擴展內存)
Debug:XD(取消分配擴展內存)
Debug:XM(映射擴展內存頁(yè))
Debug:XS(顯示擴展內存狀態(tài))
***********************Debug子命令******************************
Debug:A(匯編)
直接將 8086/8087/8088 記憶碼合并到內存。
該命令從匯編語(yǔ)言語(yǔ)句創(chuàng )建可執行的機器碼。所有數值都是十六進(jìn)制格式,必須按一到四個(gè)字符輸入這些數值。在引用的操作代碼(操作碼)前指定前綴記憶碼。
a [address]
參數
address
指定鍵入匯編語(yǔ)言指令的位置。對 address 使用十六進(jìn)制值,并鍵入不以“h”字符結尾的每個(gè)值。如果不指定地址,a 將在它上次停止處開(kāi)始匯編。
有關(guān)將數據輸入到指定字節中的信息,請單擊“相關(guān)主題”列表中的 Debug E(鍵入)。
有關(guān)反匯編字節的信息,請單擊“相關(guān)主題”列表中的 Debug U(反匯編)。
范例
a 命令支持所有形式的間接注冊命令,如下例所示:
add bx,34[bp+2].[si-1]
pop [bp+di]
push [si] )
還支持所有操作碼同義詞,如下例所示:
loopz 100
loope 100
ja 200
jnbe 200
對于 8087 操作碼,必須指定 wait 或 fwait 前綴,如下例所示:
fwait fadd st,st(3) ; this line assembles
; an fwait prefix
說(shuō)明
使用記憶碼
段的替代記憶碼為 cs:、ds:、es: 和 ss:。遠程返回的記憶碼是 retf。字符串處理的記憶碼必須明確聲明字符串大小。例如,使用 movsw 可以移動(dòng) 16 位的字串,使用 mov***(文字因故被系統屏蔽)***(文字因故被系統屏蔽) 可以移動(dòng) 8 位字節串。
匯編跳轉和調用
匯編程序根據字節替換自動(dòng)將短、近和遠的跳轉及調用匯編到目標地址。通過(guò)使用 near 或 far 前綴可以替代這樣的跳轉或調用,如下例所示:
-a0100:0500
0100:0500 jmp 502 ; a 2-byte short jump
0100:0502 jmp near 505 ; a 3-byte near jump
0100:0505 jmp far 50a ; a 5-byte far jump
可以將 near 前綴縮寫(xiě)為 ne。
區分字和字節內存位置
當某個(gè)操作數可以引用某個(gè)字內存位置或者字節內存位置時(shí),必須用前綴 word ptr 或者前綴 byte ptr 指定數據類(lèi)型??山邮艿目s寫(xiě)分別是 wo 和 by。以下范例顯示兩種格式:
dec wo [si]
neg byte ptr [128]
指定操作數
Debug 使用包括在中括號 ([ ]) 的操作數引用內存地址的習慣用法。這是因為另一方面 Debug 不能區分立即操作數和內存地址的操作數。以下范例顯示兩種格式:
mov ax,21 ; load AX with 21h
mov ax,[21] ; load AX with the
; contents of
; memory location 21h
使用偽指令
使用 a 命令提供兩個(gè)常用的偽指令:db 操作碼,將字節值直接匯編到內存,dw 操作碼,將字值直接匯編到內存。以下是兩個(gè)偽指令的范例:
db 1,2,3,4,"THIS IS AN EXAMPLE"
db THIS IS A QUOTATION MARK:"
db "THIS IS A QUOTATION MARK:"
dw 1000,2000,3000,"BACH"
++
Debug:C(比較)
比較內存的兩個(gè)部分。
c range address
參數
range
指定要比較的內存第一個(gè)區域的起始和結束地址,或起始地址和長(cháng)度。有關(guān)有效的 range 值的信息,請單擊“相關(guān)主題”列表中的“Debug 說(shuō)明”。
address
指定要比較的第二個(gè)內存區域的起始地址。有關(guān)有效 address 值的信息,請單擊“相關(guān)主題”列表中的“Debug 說(shuō)明”。
++
范例
以下命令具有相同效果:
c100,10f 300
c100l10 300
每個(gè)命令都對 100h 到 10Fh 的內存數據塊與 300h 到 30Fh 的內存數據塊進(jìn)行比較。
Debug 響應前面的命令并顯示如下信息(假定 DS = 197F):
197F:0100 4D E4 197F:0300
197F:0101 67 99 197F:0301
197F:0102 A3 27 197F:0302
197F:0103 35 F3 197F:0303
197F:0104 97 BD 197F:0304
197F:0105 04 35 197F:0305
197F:0107 76 71 197F:0307
197F:0108 E6 11 197F:0308
197F:0109 19 2C 197F:0309
197F:010A 80 0A 197F:030A
197F:010B 36 7F 197F:030B
197F:010C BE 22 197F:030C
197F:010D 83 93 197F:030D
197F:010E 49 77 197F:030E
197F:010F 4F 8A 197F:030F
注意列表中缺少地址 197F:0106 和 197F:0306。這表明那些地址中的值是相同的。
++
說(shuō)明
如果 range 和 address 內存區域相同,Debug 將不顯示任何內容而直接返回到 Debug 提示符。如果有差異,Debug 將按如下格式顯示:
address1 byte1 byte2 addess2
++++
Debug(轉儲)
顯示一定范圍內存地址的內容。
d [range]
參數
range
指定要顯示其內容的內存區域的起始和結束地址,或起始地址和長(cháng)度。有關(guān)有效的 range 值的信息,請單擊“相關(guān)主題”列表中的“Debug 說(shuō)明”。如果不指定 range,Debug 程序將從以前 d 命令中所指定的地址范圍的末尾開(kāi)始顯示 128 個(gè)字節的內容。
有關(guān)顯示寄存器內容的信息,請單擊“相關(guān)主題”列表中的 Debug R(寄存器)。
++
范例
假定鍵入以下命令:
dcs:100 10f
Debug 按以下格式顯示范圍中的內容:
04BA:0100 54 4F 4D 00 53 41 57 59-45 52 00 00 00 00 00 00 TOM.SAWYER......
如果在沒(méi)有參數的情況下鍵入 d 命令,Debug 按以前范例中所描述的內容來(lái)編排顯示格式。顯示的每行以比前一行的地址大 16 個(gè)字節(如果是顯示 40 列的屏幕,則為 8 個(gè)字節)的地址開(kāi)頭。
對于后面鍵入的每個(gè)不帶參數的 d 命令,Debug 將緊接在最后顯示的命令后立即顯示字節內容。
如果鍵入以下命令,Debug 將從 CS:100 開(kāi)始顯示 20h 個(gè)字節的內容:
dcs:100 l 20
如果鍵入以下命令,Debug 將顯示范圍從 CS 段的 100h 到 115h 中所有字節的內容:
dcs:100 115
++
說(shuō)明
當使用 d 命令時(shí),Debug 以?xún)蓚€(gè)部分顯示內存內容:十六進(jìn)制部分(每個(gè)字節的值都用十六進(jìn)制格式表示)和 ASCII 碼部分(每個(gè)字節的值都用 ASCII 碼字符表示)。每個(gè)非打印字符在顯示的 ASCII 部分由句號 (.) 表示。每個(gè)顯示行顯示 16 字節的內容,第 8 字節和第 9 字節之間有一個(gè)連字符。每個(gè)顯示行從 16 字節的邊界上開(kāi)始。
++
Debug:E(鍵入)
將數據輸入到內存中指定的地址。
可以按十六進(jìn)制或 ASCII 格式鍵入數據。以前存儲在指**置的任何數據全部丟失。
e address
參數
address
指定輸入數據的第一個(gè)內存位置。
list
指定要輸入到內存的連續字節中的數據。
有關(guān)集成記憶碼的信息,請單擊“相關(guān)主題”列表中的 Debug A(匯編)。
有關(guān)顯示內存部分內容的信息,請單擊“相關(guān)主題”列表中的 Debug D (轉儲)。
++
范例
假定鍵入以下命令:
ecs:100
Debug 按下面的格式顯示第一個(gè)字節的內容:
04BA:0100 EB.
要將該值更改為 41,請在**入點(diǎn)鍵入 41,如下所示:
04BA:0100 EB.41_
可以用一個(gè) e 命令鍵入連續的字節值。在鍵入新值后按 SPACEBAR(空格鍵),而不是按 ENTER 鍵。Debug 顯示下一個(gè)值。在此范例中,如果按三次 SPACEBAR(空格鍵),Debug 將顯示下面的值:
04BA:0100 EB.41 10. 00. BC._
要將十六進(jìn)制值 BC 更改為 42,請在**入點(diǎn)鍵入 42,如下所示:
04BA:0100 EB.41 10. 00. BC.42_
假定決定值 10 應該是 6F。要糾正該值,請按 HYPHEN 鍵兩次以返回到地址 0101(值 10)。Debug 顯示以下內容:
04BA:0100 EB.41 10. 00. BC.42-
04BA:0102 00.-
04BA:0101 10._
在**入點(diǎn)鍵入 6f 更改值,如下所示:
04BA:0101 10.6f_
按 ENTER 停止 e 命令并返回到 Debug 提示符下。
以下是字符串項的范例:
eds:100 "This is the text example"
該字符串將從 DS:100 開(kāi)始填充 24 個(gè)字節。
++
說(shuō)明
使用 address 參數
如果在沒(méi)有指定可選的 list 參數的值情況下指定 address 的值,Debug 將顯示地址和內容,在下一行重復地址,并等待您的輸入。此時(shí),您可以執行下列操作之一:
· 替換字節值。為此,請在當前值后鍵入新值。如果您鍵入的值不是有效的十六進(jìn)制值,或該值包含兩個(gè)以上的數字,則 Debug 不會(huì )回顯無(wú)效或額外的字符。
· 進(jìn)入下一個(gè)字節。為此,請按 SPACEBAR(空格鍵)。要更改該字節中的值,請在當前值后鍵入新值。如果按 SPACEBAR(空格鍵)時(shí),移動(dòng)超過(guò)了 8 位界限,Debug 程序將顯示新的一行并在行首顯示新地址。
· 返回到前一個(gè)字節。為此,請按 HYPHEN 鍵 (-)??梢苑磸桶?HYPHEN 鍵 (-) 向后移動(dòng)超過(guò)多個(gè)字節。在按 HYPHEN 時(shí),Debug 開(kāi)始新行并顯示當前地址和字節值。
· 停止執行 e 命令。為此,請按 ENTER 鍵。在任何字節位置都可以按 ENTER。
使用 list 參數
如果指定 list 參數的值,隨后的 e 命令將使用列表中的值替換現有的字節值。如果發(fā)生錯誤,將不更改任何字節值。
List 值可以是十六進(jìn)制字節或字符串。使用空格、逗號或制表符來(lái)分隔值。必須將字符串包括在單或雙引號中。
++++
Debug:F(填充)
使用指定的值填充指定內存區域中的地址。
可以指定十六進(jìn)制或 ASCII 格式表示的數據。任何以前存儲在指**置的數據將會(huì )丟失。
f range list
參數
range
指定要填充內存區域的起始和結束地址,或起始地址和長(cháng)度。關(guān)于有效的 range 值的信息,請單擊“相關(guān)主題”列表中的“Debug 說(shuō)明”。
list
指定要輸入的數據。List 可以由十六進(jìn)制數或引號包括起來(lái)的字符串組成。
++
范例
假定鍵入以下命令:
f04ba:100l100 42 45 52 54 41
作為響應,Debug 使用指定的值填充從 04BA:100 到 04BA:1FF 的內存位置。Debug 重復這五個(gè)值直到 100h 個(gè)字節全部填滿(mǎn)為止。
++
說(shuō)明
使用 range 參數
如果 range 包含的字節數比 list 中的數值大,Debug 將在 list 中反復指派值,直到 range 中的所有字節全部填充。
如果在 range 中的任何內存損壞或不存在,Debug 將顯示錯誤消息并停止 f 命令。
使用 list 參數
如果 list 包含的數值多于 range 中的字節數,Debug 將忽略 list 中額外的值。
++
Debug:G(轉向)
運行當前在內存中的程序。
g [=address] [breakpoints]
參數
=address
指定當前在內存中要開(kāi)始執行的程序地址。如果不指定 address,Windows 2000 將從 CS:IP 寄存器中的當前地址開(kāi)始執行程序。
breakpoints
指定可以設置為 g 命令的部分的 1 到 10 個(gè)臨時(shí)斷點(diǎn)。
有關(guān)執行循環(huán)、重復的字符串指令、軟件中斷或子程序的信息,請單擊“相關(guān)主題”列表中的 Debug P(執行)。
有關(guān)執行指令的信息,請單擊“相關(guān)主題”列表中的 Debug T(跟蹤)。
范例
假定鍵入以下命令:
gcs:7550
Windows 2000 運行當前內存中的程序,直到執行到 CS 段中的斷點(diǎn)地址 7550 為止。Debug 將顯示寄存器的內容和標志的狀態(tài)并結束 g 命令。
以下命令設置兩個(gè)斷點(diǎn):
gcs:7550, cs:8000
如果在 Debug 遇到斷點(diǎn)之后再次鍵入 g 命令,將從在斷點(diǎn)之后的指令開(kāi)始執行,而不是在通常的開(kāi)始地址執行。
++
說(shuō)明
使用 address 參數
必須在 address 參數之前使用等號 (=) 以區分開(kāi)始地址 (address) 和斷點(diǎn)地址 (breakpoints)。
指定斷點(diǎn)
程序在它遇到的第一個(gè)斷點(diǎn)處停止,而不論您在 breakpoint 列表的什么位置鍵入斷點(diǎn)。Debug 在每個(gè)斷點(diǎn)處用中斷代碼代替原始指令。
當程序到達斷點(diǎn)時(shí),Debug 將所有斷點(diǎn)地址恢復到它們的最初指令并顯示所有寄存器的內容、所有標記的狀態(tài)以及最后執行指令的**形式。Debug 顯示的信息與使用 Debug r(寄存器)命令并指定斷點(diǎn)時(shí)所顯示的信息相同。
如果不在斷點(diǎn)處停止程序,Debug 程序將不使用原始指令替換中斷代碼。
設置斷點(diǎn)的限制
可以只在包含 8086 操作代碼(操作碼)的第一個(gè)字節的地址上設置斷點(diǎn)。如果設置了 10 個(gè)以上的斷點(diǎn),Debug 將顯示以下信息:
bp error
對用戶(hù)堆棧指針的要求
用戶(hù)堆棧指針必須有效且必須有 6 個(gè)字節可用于 g 命令。該命令使用 iret 指令跳轉到正在被測試的程序。Debug 設置用戶(hù)堆棧指針并將用戶(hù)標志、代碼段寄存器和指令指針壓入用戶(hù)堆棧。(如果用戶(hù)堆棧無(wú)效或太小,操作系統可能會(huì )失敗。)Debug 在指定的斷點(diǎn)處設置中斷代碼 (0CCh)。
重新啟動(dòng)程序
不要在 Windows 2000 顯示以下消息后嘗試重新啟動(dòng)程序;
Program terminated normally
要正確地運行程序,必須通過(guò)使用 Debug n(名稱(chēng))和 l(加載)命令重新加載該程序。
++++
Debug:H(十六進(jìn)制)
對指定的兩個(gè)參數執行十六進(jìn)制運算。
h value1 value2
參數
value1
代表從 0 到 FFFFh 范圍內的任何十六進(jìn)制數字。
value2
代表從 0 到 FFFFh 范圍內第二個(gè)十六進(jìn)制數字。
++
范例
假定鍵入以下命令:
h19f 10a
Debug 執行運算并顯示以下結果。
02A9 0095
++
說(shuō)明
Debug 首先將指定的兩個(gè)參數相加,然后從第一個(gè)參數中減去第二個(gè)參數。這些計算的結果顯示在一行中:先計算和,然后計算差。
++++
Debug:I(輸入)
從指定的端口讀取并顯示一個(gè)字節值。
i port
參數
port
按地址指定輸入端口。地址可以是 16 位的值。
有關(guān)將字節值發(fā)送到輸出端口的信息,請單擊“相關(guān)主題”列表中的 Debug O(輸出)。
++
范例
假定鍵入以下命令:
i2f8
同時(shí)假定端口的字節值是 42h。Debug 讀取該字節,并將其值顯示如下:
42
++
Debug:L(加載)
將某個(gè)文件或特定磁盤(pán)扇區的內容加載到內存。
要從磁盤(pán)文件加載 BX:CX 寄存器中指定的字節數內容,請使用以下語(yǔ)法:
l [address]
要略過(guò) Windows 2000 文件系統并直接加載特定的扇區,請使用以下語(yǔ)法:
l address drive start number
參數
address
指定要在其中加載文件或扇區內容的內存位置。如果不指定 address,Debug 將使用 CS 寄存器中的當前地址。
drive
指定包含讀取指定扇區的磁盤(pán)的驅動(dòng)器。該值是數值型:0 = A, 1 = B, 2 = C 等。
start
指定要加載其內容的第一個(gè)扇區的十六進(jìn)制數。
number
指定要加載其內容的連續扇區的十六進(jìn)制數。只有要加載特定扇區的內容而不是加載 debug 命令行或最近的 Debug n(名稱(chēng))命令中指定的文件時(shí),才能使用 drive、start 和 number 參數。
有關(guān)指定用于 l 命令的文件的信息,請單擊“相關(guān)主題”列表中的 Debug n(名稱(chēng))。
有關(guān)寫(xiě)入調試到磁盤(pán)的文件的信息,請單擊“相關(guān)主題”列表中的 Debug w(寫(xiě)入)。
++
范例
假定啟動(dòng) Debug 并鍵入以下命令:
nfile.com
現在可以鍵入 l 命令以加載 File.com。Debug 將加載文件并顯示 Debug 提示符。
假定需要從驅動(dòng)器 C 將起始邏輯扇區為 15 (0Fh) 的 109 (6Dh) 個(gè)扇區的內容加載到起始地址為 04BA:0100 的內存中。為此,請鍵入以下命令:
l04ba:100 2 0f 6d
++
注意
使用不帶參數的 l 命令
當使用不帶參數的 l 命令時(shí),在 debug 命令行上指定的文件將加載到內存中,從地址 CS:100 開(kāi)始。Debug 同時(shí)將 BX 和 CX 寄存器設置為加載的字節數。如果不在 debug 命令行指定文件,所裝入的文件將是最近使用 n 命令經(jīng)常指定的文件。
使用具有 address 參數的 1 命令
如果使用帶 address 參數的 l 命令,Debug 將從內存位置 address 開(kāi)始加載文件或指定扇區的內容。
使用帶全部參數的 l 命令
如果使用帶所有參數的 l 命令,Debug 將加載指定磁盤(pán)扇區的內容而不是加載文件。
加載特定扇區的內容
指定范圍內的每個(gè)扇區均從 drive 讀取。Debug 從 start 開(kāi)始加載,直到在 number 中指定的扇區數中的內容全部被加載。
加載 .exe 文件
Debug 忽略 .exe 文件的地址 address 參數。如果指定 .exe 文件,Debug 將文件重新**到 .exe 文件的標題中指定的加載地址。在 .exe 文件被加載到內存前,標題自身從 .exe 文件脫離,因此磁盤(pán)上的 .exe 文件大小與內存中的不同。如果要檢查整個(gè) .exe 文件,請使用不同的擴展名重命名文件。
打開(kāi)十六進(jìn)制文件
Debug 將具有 .hex 擴展名的文件認為十六進(jìn)制格式文件。鍵入不帶參數的 l 命令,可以加載從十六進(jìn)制文件中指定的地址處開(kāi)始的十六進(jìn)制文件。如果鍵入的 l 命令包含 address 參數,Debug 將把指定的地址加到在十六進(jìn)制文件中找到的地址上,以確定起始地址。
++++
Debug:M(移動(dòng))
將一個(gè)內存塊中的內容復制到另一個(gè)內存塊中。
m range address
參數
range
指定要復制內容的內存區域的起始和結束地址,或起始地址和長(cháng)度。
address
指定要將 range 內容復制到該位置的起始地址。
++
范例
假定鍵入以下命令:
mcs:100 110 cs:500
Debug 首先將 CS:110 地址中的內容復制到地址 CS:510 中,然后將 CS:10F 地址中的內容復制到 CS:50F 中,如此操作直至將 CS:100 地址中的內容復制到地址 CS:500 中。要查看結果,請使用 Debug d(轉儲)命令,并使用 m 命令指定目標地址。
++
說(shuō)明
復制操作對現有數據的影響
如果新數據沒(méi)有寫(xiě)入正在被復制的數據塊中的地址,則源數據將保持不變。但是,如果目標塊已經(jīng)包含數據(就象它在覆蓋副本操作中一樣),則將改寫(xiě)該數據。(覆蓋復制操作是指那些目標數據塊部分內容覆蓋原數據塊部分內容的操作。)
執行覆蓋復制操作
m 命令執行目標地址的覆蓋復制操作,而不丟失數據。將改寫(xiě)的地址內容首先復制。因此,如果將較高位地址的數據復制到較低位地址,則復制操作從原塊的最低位地址開(kāi)始并向最高位地址進(jìn)行。反之,如果要將數據從低地址復制到高地址,復制操作從原塊的最高地址開(kāi)始,向最低地址進(jìn)行。
++++
Debug:N(名稱(chēng))
指定 Debug l(加載)或 w(寫(xiě)入)命令的可執行文件的名稱(chēng),或者指定正在調試的可執行文件的參數。
n [drive:][path] filename
要指定測試的可執行文件的參數,請使用以下語(yǔ)法:
n file-parameters
參數
如果在沒(méi)有參數的情況下使用,則 n 命令清除當前規范。
[drive:][path] filename
指定要測試的可執行文件的位置和名稱(chēng)。
file-parameters
為正在測試的可執行文件指定參數和開(kāi)關(guān)。
有關(guān)將文件或指定磁盤(pán)扇區的內容加載到內存中的信息,請單擊“相關(guān)主題”列表中的 Debug L(加載)。
有關(guān)寫(xiě)入調試到磁盤(pán)的文件的信息,請單擊“相關(guān)主題”列表中的 Debug W(寫(xiě)入)。
++
范例
假定已經(jīng)啟動(dòng) Debug,并加載了正在調試的程序 Prog.com。接著(zhù)您決定為 Prog.com 指定兩個(gè)參數并運行此程序。以下是此范例的命令序列:
debug prog.com
nparam1 param2
g
在這種情況下,Debug g(轉向)命令會(huì )運行該程序,就好像您已在 Windows 2000 命令提示符后鍵入了如下命令:
prog param1 param2
所以,測試和調試反映 Prog.com 通常的運行時(shí)間環(huán)境。
在下面的命令序列中,第一個(gè) n 命令將 File1.exe 指定為后接的 l(加載)命令的文件,該命令將 File1.exe 加載到內存。第二個(gè) n 命令指定 File1.exe 將使用的參數。最后,g 命令將運行 File1.exe 文件,就好像您在 Windows 2000 命令行中鍵入了 File1 File2.dat File2.dat 一樣。
nfile1.exe
l
nfile2.dat file3.dat
g
注意
· 不要在 n 命令的第二種形式后使用 l 命令。還要注意,如果現在使用 w(寫(xiě)入)命令,Windows 2000 將使用名稱(chēng) File2.dat 保存正在調試的文件 File1.exe。為避免出現此結果,應該總是在 l 或 w 命令之前立即使用 n 命令的第一種形式。
++
說(shuō)明
n 命令的兩個(gè)用途
可以按兩種方式使用 n 命令。首先,您可以使用它以指定后面的 l(加載)或 w(寫(xiě)入)命令所使用的文件。如果在沒(méi)有命名所調試文件的情況下啟動(dòng) Debug,必須在使用 l 命令加載文件之前使用命令 nfilename。在 CS:5C 為文件控制塊 (FCB) 正確編排文件名的格式。其次,可以使用 n 命令指定被調試文件的命令行參數和開(kāi)關(guān)。
內存區域
以下四個(gè)內存區域都會(huì )受到 n 命令的影響:
內存位置 內容
CS:5C 文件 1 的文件控制數據塊 (FCB)
CS:6C 文件 2 的文件控制數據塊 (FCB)
CS:80 n 命令行的長(cháng)度(以字符表示)
CS:81 n 命令行字符的開(kāi)頭
為 n 命令指定的第一個(gè)文件名被放在 CS:5C 的 FCB 中。如果指定第二個(gè)文件名,此名稱(chēng)將放置到 CS:6C 的 FCB 中。n 命令行上鍵入的字符數(除第一個(gè)字符之外,n)存儲在位置 CS:80。n 命令行上的實(shí)際字符(再次,除了字母 n 之外)存儲在以 CS:81 開(kāi)頭的位置。注意這些字符可以是在 Windows 2000 命令提示符下鍵入的命令中有效的任何開(kāi)關(guān)和分隔符。
++++
Debug:O(輸出)
將字節值發(fā)送到輸出端口。
o port byte-value
參數
port
通過(guò)地址指定輸出端口。端口地址可以是 16 位值。
byte-value
指定要指向 port 的字節值。
有關(guān)從輸入端口讀取字節值的信息,請單擊“相關(guān)主題”列表中的 Debug I(輸入)。
++
范例
要將
單片機查表指令movc什么意思
movc是訪(fǎng)問(wèn)單片機程序存儲器的意思。(程序存儲器是固化的數據,在單片機運行時(shí)只能讀,不能寫(xiě))
movx是讀寫(xiě)單片機外部數據存儲器的意思。
0到9的平方值依次為:0, 1, 4, 9, 16, 25, 36,49,64,81
表頭地址就是第一個(gè)數的存放地址。是將上列數據放入1000h開(kāi)始的程序存儲器里。
地址: 1000 1001 1002 1003依次類(lèi)推直到1009
平方數: 0 1 4 9,。。。。。。。
看到了吧,程序第一行是將1000h的立即數放入數據指針,用它作為基地址,程序第二行是將A中的數加上DPTR的內容以這個(gè)數為地址去查表并將結果放入A中,如果A=3,那么3+1000就是1003(地址),查1003地址單元的內容就是9,就實(shí)現了查表。
查表用的很多,可以節約單片機的運算時(shí)間,如果讓單片機去算這些平方很費時(shí),在人為可以預料到的有規律的運算可以先把結果計算出來(lái),存入程序存儲器,然后讓單片機在運行時(shí)根據規律去查表取出這些結果。
版權聲明: 本站僅提供信息存儲空間服務(wù),旨在傳遞更多信息,不擁有所有權,不承擔相關(guān)法律責任,不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責。如因作品內容、版權和其它問(wèn)題需要同本網(wǎng)聯(lián)系的,請發(fā)送郵件至 舉報,一經(jīng)查實(shí),本站將立刻刪除。