- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动态调试程序DEBUG使用.doc
动态调试程序DEBUG 使用
在编写和运行汇编程序的过程中,会遇到一些错误和问题,需要对程序进行分析和调试,调试程序DEBUG 就是专为汇编语言设计的一种调试工具。它在调试汇编语言程序时有很强的功能,能使程序设计者接触到机器内部,能观察和修改寄存器和存储单元内容,并能监视目标程序的执行情况,使用户真正接触到CPU 内部,与计算机产生最紧密的工作联系。
1.动态和程序DEBUG 的主要特点
1)能够在最小环境下运行汇编程序
在DOS 状态下运行汇编程序,必须将程序经过MASM 汇编程序,而后还要经过LINK连接程序产生可执行程序,才能最终运行,比较麻烦。在DEBUG 状态下,为用户提供了调试、控制测试的环境,可以在此环境下进行编程、调试、监督、执行用户编写的汇编程序。因此调试周期短,为用户提供了极大的方便。
2)提供极简单的修改手段
DEBUG 提供了修改命令,可以修改内存单元内容,修改寄存器的内容,为调试程序、修改程序带来了方便。
3)提供用户与计算机内部联系的窗口
DEBUG 具有显示命令,它既可以使用户看到某内存单元或某一块单元内容,也可以看到CPU 内部各寄存器的内容。用单步执行命令实现跟踪执行,每执行一步都使用户看到各寄存器的内容的变化,以便分析和调整程序。
4)可装入、修改或显示任何文件
当然在DEBUG 状态下运行汇编程序也具有一定局限性。在DEBUG 状态下运行的程序不能使用宏汇编程序中的宏指令,大部分伪指令也不能使用,因此只能把程序分段调试。此外,不能调试太长的程序,只能分块进行中程序设计。在DEBUG 状态下调试好的程序不能形成可执行文件(.EXE),因此调试好的程序只能记下,到编辑环境下重新键入调试好的程序,通过汇编程序(如MASM),再通过连接程序(LINK)形成可执行文件(.EXE)。
2.DEBUG 的进入
在操作系统(DOS)状态下,直接调入DEBUG 程序,键入命令的格式如下:
DDEBUG [d:][Path][filename[.ext]][Parm1][Parm2]
其中[]的内容为可选项,可以有也可以缺省。
[d:]为驱动器号,指要调入DEBUG 状态的可执行文件在哪个驱动器中,如A:、B:、C:等。
[Path]为路径,指要调入DEBUG 状态的可执行文件是在哪个目录下或子目录下。
[filename[.ext]],指要调入DEBUG 状态下的可执行文件的文件名,该文件可以是通过编辑、汇编、连接后产生的可执行文件,也可以是在DEBUG 状态下汇编的程序 段,通过写盘命令W 写入磁盘的文件。
[Parm1][Parm2]为任选参数,是给定文件的说明参数。
在启动DEBUG 时,如果输入filename(文件名),则DEBUG 程序把指定文件装入内存,用户可以通过DEBUG 的命令对指定文件进行修改、显示或执行。如果没有文件名,则是以当前内存的内容工作,或者用命名命令或装入命令把需要的文件装入内存,然后再通过DEBUG 命令进行修改、显示或执行。
当启动DEBUG 程序后,屏幕上出现“—”,说明系统已进入DEBUG 状态。
3.DEBUG 的主要命令
1)DEBUG 命令的有关规定
(1)DEBUG 命令都是一个英文字母,后面跟着一个或多个有关参数。多个操作参数之间用“,”或空格隔开。
(2)DEBUG 命令必须接着按ENTER 键,命令才有效。
(3)参数中不论是地址还是数据,均用十六进制数表示,但十六进制数据后面不要用“H”。
(4)可以用Ctrl 和Break 键来停止一个命令的执行,返回到DEBUG 的提示符“—”下。
(5)用Ctrl-Num Lock 键中止正在上卷的输出行,再通过按任意键继续输出信息。
2)DEBUG 命令
(1)汇编命令A
格式:a. A [段寄存器名]:[偏移地址]
b. A [段地址]:[偏移地址]
c. A [偏移地址]
d. A
功能:用该命令可以将汇编语言程序直接汇编进入内存。
当键入A 命令后,显示段地址和偏移地址等待用户键入汇编指令,每键入一条汇编指令回车后,自动显示下一条指令的段地址和偏移地址,再键入下一条汇编指令,直到汇编语言程序全部键入,又显示下一地址时可直接键入回车返回到提示符“-”为止。其中a 的段地址在段地址寄存器中,因此在使用该命令时必须将段地址寄存器送入段地址,c 的地址在CS 中,d 的段地址在CS 中,偏移地址为100H。
(2)显示内存命令D
格式:a. D [地址]
b. D [地址范围]
c. D
功能:显示指定内存范围的内容。
显示的内容为两种形式:一种为十六进制内容,一种为与十六进制相对应的ASCII 码字符,对不可见字符以“·”代替。对于a、c 每次显示128 个字节内容,b 显示的字节数由地址范围来决定。若命令中
文档评论(0)