2024年6月8日发(作者:)
一 cmd对话框中Debug指令学习
一、DEBUG的主要指令:
点击开始-->点运行-->在运行对话框中输入cmd-->在输入debug
1、显示存储单元的指令D(DUMP)格式为:_D[address]或_D[range]
例如按指定范围显示存储单元内容的方法为:
-d100 120
18E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 G...
18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 ..;..h..M PQVW.7
18E4:0120 8B
其中0100至0120是DEBUG显示的单元内容,左边用十六进位表示每个位元群组,右边用
ASCII字元表示每个位元群组,.
表示不可显示的字元。这里没有指定段位址,D指令自动显示DS段的内容。如果只指定首
位址则显示从首位址开始的80个位元群组的内容。如果完全没有指定位址则显示上一个D
指令显示的最后一个单元后的内容。
2、修改存储单元内容的指令有两种。
☆输入指令E(ENTER)有两种格式如下:
第一种格式可以用给定的内容表来替代指定范围的存储单元内容。指令格式为:
-E address [list]
例如:-E DS:100 F3'XYZ'8D
其中F3,'X','Y','Z'和各占一个位元群组,该指令可以用这五个位元群组来替代存储单元DS:
0100到0104的原先的內容。
第二种格式则是采用逐个单元相继修改的方法。指令格式为:
-E address
例如:-E DS:100
则可能显示为:
18E4:0100 89.-
如果需要把该单元的内容修改为78,则使用者可以直接键入78,再按"空格"键可接著显示下
一個單元的內容,如下:
18E4:0100 89.78 1B.-
这样使用者可以不断修改相继单元的内容直到用ENTER键结束该指令为止。
☆填写指令F(FILL)其格式为:
-F range list
例如:-F 4BA:0100 5 F3'XYZ'8D
使04BA:0100~0104单元内含特殊的五个位元群组的内容。若果list中的位元群组数超过特
殊的范围,则忽略超过的项;若果list的位元群组数小於特殊的范围,则重复使用list填入,直
到填满特殊的所有单元為止。
3、检查和修改寄存器内容的指令R(register)它有三种格式如下:
☆显示CPU内所有寄存器内容和标志位状态其格式为:
-R
例如:-r
AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC
18E4:0100 C7 MOV WORD PTR [0204],0138 DS:0204=0000
☆显示和修改某个寄存器内容其格式为:
-R register name
例如:键入-R AX
系统将响应如下:
AX F1F4
:
即AX寄存器的目前内容为F1F4,如不修改则按ENTER键、否则可键入欲修改的内容,如:
-R bx
BX 0369
:059F
则把BX寄存器的内容修改为059F。
☆显示和修改标志位状态指令格式为:
-RF系统将响应,如:
OV DN EI NG ZR AC PE CY-
此时如不修改其内容可按ENTER键,否则可键入欲修改的内容如:
OV DN EI NG ZR AC PE CY-PONZDINV
即可,可见键入的顺序可以是任意的。
4、执行指令G其格式为:
-G[=address1][address2[address3…]]
其中位址1指定了执行的起始位址,如不指定则从目前的CS:IP开始执行。后面的位址均为
断点位址,当指令执行到断点时,就停止执行并显示目前所有寄存器及标志位的内容,和下一
笔将要执行的指令。
5、追踪指令T(Trace)有两种格式:


发布评论