调试程序Debug常用命令共24页文档

合集下载

DOS的debug命令大全

DOS的debug命令大全

DOS的提示符下,可如下键入Debug启动调试程序:DEBUG [路径\文件名] [参数1] [参数2]Debug后可以不带文件名,仅运行Debug程序;需要时,再用N和L命令调入被调试程序。

命令中可以带有被调试程序的文件名,则运行Debug的同时,还将指定的程序调入主存;参数1/2是被调试程序所需要的参数。

在Debug程序调入后,根据有无被调试程序及其类型相应设置寄存器组的内容,发出Debug的提示符“-”,此时就可用Debug命令来调试程序。

∙运行Debug程序时,如果不带被调试程序,则所有段寄存器值相等,都指向当前可用的主存段;除SP之外的通用寄存器都设置为0,而SP指示当前堆栈顶在这个段的尾部;IP=0100h;状态标志都是清0状态。

∙运行Debug程序时,如果带入的被调试程序扩展名不是.EXE,则BX.CX 包含被调试文件大小的字节数(BX为高16位),其他同不带被调试程序的情况。

∙运行Debug程序时,如果带入的被调试程序扩展名是.EXE,则需要重新定位。

此时,CS : IP和SS : SP根据被调试程序确定,分别指向代码段和堆栈段。

DS=ES指向当前可用的主存段,BX.CX包含被调试文件大小的字节数(BX为高16位),其他通用寄存器为0,状态标志都是清0状态。

Debug的命令都是一个字母,后跟一个或多个参数:字母 [参数]命令的使用中注意:①字母不分大小写;②只使用16进制数,没有后缀字母;③分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符;④每个命令只有按了回车键后才有效,可以用Ctrl+Break中止命令的执行;⑤命令如果不符合Debug的规则,则将以“error”提示,并用“^”指示错误位置。

许多命令的参数是主存逻辑地址,形式是“段基地址 : 偏移地址”。

其中,段基地址可以是段寄存器或数值;偏移地址是数值。

如果不输入段地址,则采用默认值,可以是缺省段寄存器值。

MASM调试程序使用步骤及DEBUG及其常用命令

MASM调试程序使用步骤及DEBUG及其常用命令

MASM调试程序使用步骤及DEBUG及其常用命令MASM调试程序使用步骤1、在运行中输入cmd,进入DOS界面2、输入edit c:\abc.asm 编辑程序文件3、通过“cd 目录” 到指定masm目录4、masm 文件名.asm (汇编),生成obj文件5、link 文件名.obj(链接),生成可执行文件6、文件名.exe(执行)DEBUG及其常用命令转帖[/blog/static/16340121200610141 3352405/]一 DEBUG简介DEBUG是DOS的一个外部命令, 其命令格式为:[path]DEBUG [filename] [parm1] [parm2][path]是DEBUG命令在磁盘上的路径filename是要用DEBUG来处理的文件的名字, 它包括文件的盘符、路径、文件主名和扩展名。

参数parm1和parm2是文件filename运行时使用的参数。

当启动DEBUG时, 将对CPU的各寄存器进行初始化:1. 如果启动时指定的filename是.EXE文件, 则DEBUG启动后将自动把指定的文件装入内存, 并置:CS为程序代码段段地址IP为第一条要执行指令的偏移地址SS为堆栈段段地址SP为堆栈底部+1单元的偏移地址DS和ES是装入文件前第一个可用内存段的段地址(即DEBUG程序后的第一个段地址)标志寄存器的所有标志位为0BX(0)和CX是装入的文件长度其余寄存器为0。

2. 如果启动DEBUG时指定的文件filename不是.EXE文件, 则DEBUG 将把文件装入内存, 并置:四个段寄存器为DEBUG程序后面的第一个段地址IP指向100HSP指向这个段的段尾标志寄存器的所有标志位为0BX和CX是装入的文件长度其余寄存器为0。

3. 如果启动DEBUG时不指定filename, 则只是把CPU 的各寄存器进行初始化, 初始化结果与上述的第2点相同。

这时要想显示、修改文件,可以用DEBUG的子命令装入文件。

PC技术 DEBUG常用命令及其使用

PC技术 DEBUG常用命令及其使用

