关于Debug.exe
调试程序DEBUG.EXE |
DEBUG.EXE是DOS提供的可用于调试可执行程序的一个工具软件,也是可用于汇编语言程序设计的一种调试工具。 调试程序DEBUG.EXE是版本有关的,不同版本的操作系统具有不同的文件(功能一样)。
|
DEBUG程序的调用 |
在DOS的提示符下,可如下键入Debug启动调试程序: DEBUG [路径\文件名] [参数1] [参数2] Debug后可以不带文件名,仅运行Debug程序;需要时,再用N和L命令调入被调试程序。命令中可以带有被调试程序的文件名,则运行Debug的同时,还将指定的程序调入主存;参数1/2是被调试程序所需要的参数。 在Debug程序调入后,根据有无被调试程序及其类型相应设置寄存器组的内容,发出Debug的提示符“-”,此时就可用Debug命令来调试程序。
|
DEBUG命令的格式 |
Debug的命令都是一个字母,后跟一个或多个参数: 字母 [参数] 命令的使用中注意: ① 字母不分大小写; 许多命令的参数是主存逻辑地址,形式是“段基地址 : 偏移地址”。其中,段基地址可以是段寄存器或数值;偏移地址是数值。如果不输入段地址,则采用默认值,可以是缺省段寄存器值。如果没有提供偏移地址,则通常就是当前偏移地址。 对主存操作的命令还支持地址范围这种参数,它的形式是:“开始地址 结束地址”(结束地址不能具有段地址),或者是:“开始地址 L字节长度”。 |
显示命令D |
D(Dump)命令显示主存单元的内容,它的格式如下(注意分号后的部分用于解释命令功能,不是命令本身): D [地址] ;显示当前或指定开始地址的主存内容 例如,显示当前(接着上一个D命令显示的最后一个地址)主存内容: 左边部分是主存逻辑地址,中间是连续16个字节的主存内容(16进制数,以字节为单位),右边部分是这16个字节内容的ASCII字符显示,不可显示字符用点“.”表示。一个D命令仅显示“8行×16个字节”(80列显示模式)内容。 再如: |
修改命令E |
E(Enter)命令用于修改主存内容,它有两种格式: E 地址 ;格式1,修改指定地址的内容 例如: |
填充命令F |
F(Fill)命令用于对一个主存区域填写内容,同时改写原来的内容,其格式为: F 范围 数据表 该命令用数据表的数据写入指定范围的主存。如果数据个数超过指定的范围,则忽略多出的项;如果数据个数小于指定的范围,则重复使用这些数据,直到填满指定范围。 |
寄存器命令R |
R(Register)命令用于显示和修改处理器的寄存器,它有三种格式。 R ;格式1,显示所有寄存器内容和标志位状态 R 寄存器名 ;格式2,显示和修改指定寄存器 例如,键入“r ax”,Debug给出当前AX内容,冒号后用于输入新数据,如不修改则按Enter键。 RF ;格式3,显示和修改标志位 Debug将显示当前各个标志位的状态。显示的符号及其状态如表F1.1所示,用户只要输入这些符号就可以修改对应的标志状态,键入的顺序可以任意。 |
汇编命令A |
汇编命令A(Assemble)用于将输入的汇编指令汇编成为机器代码保存于主存。 A [地址] ;从指定地址开始汇编指令 A命令中如果没有指定地址,则接着上一个A命令的最后一个单元开始;若还没有使用过A命令,则从当前CS : IP开始。 输入A命令后,就可以输入8086指令,Debug将它们汇编成机器代码,相继地存放在指定地址开始的存储区中,记住最后要输入一个回车结束A命令。进行汇编的步骤如下: ① 输入汇编命令A [地址],按回车。Debug提示地址,等待你输入新指令; A命令支持标准的8086(和8087浮点)指令系统以及汇编语言语句格式,但要注意以下一些规则: • 所有输入的数值都是16进制数; |
反汇编命令U |
反汇编命令U(Unassemble)将主存内容按照机器代码形成汇编指令显示: U [地址] ;从指定地址开始,反汇编32个字节(80列显示模式) U 范围 ;对指定范围的主存内容进行反汇编 U命令中如果没有指定地址,则接着上一个U命令的最后一个单元开始;若还没有使用过U命令,则从当前CS : IP开始。 屏幕显示的左边是主存逻辑地址,中间是该指令的机器代码,而右边则是对应的指令汇编格式。 |
运行命令G |
运行命令G(Go)从指定地址处开始运行程序,直到遇到断点或者程序正常结束。 G [=地址] [断点地址1,断点地址2,...,断点地址10] G命令等号后的地址指定程序段运行的起始地址,如不指定则从当前的CS : IP开始运行。断点地址如果只有偏移地址,则默认是代码段CS;断点可以没有,但最多只能有10个。 程序遇到断点(实际上就是断点中断指令INT 3),停止执行,并显示当前所有寄存器和标志位的内容、以及下一条将要执行的指令(显示内容同R命令),以便观察程序运行到此的情况。程序正常结束,将显示“Program terminated normally”。 注意,G命令以及后面的T和P命令要指向正确的指令代码,否则会出现不可预测的结果,例如“死机”。 |
跟踪命令T |
跟踪命令T(Trace),也称为单步命令,每执行一条指令就显示运行结果,使程序员可以细致地观察程序的执行情况。 T [=地址] ;逐条指令跟踪 T [=地址] [数值] ;多条指令跟踪 从指定地址起执行一条或数值参数指定条数的指令后停下来,每条指令执行后都要显示所有寄存器和标志位的值以及下一条指令。如未指定地址则从当前的CS : IP开始执行。注意给出的执行地址前有一个等号,否则会被认为是被跟踪指令的条数(数值)。 T命令逐条指令执行程序,遇到子程序(CALL)或中断调用(INT n)指令也不例外,也会进入到子程序或中断服务程序当中执行。 |
继续命令P |
继续命令P(Proceed)类似T命令,逐条执行指令、显示结果。但是当遇到子程序调用、中断功能调用和循环指令等时,不在子程序、中断服务程序或循环体中单步执行,而是直接执行完成子程序、中断服务程序或循环体,然后显示结果。 当不需要调试子程序、中断服务程序或循环程序段时,要应用P命令,而不是T命令。 P [=地址] [数值] |
退出命令Q |
退出命令Q(Quit)使Debug程序退出,返回DOS。Q命令并无存盘功能,可使用W命令存盘。 |
关于Debug.exe相关推荐
- 在Linux里使用dosbox运行debug.exe
安装dosbox,运行 mount d /home/kw/desktop d: debug.exe # 运行debug.exe
- 汇编学习的安装DOSBOX及debug.exe教程
相信有很多小伙伴跟我一样,在学习汇编时却发现win7 64位系统下是无法使用debug.exe的,因为win7 x64没有debug.exe这个文件,因此需要安装DOSBOX. 需要下载地址的可到我的 ...
- 汇编学习 安装DOSBOX及debug.exe教程
相信有很多小伙伴跟我一样,在学习汇编时却发现win7 64位系统下是无法使用debug.exe的,因为win7 x64没有debug.exe这个文件,因此需要安装DOSBOX. 需要下载地址的可到我的 ...
- 汇编语言学-debug环境配置(dos模拟器+debug.exe)
汇编语言学-debug环境配置(dos模拟器+debug.exe) 下载DOSBox模拟器以及debug.exe. 按照各自要求安装(主要安装目录最好不要有空格,不然后面挂载会不成功). 打开模拟器安 ...
- win10安装配置debug.exe和DOSBox
Title: win10安装配置DOSBox和debug.exe Reference: https://blog.csdn.net/plus_re/article/details/60761467 1 ...
- 调试程序DEBUG.EXE
调试程序DEBUG.EXE DEBUG.EXE是DOS提供的可用于调试可执行程序的一个工具软件,也是可用于汇编语言程序设计的一种调试工具. 调试程序DEBUG.EXE是版本有关的,不同版本的操作系统具 ...
- MASM + DOSBox——debug.exe错误[Extended Error 2]解决方案
问题描述 在编译.链接,生成可执行文件后,运行没有出错.而在debug时,出现"Extended Error 2"错误. 如下所示. 问题分析 1.未成功编译和链接. 2.当前目录 ...
- proteus出现Can‘t load “C:WINDOWS/TEMP/VSM Studio…/8086/Debug/Debug.exe“问题的解决办法
问题界面如下 解决方法如下(仅供参考) 1.右键打开工程设置 2.选择8086,点击确定 3.重新构建工程,左下角显示编译成功 4.点击编译成功下方的运行仿真即可 (参考图如下) 红色代表高电平,蓝色 ...
- win10环境下 运行debug程序
百度网盘:链接:https://pan.baidu.com/s/1y6omgW6fI-gT3Dp-0hutOg 提取码:iw4l CSDN0积分下载:https://download.csdn. ...
最新文章
- Codeforces 468C/469E 易错点
- Eclipse 安装 SVN 插件的两种方法
- Clickhouse Engine kafka 将kafka数据同步clickhouse
- Linux shell控制台改变显示前缀
- 你见过哪些堪称绝妙的数学证明?
- linux centos7 r安装,如何在CentOS 7上安装R
- PHP图片验证码制作(上)
- matlab complex
- Java定时任务,定时执行某个操作
- Qt编写1024游戏
- HP EliteDesk 880 G2 TWR无法从U盘启用
- 锤子android 7,锤子新机坚果Pro配置放出:骁龙626处理器、Android 7.1.1系统
- 个人逾期,失信黑名单
- mezzanine 历险记
- win7家庭版开机登录画面多了一个管理员的账户名
- 日本警方称地震造成3676人死亡7843人下落不明
- 别傻了!不能只会给别人开热点,要尝试华为手机的WiFi分享功能
- 全要素网格化综合治理平台
- HDU1273-漫步森林
- oracle怎么条件强制走索引,如何让oracle的select强制走索引
热门文章
- pytorch卷积神经网络_知识干货-动手学深度学习(pytorch)-06 卷积神经网络基础
- 基于node的登入例子(node-koa-mongoose)
- python 基础(二)
- [工具类]文件或文件夹xx已存在,则重命名为xx(n)(2)
- HTML5 文档定义Doctype
- android游戏开发框架libgdx的使用(十五)—TWL布局
- POJ 2425 A Chess Game(有向图SG函数)题解
- SharePoint 2013 文档库中PPT转换PDF
- 进程环境之命令行参数
- 支持位移操作的环形字符串