1、,调试程序DEBUG 的使用,DEBUG.EXE是DOS提供的可用于调试可执行程序的一个工具软件,也是可用于汇编语言程序设计的一种调试工具。一、 DEBUG程序的调用在DOS的提示符下,可如下键入Debug启动调试程序:DEBUG 路径文件名 Debug后可以不带文件名,仅运行Debug程序,调试程序DEBUG 的使用,二、 DEBUG命令的格式Debug的命令都是一个字母,后跟一个或多个参数命令的使用中注意: 字母不分大小写。 只使用16进制数,没有后缀字母。 分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符。 每个命令只有按了回车键后才有效,可以用Ctrl+Break中
2、止命令的执行。 命令如果不符合Debug的规则,则将以“error”提示,并用“”指示错误位置。,调试程序DEBUG 的使用,1、显示命令DD命令显示主存单元的内容,它的格式如下:D地址 ;显示当前或指定开始地址的主存内容D范围 ;显示指定范围的主存内容例:-D100功能:显示当前数据段偏移地址从100H开始的数据例:-D100,120功能:显示当前数据段偏移地址从100H至120H的数据例:-D100L10功能:显示当前数据段偏移地址从100H开始的16个字节例:-D1000:2000功能:显示1000H段偏移地址从2000H开始的数据,调试程序DEBUG 的使用,2、E命令E命令用于修改主
3、存内容,它有两种格式:E地址 ;格式1,修改指定地址的内容E地址 数据表 ;格式2,用数据表的数据修改指定地址的内容。格式1是逐个单元相继修改的方法。例如,键人“e ds:100”,Debug显示原来内容,用户可以直接输入新数据,然后按空格键显示下一个单元的内容,或者按“一键显示上一个单元的内容;不需要修改可以直接按空格或“一”键;这样,用户可以不断修改相继单元的内容,直到用回车键结束该命令为止。,调试程序DEBUG 的使用,格式2可以一次修改多个单元。例:-e ds:100 F3XYZ8D 功能:用F3XyZ8D这5个数据替代DS:01000104的原来内容。,调试程序DEBUG 的使用,3
4、、寄存器命令R R命令用于显示和修改处理器的寄存器,它有三种格式。R ;格式1,显示所有寄存器内容和标志位状态R 寄存器名 ;格式2,显示和修改指定寄存器例:-R AXRF ;格式3,显示和修改标志位例:-RF,调试程序DEBUG 的使用,标志状态的表示符号 标志 置位符号 复位符号 溢出0F OV NV方向DF DN UP中断IF EI DI符号sF NG PL零位ZF ZR NZ辅助AF AC NA奇偶PF PE P0进位CF CY NC,调试程序DEBUG 的使用,4、汇编命令AA 地址 ;从指定地址开始汇编指令A命令中如果没有指定地址,则接着上一个A命令的最后一个单元开始;若还没有使用
5、过A命令,则从当前CS:IP开始。输入A命令后,就可以输入8086指令,Debug将它们汇编成机器代码,相继地存放在指定地址开始的存储区中,记住最后要输入一个回车结束A命令。,调试程序DEBUG 的使用,进行汇编的步骤如下:(1)输入汇编命令A地址,按回车。Debug提示地址,等待你输入新指令;(2)输入汇编指令,按回车;(3)如上继续输入汇编指令,直到输入所有指令;(4)不输入内容就按回车,结束汇编,返回Debug的提示符状态。例: -A 103 MOV AX,1234 MOV BX,5678 ,调试程序DEBUG 的使用,5、反汇编命令UU地址 ;从指定地址开始,反汇编32个字节(80列显
6、示模式)U范围 ;对指定范围的主存内容进行反汇编U命令中如果没有指定地址,则接着上一个U命令的最后一个单元开始;若还没有使用过u命令,则从当前CS:IP开始。例:-U 103 ,调试程序DEBUG 的使用,6、运行命令GG=地址断点地址1,断点地址2,断点地址10G命令等号后的地址指定程序段运行的起始地址,如不指定则从当前的CS:IP开始运行。断点地址如果只有偏移地址,则默认是代码段CS;断点可以没有,但最多只能有10个。G命令输入后,从指定地址处开始运行程序,直到遇到断点或者程序正常结束。例:-G 103 功能:从当前CS:IP执行到偏移地址为100H。,调试程序DEBUG 的使用,7、跟踪命令T单步命令。T命令逐条指令执行程序,遇到子程序(CALL)或中断调用(INT n)指令也不例外,也会进入到子程序或中断服务程序当中执行。 8、继续命令PP命令类似T命令,只是不会进入子程序或中断服务程序中。当不需要调试子程序或中断服务程序时,要应用P命令,而不是T命令。,调试程序DEBUG 的使用,9、退出命令Q命令使Debug程序退出,返回DOS。,