DEBUG常用命令及其使用Debug是汇编程序设计的调试工具,它通过提供单步执行、断点设置等功能为汇编程序员提供了有效的调试手段。

我们通过在Debug状态下键入“?”号,就可得到所有的Debug 命令及其格式。

Debug命令一览表:assemble A[address]compare C range addressdump D[range]enter E address[list]fill F range listgo G[=address][addresses]hex H value1value2input I portload L[address][drive][firstsector][number] move M range addressname N[pathname][arglist]output O port byteproceed P[=address][number]quit Qregister R[register]search S range listtrace T[=address][value]unassemble U[range]write W[address][drive][firstsector][number] allocate expanded memory AX[#pages]deallocate expanded memory XD[handle]map expanded memory pages XM[Lpage][Ppage][handle]display expanded memory status XS上面如此多的Debug命令,也许会吓退汇编用户,但实际并不是所有的命令都必须掌握的,在进行上机程序题调试时,最常用的命令就是设置断点、单步执行、查看内存变量等,因为我们编制好汇编程序后,如果运行结果正确当然没有什么好做的,但当运行结果与我们预期的结果不一致时,就必须对程序进行调试。

DEBUG常用命令2

DEBUG常用命令2

常用DEBUG命令DEBUG为汇编语言程序员提供了非常有效的调试手段。

进入命令提示符窗口:方法1:开始/程序/附件/命令提示符方法2:开始/运行/cmd进入DEBUG状态:命令提示符窗口下输入debug屏幕显示-:表示进入debug调试状态常用命令:1、显示存储单元的内容命令D格式为:D[address]或D[range]Address格式------段地址:偏移地址注意:段地址可以是段名或者数字,D命令默认显示DS段的内容。

Range格式-----起始地址结束地址例如,-d100 120显示0100至0120的单元内容。

屏幕最左边显示主存逻辑地址,中间用十六进制表示每个字节,右边用ASCII字符表示每个字节,·表示不可显示的字符。

2、修改存储单元内容:E命令第一种格式:可以用给定的列表中的内容表来替代指定范围的存储单元内容。

格式为:-E address[list]例如,-E DS:100 F3‘XYZ’8D该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的内容。

第二种格式:逐个单元相继修改命令格式为:-E address例如,-E DS:100则可能显示为:18E4:0100 89.-如果需要把该单元的内容修改为78,则用户可以直接键入78,再按“空格”键可接着显示下一个单元的内容,如下:18E4:0100 89.78 1B.-这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。

3.填写命令F(FILL):格式为:-F range list例如:-F 4BA:0100 1004 F3'XYZ'8D使04BA:0100~0104单元包含指定的五个字节的内容。

或者-F 4BA:0100 L5 F3'XYZ'8DL5指定填充的字节数如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。

DEBUG各命令详细说明(很详细)

DEBUG各命令详细说明(很详细)

DEBUG各命令详细说明(很详细)2.启动DEBUG在命令窗口中启动DEBUG,启动命令一般为:DEBUG [文件名] [参数表]。

其中:文件名指定被调试的文件,其包括名和后缀,参数表是被调试文件运行时所需要的参数。

被调试的文件可以是系统中的任何文件,但通常它们的后缀为.EXE或.COM。

当DEBUG启动成功后,将显示连接符“-”,这时,可输入各种DEBUG命令。

DEBUG中所有命令及其含义如DEBUG各命令功能说明表所示。

关于使用命令的几点说明:在提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行命令是单个字母,命令和参数的大小写可混合输入可用F1、 F2、F3、Ins、Del、左移键、右移键等编辑键来编辑本行命令当命令出现语法错误时,将在出错位置显示“^ Error”可用Ctrl+C或Ctrl+Break来终止当前命令的执行,还可用Ctrl+S或Ctrl+Num Lock来暂停屏幕显示(当连续不断地显示信息时)以下通过实现十九个示例来熟悉DEBUG的命令集和基本的汇编指令。

R命令的使用R命令作用:观看和修改寄存器的值。

在提示符“-”下输入以下命令:R。

DEBUG将会显示出当前所有寄存器和标志位的状态。

接下来再输入命令RCX。

在提示符“:”后输入100。

该命令的作用是将寄存器CX的值设置为100(注意:DEBUG使用的是十六进制,这里的100相当于十进制的256。

)最后再执行R命令,观看修改后的寄存器值。

H命令的使用H命令作用:计算两个十六进制数的和与差。

在提示符“–”下输入以下命令:H 10 1。

观看命令执行结果。

运行结果的前一个数是计算出来的和,后一个数是计算出来的差。

计算结果均用十六进制形式表示。

D命令的使用D命令作用:显示内存区域的内容。

在提示符“–”下连续执行命令R、D、D。

观看命令执行结果。

前面已经介绍过了,命令R的作用是显示当前寄存器的值。

而命令D的作用是显示内存区域的内容,最左边是内存的起始地址,中间以十六进制的形式显示内存值,最右边是以ASCII码的形式显示内存值。

DEBUG调试程序.

DEBUG调试程序.

二、常用的DEBUG命令、执行过程命令 P 格式: P 功能:执行一条指令或一个过程(子程序),然后显示各寄存器的状态。

P 命令也是调试程序命令,它与单步命令T的作用类似,T命令是单步执行一条或多条指令,而P命令是执行一条指令(包括带重复前缀的串操作指令)或一个完整的过程。

例如: MOV AH,02H INT 21H :当要执行INT 21H这条指令时,若用T命令单步调试,则进入DOS功能调用INT 21H子程序后,需要数次T命令才能返回当前程序;若用P 命令进行调试,则只执行INT 21H一条指令,执行完立即返回。

因此,当遇到CALL、INT n指令或带重复前缀的串操作指令时,应用P命令调试。

二、常用的DEBUG命令、端口输入命令 I 格式: I <端口地址> 功能:I 命令从指定端口输入一个字节数据并显示。

、端口输出命令 O 格式: O <端口地址> <字节> 功能:O命令向指定端口输出一个指定值数据,输出指定值由字节参数指定。

例如:O 2F 4F 该命令从2FH端口输出4FH字节个数据。

14、退出命令 Q 格式:Q 功能:结束DEBUG环境,返回DOS提示符下。

结束。

调试程序DEBUG






DEBUG
① 在DOS提示符下键入:DEBUG ↙(表示回车)
Debug执行,屏幕显示提示符“-”,说明计算机当前处于 Debug的管理之下,可接受、并执行Debug命令。
② 在DOS提示符下键入:DEBUG [路径\]文件名↙
Debug执行,并将指定文件装入内存,供调试。
说明:如不指定被调试程序,DEBUG设置所有段寄存器的值相
② U 范围
功能: 对指定范围的单元进行反汇编。
U命令
12




DEBUG
-U
-U100 -U100 L10
13




DEBUG
跟踪命令(单步执行命令)T
格式:
① T
功能:从当前IP开始执行一条指令
② T 数值
功能:从当前IP开始执行多条指令
② T =地址 ③ T =地址 数值
-T -T5 / -T=100 5
G命令2
16




DEBUG
跟踪执行并跳过子程序命令P
格式:
P [=地址] [数值];
说明: 类似T命令,但跳过子程序和中断服务程序
退出DEBUG命令Q
格式: Q 功能: 返回DOS环境。 例子: -Q
P、Q命令
17
命名命令N
格式: N 文件标示符
功能:




DEBUG
指定文件,以便用W命令在磁盘上生成该文件
注意和E命令的区别: E 地址 数据表
F命令
起始地址,不是范围 21
其他命令
*比较命令C 格式: C 范围 地址;

debug命令

-E address例如,-E DS:100则可能显示为:18E4:0100 89.-如果需要把该单元的内容修改为78,则用户可以直接键入78,再按"空格"键可接着显示下一个单元的内容,如下:18E4:0100 89.78 1B.-这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。

·填写命令F(FILL),其格式为:-F range list例如:-F 4BA:0100 5 F3'XYZ'8D使04BA:0100~0104单元包含指定的五个字节的内容。

如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。

3)检查和修改寄存器内容的命令R(register),它有三种格式如下:·显示CPU内所有寄存器内容和标志位状态,其格式为:-R例如,-rAX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC18E4:0100 C70604023801 MOV WORD PTR [0204],0138 DS:0204=0000·显示和修改某个寄存器内容,其格式为:-R register name例如,键入-R AX系统将响应如下:AX F1F4:即AX寄存器的当前内容为F1F4,如不修改则按ENTER键,否则,可键入欲修改的内容,如:-R bxBX 0369:059F则把BX寄存器的内容修改为059F。

