调试程序 DEBUG 第2章附录 调试程序 DEBUG介绍
调 试 程 序 D E B U G 封面 1
调试程序 DEBUG 调试程序 DEBUG的使用 DEBUG.EXE是D0S提供的用于调试可执行程 序的工具软件,是汇编语言程序设计中常用 的调试工具。在 DEBUG环境下,不但可以调试 经汇编、连接后生成的可执行程序,也可以 编写简单的程序
调 试 程 序 D E B U G 调试程序DEBUG的使用 2 调 试 程 序 D E B U G 的 使 用 DEBUG.EXE是DOS提供的用于调试可执行程 序的工具软件,是汇编语言程序设计中常用 的调试工具。在DEBUG环境下,不但可以调试 经汇编、连接后生成的可执行程序,也可以 编写简单的程序
调试程序 DEBUG §1.启动 DEBUG程序 ①在D0S提示符下键入: DEBUG(表示回车) Debug执行,屏幕显示提示符“一”,说明计算机 当前处于 DEBUG的管理之下,可接受、并执行 DEBUG1命令。 ②在D0S提示符下键入:DEBG[路径\]文件名∠ DEBUG执行,并将指定文件装入内存,供调试。 令如不指定被调试程序, DEBUG设置所有段寄存器的 值相同,并指向最低的、可用的段地址;SP指向本 段的尾部;IP指向本段的0100H单元;其它通用寄存 器和所有状态标志清0
调 试 程 序 D E B U G 启动DEBUG程序 3 §1.启动DEBUG程序 ①在DOS提示符下键入:DEBUG ↙(表示回车) Debug执行,屏幕显示提示符“-”,说明计算机 当前处于DEBUG的管理之下,可接受、并执行 DEBUG命令。 ②在DOS提示符下键入:DEBUG [路径\]文件名↙ DEBUG执行,并将指定文件装入内存,供调试。 ❖如不指定被调试程序,DEBUG设置所有段寄存器的 值相同,并指向最低的、可用的段地址;SP指向本 段的尾部;IP指向本段的0100H单元;其它通用寄存 器和所有状态标志清0
调试程序 DEBUG 如带入的被调试程序扩展名不是.EXE,则BX、CX 包含被调试文件长度(字节数,BX为高位),其他 同上。(带入.COM程序同此) ☆如带入的被调试程序扩展名是EXE,则需要重新 定位。DS=ES指向当前最低的、可用的段地址(PSP 的首字节);CS:IP和SS:SP根据被调试程序确定, 分别指向代码段和堆栈段;BCX为文件长度,其它 通用寄存器和状态标志清0。 演示: DEBUG的两种启动方法
调 试 程 序 D E B U G 启动DEBUG2 4 ❖ 如带入的被调试程序扩展名不是.EXE,则BX、CX 包含被调试文件长度(字节数,BX为高位),其他 同上。(带入.COM程序同此) ❖ 如带入的被调试程序扩展名是.EXE,则需要重新 定位。DS=ES指向当前最低的、可用的段地址(PSP 的首字节);CS:IP和SS:SP根据被调试程序确定, 分别指向代码段和堆栈段;BX.CX为文件长度,其它 通用寄存器和状态标志清0。 演示:DEBUG的两种启动方法
调试程序 DEBUG §2 DEBUG命令和参数的格式 1.命令格式[命令字母参数 令字母不分大小写; 只使用16进制数,不加H; ◆分割符只在两个数值之间是必须的,命令和 参数之间可有可无; 令键入回车键执行命令,Cr1+ Break或Ctr1+C 中止命令的执行; ☆如命令不符合 DEBUG的规则,则提示“ error” 并使用“^”指示错误位置
调 试 程 序 D E B U G 命令格式 5 §2 DEBUG命令和参数的格式 1.命令格式 命令字母[参数] ❖ 字母不分大小写; ❖只使用16进制数,不加H; ❖分割符只在两个数值之间是必须的,命令和 参数之间可有可无; ❖键入回车键执行命令,Ctrl+Break或Ctrl+C 中止命令的执行; ❖如命令不符合DEBUG的规则,则提示“error” 并使用“^”指示错误位置
调试程序 DEBUG 2.参数格式 ①表示地址(逻辑地址): >段地址:偏移地址D0400:2500D10ac:0 Dds: 04 Dcs: 100 偏移地址D2505D100; DEBUG认为输入的是偏 移地址,段地址采用默认的段寄存器,不同的命 令默认不同的段寄存器,例如汇编命令默认CS 显示数据命令默认DS。 既不送段地址,也不送偏移地址,段地址采用默 认的段寄存器,偏移地址采用当前值 只送段地址,省略偏移地址,非法。 如DDS:或D0400:
调 试 程 序 D E B U G 参数格式1 6 2.参数格式 ①表示地址(逻辑地址): ➢段地址:偏移地址 D0400:2500 D10ac:0 Dds:04 Dcs:100 ➢偏移地址 D2505 D100 ;DEBUG认为输入的是偏 移地址,段地址采用默认的段寄存器,不同的命 令默认不同的段寄存器,例如汇编命令默认CS, 显示数据命令默认DS。 ➢既不送段地址,也不送偏移地址,段地址采用默 认的段寄存器,偏移地址采用当前值。 ➢只送段地址,省略偏移地址,非法。 如DDS: 或 D0400:
调试程序 DEBUG ②表示范围 开始地址结束地址 如“DDS:050”,<D2AC0:100200”,“D100120” 注意:结束地址不能带段地址 开始地址L字节长度 如“DDS:0L10”,“D100L20
调 试 程 序 D E B U G 参数格式2 7 ②表示范围 ➢ 开始地址 结束地址 如“D DS:0 50” , “D2AC0:100 200” , “D100 120” 注意:结束地址不能带段地址 ➢ 开始地址 L 字节长度 如 “D DS:0 L 10” , “D100L20
调试程序 DEBUG 命令索引 D命令E命令F命令R命令A命令 U命令G命令T命令P命令Q命令 N命令L命令W命令C命令H命令 S命令1命令0命令M命令
调 试 程 序 D E B U G 命令索引 8 命 令 索 引 D命令 E命令 F命令 R命令 A命令 U命令 G命令 T命令 P命令 Q命令 N命令 L命令 W命令 C命令 H命令 S命令 I命令 O命令 M命令
调试程序 DEBUG §3.DEBG命令 1.显示命令D ①D[地址] ②D[范围] ;如不指定范围,一次显示8行×16个字节 D;默认段寄存器为DS,当前偏移地址 DDS:100/-DCS:200 D200:100 D200;200为偏移地址,默认段寄存器DS DDS:100110/-D100L10
调 试 程 序 D E B U G D命令 9 §3.DEBUG命令 1.显示命令D ① D [地址] ② D [范围] ;如不指定范围,一次显示8行×16个字节。 -D ;默认段寄存器为DS,当前偏移地址 -D DS:100 /-D CS:200 -D 200:100 -D 200;200为偏移地址,默认段寄存器DS -D DS:100 110/ -D 100 L 10
调试程序 DEBUG 2,修改命令E ①E地址;从指定地址开始,修改(或连续 修改)存储单元内容。 DEBUG首先显示指定单元内容, 如要修改,可输入新数据;空格键显示下一个单元 内容并可修改,减号键显示上一个单元内容并可修 改;如不修改,可直接按空格键或减号键;回车键 结束命令。 ②E地址数据表;从指定的地址开始用数据 表给定的数据修改存储单元。 EDS:100F3“AB’8D
调 试 程 序 D E B U G E命令 10 2.修改命令E ① E 地址 ;从指定地址开始,修改(或连续 修改)存储单元内容。DEBUG首先显示指定单元内容, 如要修改,可输入新数据;空格键显示下一个单元 内容并可修改,减号键显示上一个单元内容并可修 改;如不修改,可直接按空格键或减号键;回车键 结束命令。 ② E 地址 数据表;从指定的地址开始用数据 表给定的数据修改存储单元。 -E DS:100 F3 ‘AB’ 8D