汇编调试程序DEBUG.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
代码段 141E:0000 数据段 141B:0000 附加段141C:00000 记住在DOS中显示的数字为16进制 代码如下: datarea segment mess1 db 12345hu datarea ends extra segment mess2 db 23 dup(?) extra ends code segment assume ds:datarea, es:extra ,cs:code start: mov ax,datarea mov ds,ax mov ax, extra mov es,ax lea si,mess1 lea di,mess2 cld mov cx,7 rep movsb code ends 1U 反汇编 从程序开始的地方开始反汇编 START开始 我们可以得到的信息如下 第一列是代码段的逻辑地址 第二列是命令的二进制代码 第三列后命令 0000开始 0017结束 还可看出数据段段地址141B 附加段段地址141C 在后面的设置断点地址运行程序时看代码的地址 如下 2G 运行程序 G 全部运行 G 断点地址地址 执行断点地址之前的程序 断点地址处的指令不执行 G =开始地址 断点地址列表 关于debug的g命令的breakpoints是这个样子的: breakpoints可以设置10个,当debug遇到设置的第一个breakpoints时就停止运行,并取消所有的breakpoints,然后显示和t命令执行一样的寄存器信息,如果继续g就从当前breakpoints接着执行,并不会受上一个g命令设置的breakpoints影响. 这样设置的好处是:如果你在调试一个很多跳转的程序时,可以在跳转的目的地址设置多个breakpoints,在哪停了就是跳转到哪了“以下命令设置两个断点: -g cs:7550, cs:8000 如果在 Debug 遇到断点之后再次键入 g 命令,将从在断点之后的指令开始执行,而不是在通常的开始地址执行。” 不输入任何命令按回车结束 =A 代码段地址:偏移地址 不可用于其他段 进入DEBUG 不调试任何程序 A 命令给出代码段地址编写命令语句 3E修改内存单元内容 E 逻辑地址 内容表 从给定的地址依次修改 E 地址 逐个修改 与前面不同的是此处直接修改ASCII码值 R显示和修改寄存器内容 RF修改标志位状态 修改时顺序任意 因为符号是不同的 T追踪命令 逐条执行 只执行一条指令 T 从头开始或从上面T的中断处开始 T =地址 从给定地址执行 T=地址 N 从给定地址执行N条命令后停下 P单步执行 DEBUG 调试 DEBUG [D:][PATH][文件名][参数1][参数2]参数就是那些P A U等 路径用反斜杠\ 也用于转义 斜杠/可用于代替\\ 命名命令N 装入命令L 存盘命令W 此命令将两个文件标示符格式化在CS:5CH和CS:6CH的两个文件控制块内,以便使用L或W命令装入或者存盘 进入DEBUG,用A命令输入上面所写程序段 用U命令查看上 面所输入的指令在内存中所占字节数(这里把这一字节数记为A)注意A命令不可带H 109H-100H=9H 算INT 21 则A=0AH DEBUG中,输入命令 N ABC.COM (说明:这是命名命令) 5.5 用R命令,把BX寄存器的内容改为0,CX寄存器的内容改为A这是因为在用L或W前BX 和CX应包含所读文件的字节数 DEBUG中,输入命令 W (说明:这是存盘命令) 5.6 退出DEBUG,查看是否存在文件ABC.COM ,文件大小是否为A,运行该文件。 用DEBUG ABC.COM重新装载该文件,U命令查看内容 这说明命名命令命名当前装入的代码程序段

文档评论(0)

wuailuo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档