·显示和修改标志位状态,命令格式为:-RF系统将响应,如:OV DN EI NG ZR AC PE CY-此时,如不修改其内容可按ENTER键,否则,可键入欲修改的内容,如:OV DN EI NG ZR AC PE CY-PONZDINV即可,可见键入的顺序可以是任意的。

DEBUG命令一览表

DEBUG 主要命令一览表 DEBUG [d:] [path] [.exe] [参数]2、DEBUG的主要命令(1)汇编命令A,格式为:-A[地址] 该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。

(2)反汇编命令U,有两种格式:1)-U[地址] 该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。

2)-U范围该命令对指定范围的内存单元进行反汇编,例如:-U 04BA:0100 0108或–U 04BA:0100 L9 此二命令是等效的。

(3)运行命令G,格式为:-G [=地址1][地址2[地址3。

]] 其中地址1规定了运行起始地址,后面的若干地址均为断点地址。

(4)追踪命令T,有两种格式:1)逐条指令追踪:-T[=地址] 该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。

2)多条指令追踪:-T[=地址][值] 该命令从指定地址起执行n条命令后停下来,n由[值]确定。

(5)显示内存单元内容的命令D,格式为:-D[地址]或-D[范围](6)修改内存单元内容的命令E,它有两种格式:1)用给定的内容代替指定范围的单元内容:-E地址内容表例如:-E 2000:0100 F3 “XYZ” 8D 其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入。

