语法格式:DEBUG [驱动器名:][路径][文件名]
如有文件名,则将指定的文件调入内存。
如命令中没有指定文件名,则DEBUG可以与正在内存中的内容打交道。DEBUG程序调入后,出现提示符“_”,说明现在系统在DEBUG程序的管理下,所有DEBUG命令只有在出现提示符后才有效。
2、DEBUG对寄存器和标志位的初始化
指令指针寄存器(IP)置为0100H。
AX、BX、CX、DX、BP、SI、DI置为0。若DEBUG调入时指定了文件名,则BX:CX中包含以字节表示的文件长度。
标志清零。
3、有关DEBUG命令的一些共同信息
所有命令都是一个字母,后面跟一个或多个参数,数据是十六进制数;
命令和参数大、小写等价;
命令和参数之间可以用定界符,两个相邻的十六进制数之间必须使用定界符;
按Ctrl+Break可以中止一个命令的执行;
DEBUG可以检查语法错误。
4、显示内存单元内容的命令
格式:D[地址] 或 D[范围]
功能:检查指定范围的存储单元的内容,分两种方式显示。
例:d 2000:0100 d d100 des:0 d1000:0100 02ff
5、修改存储单元内容的命令
用命令中给定的内容表去代替指定范围的内存单元的内容。
格式:E 地址 内容表
例:e ds:100 f3’abc’8d
e 100 30 31 32 33 34 35 36 37
d 100
逐个单元连续修改。
格式:E 地址
E2000:100
填写命令
格式:F 范围 内容表
范围:由起始地址和结束地址组成。
例:f ds:0 8 ‘abc’
检查和修改寄存器内容的命令
格式1:R
功能:显示所有寄存器的内容和全部标志位的状态。
格式2:R 寄存器名
功能:显示和修改一个指定寄存器的内容。
格式3:RF
功能:显示和修改所有标志位的状态。
6、汇编命令A
格式:A[地址]
功能:将用户输入的汇编语言的语句汇编成机器码,存放在指定地址开始的存储单元中。若没有指定地址,则接着上一个汇编命令的最后一个单元开始存放;若前面没有用过汇编命令,则从(CS):100H单元开始存放。
注:Debug不能确定某些操作数涉及到的是字单元还是字节单元,必须用前缀来说明数据类型。
7、跟踪命令T
格式:T[=地址][n]
功能:从指定地址开始(若没有指定地址则从现行的CS:IP处)执行n条指令后停下来,显示每条指令执行完后的所有寄存器和标志位的状态。
8.反汇编命令U
① U [地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:IP开始(通常是CS:100)。
② U 范围;对指定范围的单元进行反汇编。
-U
-U100
-U100L10
9.运行程序命令G
① G;从CS:IP指向的指令开始执行程序,直到程序结束或遇到INT 3。
② G=地址;从指定地址开始执行程序,直到程序结束或遇到INT 3。
③ G 断点;从CS:IP指向的指令开始执行程序,直到遇到断点。
④G=地址 断点
-G ;从CS:IP指向的指令开始执行程序。
-G=100 ;从指定地址开始执行程序。 -G=100 120