1 / 23

调试程序

封面. 调试程序. 介绍. DEBUG. 调 试 程 序 D E B U G 的 使 用 DEBUG.EXE 是 DOS 提供的用于调试可执行程序的工具软件,是汇编语言程序设计中常用的调试工具。在 DEBUG 环境下,不但可以调试经汇编、连接后生成的可执行程序,也可以编写简单的程序。. 调试程序 DEBUG 的使用. §1. 启动 DEBUG 程序 ①在 DOS 提示符下键入: DEBUG ↙( 表示回车 ) Debug 执行,屏幕显示提示符 “ - ” ,说明计算机 当前处于 DEBUG 的管理之下,可接受、并执行 DEBUG 命令。

emi-mann
Download Presentation

调试程序

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 封面 调试程序 介绍 DEBUG

  2. 调 试 程 序 D E B U G的 使 用 • DEBUG.EXE是DOS提供的用于调试可执行程序的工具软件,是汇编语言程序设计中常用的调试工具。在DEBUG环境下,不但可以调试经汇编、连接后生成的可执行程序,也可以编写简单的程序。 调试程序DEBUG的使用

  3. §1.启动DEBUG程序 • ①在DOS提示符下键入:DEBUG ↙(表示回车) • Debug执行,屏幕显示提示符“-”,说明计算机 • 当前处于DEBUG的管理之下,可接受、并执行 • DEBUG命令。 • ②在DOS提示符下键入:DEBUG [路径\]文件名↙ • DEBUG执行,并将指定文件装入内存,供调试。 • 如不指定被调试程序,DEBUG设置所有段寄存器的 • 值相同,并指向最低的、可用的段地址;SP指向本 • 段的尾部;IP指向本段的0100H单元;其它通用寄存 • 器和所有状态标志清0。 启动DEBUG程序

  4. 如带入的被调试程序扩展名不是.EXE,则BX、CX包含被调试文件长度(字节数,BX为高位),其他同上。(带入.COM程序同此)如带入的被调试程序扩展名不是.EXE,则BX、CX包含被调试文件长度(字节数,BX为高位),其他同上。(带入.COM程序同此) • 如带入的被调试程序扩展名是.EXE,则需要重新定位。DS=ES指向当前最低的、可用的段地址(PSP的首字节);CS:IP和SS:SP根据被调试程序确定,分别指向代码段和堆栈段;BX.CX为文件长度,其它通用寄存器和状态标志清0。 演示:DEBUG的两种启动方法 启动DEBUG2

  5. §2 DEBUG命令和参数的格式 • 1.命令格式命令字母[参数] • 字母不分大小写; • 只使用16进制数,不加H; • 分割符只在两个数值之间是必须的,命令和参数之间可有可无; • 键入回车键执行命令,Ctrl+Break或Ctrl+C中止命令的执行; • 如命令不符合DEBUG的规则,则提示“error”并使用“^”指示错误位置。 命令格式

  6. 2.参数格式 • ①表示地址(逻辑地址): • 段地址:偏移地址, 如D0400:2500 D10ac:0 Dds:04 Dcs:100 • 偏移地址, 如D2505 D100 ;DEBUG认为输入的是偏移地址,段地址采用默认的段寄存器,不同的命令默认不同的段寄存器,例如汇编命令默认CS,显示数据命令默认DS。 • 既不送段地址,也不送偏移地址,段地址采用默认的段寄存器,偏移地址采用当前值。 • 只送段地址,省略偏移地址,非法。 如DDS: 或 D0400: 参数格式1

  7. ②表示范围 • 开始地址 结束地址 如 D DS:0 50 D2AC0:100 200 D100 120 注意:结束地址不能带段地址 • 开始地址 L 字节长度 如 D DS:0 L 10 D100L20 参数格式2

  8. 命 令 索 引 • D命令 E命令 F命令 R命令 A命令U命令 G命令 T命令 P命令 Q命令N命令 L命令 W命令 C命令 H命令S命令 I命令 O命令 M命令 命令索引

  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 D命令

  10. 索引 • 2.修改命令E • ① E 地址 ;从指定地址开始,修改(或连续修改)存储单元内容。DEBUG首先显示指定单元内容,如要修改,可输入新数据;空格键显示下一个单元内容并可修改,减号键显示上一个单元内容并可修改;如不修改,可直接按空格键或减号键;回车键结束命令。 • ② E 地址 数据表;从指定的地址开始用数据表给定的数据修改存储单元。 • -E DS:100 F3 ‘AB’ 8D。 E命令

  11. 索引 • 3.填充命令F • F 范围 数据表; • 将数据表写入指定范围的存储单元;数据个数 • 多,忽略多出的数据,个数少,则重复使用数据表。 • -F DS:0 L5 01,02,03,04,05 • -F DS:0 L5 01 02 03 04 05(空格分隔) • -F DS:0 L5 FF ;5个字节重复使用FF • 注意和E命令的区别: E 地址 数据表 起始地址,不是范围 F命令

  12. 索引 • 4.显示修改寄存器命令R • ① R;★显示所有寄存器和标志位状态; • ★显示当前CS:IP指向的指令。 • 显示标志时使用的符号: • 标志 标志=1 标志=0 • OF OV NV • DF DN UP • IF EI DI • SF NG PL • ZF ZR NZ • AF AC NA • PF PE PO • CF CY NC • ② R 寄存器名;显示并修改指定的寄存器。 • RAX ;RIP;RF等 R命令

  13. 索引 • 5.汇编命令A • A [地址];从指定的地址开始输入符号指令;如省略地址,则接着上一个A命令的最后一个单元开始;若第一次使用A命令省略地址,则从当前CS:IP开始(通常是CS:100)。 • 注释:①在DEBUG下编写简单程序即使用A命令。 • ②每条指令后要按回车。 • ③不输入指令按回车,或按Ctrl+C结束汇编。 • ④支持所有8086符号硬指令,伪指令只支持 • DB、DW,不支持各类符号名。 A命令

  14. 索引 • 6.反汇编命令U • ① U [地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:IP开始(通常是CS:100)。 • ② U 范围;对指定范围的单元进行反汇编。 • -U • -U100 • -U100L10 U命令

  15. 7.运行程序命令G • ① G;从CS:IP指向的指令开始执行程序,直到程序结束或遇到INT 3。 • ② G=地址;从指定地址开始执行程序,直到程序结束或遇到INT 3。 • ③ G 断点1[,断点2,…断点10];从CS:IP指向的指令开始执行程序,直到遇到断点。 • ④G=地址 断点1[,断点2,…断点10] • -G ;从CS:IP指向的指令开始执行程序。 • -G=100 ;从指定地址开始执行程序。 • -G=100 105 110 120 G命令

  16. 索引 • 注 释: • 1)最多可设置10个断点。 • 2)断点必须设置在一条指令的首字节。 • 3)如设置了多个断点,程序在第一个断点停下 • 后,显示寄存器、标志及下一条要执行的指令,再次 • 输入G命令,程序继续往下执行,直到下一个断点或 • 程序结束。 • 4)程序如有错误,执行时可能造成死机。 G命令2

  17. 索引 • 8.跟踪命令(单步执行命令)T • ① T;从当前IP开始执行一条指令。 • ② T 数值;从当前IP开始执行多条指令。 • ② T =地址; • ③ T =地址 数值; • -T • -T5 /-T=100 5 必须用分割符 T命令

  18. 索引 • 9.跟踪执行并跳过子程序命令P • P [=地址] [数值];类似T命令,但跳过子程序 • 和中断服务程序。 • 10.退出DEBUG命令Q • Q;返回DOS环境。 • -Q P、Q命令

  19. 索引 • 11.命名命令N • N 文件标示符;指定文件,以便用W命令在磁盘 • 上生成该文件,或者用L命令从磁盘装入该文件。 • -N MY_PRO.COM • 写盘:在当前盘当前目录生成指定文件。 • 读盘:在当前盘当前目录读取指定文件。 • - N A:\ USER \ MY_PRO.COM N命令

  20. 索引 • 12.装入命令L • ① L [地址];装入N命令指定的文件,默认的内 • 存地址为CS:100。 • -N MY_PRO.COM • -L • ② L 地址 驱动器号 扇区号 扇区数;将某驱动 • 器的若干扇区(最多80H个)装入内存;0=A,1=B, • 2=C……;默认的段地址为CS。 • -L DS:200 2 0 1 L命令

  21. 索引 • 13.写盘命令W • ① W [地址];将指定地址开始的内存数据写 • 入磁盘,生成N命令指定的文件;默认的内存地址为 • CS:100;写盘的字节数由BX(高位字)和CX(低位字)决 • 定,可执行程序写盘时,文件扩展名应指定.COM。 • -N MY_PRO.COM • -W • ② W 地址 驱动器号 扇区号 扇区数;将内存数 • 据写入磁盘的若干扇区(最多80H);默认的段地址 • 为CS。 • -W DS:0 2 0 1 • 注释:写磁盘扇区要慎用。 W命令

  22. 索引 • 14.其他命令 • *比较命令C • C 范围 地址;将指定范围内的内容与以指定 • 地址为起点的内容相比较。 • *16进制数计算命令H • H 数1,数2(H 数1 数2);同时计算两个数 • 字的和与差。 • *查找命令S • S 范围 数据;在指定范围内查找指定数据。 其他命令1

  23. 索引 • *输入命令I • I 端口地址;输入一个字节并显示。 • *输出命令O • O 端口地址 字节数据;输出到指定的端口。 • *传送命令M • M 范围 地址;将指定范围的内容传送到以指 • 定地址为起点的存储单元。 完 其它命令2

More Related