2)逐个单元相继地修改:-E地址例如:-E 100:18E4:0100 89.78 此命令是将原100号单元的内容89改为78。

78是程序员键入的。

(7)检查和修改寄存器内容的命令R,它有三种方式:1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R R命令显示中标志位状态的含义如下表所示:标志名置位复位溢出Overflow(是/否)OVNV 方向Direction(减量/增量)DNUP 中断Interrupt(允许/屏蔽)EIDI 符号Sign(负/正)NGPL 零Zero(是/否)ZRNZ 辅助进位Auxiliary Carry (是/否)ACNA 奇偶Parity(偶/奇)PEPO 进位Carry(是/否)CYNC 2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名例如打入:-R AX 系统将响应如下:AX FIF4 :表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:-R BX BX 0369 :059F 则BX内容由0369改为059F 3)显示和修改标志位状态,命令格式为:-RF 系统将给出响应,如OV DN EI NG ZR AC PE CY- 这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。

DEBUG调试程序


1、启动DEBUG程序
(2)启动DEBUG程序的同时装入被调试文件
在DOS系统提示符下键入以下命令:
C:\>CD 16BIT ↙
C:\>16BIT>DEBUG[路径\]文件名↙
DEBUG程序执行,并将指定文件装入内存, 供调试。
调试程序DEBUG的使用
2、退出DEBUG环境
2、退格式2: D <地址范围> 功能:显示所指定地址范围的内容,指定地址范围 为起始地址和终止地址。
二、常用的DEBUG命令
操作过程如图所示。
二、常用的DEBUG命令
6、修改内存单元命令 E 格式1: E <地址><单元内容> 功能:将指定内容写入指定地址单元代替原来内容,然后显示 下一地址。可连续键入修改内容,直至新地址出现后键 入回车为止。其中<单元内容>是一个16进制数,或是用 引号括起来的字符串。 格式2: E <地址><单元内容表> 功能:该功能用<单元内容表>逐一修改由指定地址开始的连续 内存单元的内容。<单元内容表>是以逗号分隔的16进制 数,或是用引号括起来的字符串,或者是二者的组合。
二、常用的DEBUG命令
操作过程如图所示。
二、常用的DEBUG命令
8、显示命令 R
格式1:R 功能:显示CPU内所有寄存器内容、标志位状态及将要执行的 下一指令的地址、机器码及汇编语句形式。 格式2:R <寄存器名> 功能: 显示和修改指定寄存器内容。若不需修改内容,直接按 回车,否则在‚:‛后键入修改内容。键入修改内容后按回车 键有 效。 格式3:RF 功能:显示和修改状态标志位内容,TF标志位除外。若不需修 改内容,直接按回车,否则键入要修改内容。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档