汇编 DEBUG主要 命令 大全 最详细

合集下载

汇编 DEBUG主要 命令 大全 最详细

汇编 DEBUG主要 命令 大全 最详细

DEBUG主要命令DEBUG是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。

1.DEBUG程序的调用在DOS的提示符下,可键入命令:C:>DEBUG [d:][path][文件名][参数1][参数2]其中文件名是被调试文件的名字,它必须是可执行文件(EXE),两个参数是运行被调试文件所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。

2.DEBUG的主要命令⑴显示内存单元内容的命令D,格式为:-D [地址] 或-D [范围]例如,显示指定范围内存单元内容的方法为:-D 100 1FF18E4:0100 47 06 04 02 38 01 47 06 -06 02 00 02 47 06 08 02 G...8.G.....G...18E4:0110 02 02 3B 04 02 68 02 00 -4D 20 50 51 56 57 8B 37 ..;..h..M PQVW.7 其中左边为十六进制表示形式,右边为ASCII码表示形式,“.”表示不可显示字符。

这里没有指定段地址,D命令自动显示DS段的内容。

⑵修改内存单元内容的命令E,它有两种格式1)用给定内容代替指定范围的单元内容,格式为:-E 地址内容表例如:-E DS:100 F358595A8D,即用F3,58,59,5A,8D五个字节代替内存单元DS:100到DS:104的内容。

2)逐个单元相继地修改,格式为:-E 地址例如:-E DS:10018E4:0100 89.78此命令是将0100单元内容89改为78。

78是程序员从键盘输入的。

程序员在修改完一个单元后,可按“空格”键继续修改下一单元内容,直至按“回车”键结束该命令。

⑶检查和修改寄存器内容的命令R,它有三种方式1)显示CPU内部所有寄存器内容和标志寄存器中的各标志位状态-R该命令可显示AX,BX,CX,DX,SP,BP,SI,DI,DS,ES,SS,CS,IP及标志寄存器内容。

debug命令大全

debug命令大全

Debug启动 Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序。

Debug [[drive:][path] filename [parameters]]参数[drive:][path] filename指定要测试的可执行文件的位置和名称。

parameters指定要测试的可执行文件所需要的任何命令行信息。

++说明使用 Debug 命令但不指定要测试的文件如果使用没有位置和文件名的 Debug 命令,然后键入所有的 Debug 命令以响应 Debug 提示符,连字符 (-)。

Debug 命令以下是 Debug 命令列表:? 显示 Debug 命令列表。

a 汇编 8086/8087/8088 记忆码。

c 比较内存的两个部分。

d 显示部分内存的内容。

e 从指定地址开始,将数据输入到内存。

f 使用指定值填充一段内存。

g 运行在内存中的可执行文件。

h 执行十六进制运算。

i 显示来自特定端口的 1 字节值。

l 将文件或磁盘扇区内容加载到内存。

m 复制内存块中的内容/n 为 l 或 w 命令指定文件,或者指定正在测试的文件的参数。

o 向输出端口发送 1 个字节的值。

p 执行循环、重复的字符串指令、软件中断或子例程。

q 停止 Debug 会话。

r 显示或改变一个或多个寄存器。

s 在部分内存中搜索一个或多个字节值的模式。

t 执行一条指令,然后显示所有寄存器的内容、所有标志的状态和 Debug 下一步要执行的指令的解码形式。

u 反汇编字节并显示相应的原语句。

w 将被测试文件写入磁盘。

xa 分配扩展内存。

xd 释放扩展内存。

xm 映射扩展内存页。

xs 显示扩展内存的状态。

分隔命令参数所有 Debug 命令都接受参数,除了 q 命令之外。

可以用逗号或空格分隔参数,但是只有在两个十六进制值之间才需要这些分隔符。

因此,以下命令等价:dcs:100 110d cs:100 110d,cs:100,110指定有效地址项Debug 命令中的 address 参数指定内存位置。

DEBUG命令

DEBUG命令
②键入读文件命令-L[<内存地址>] ③将文件装入CS:<地址>开始的内存 ④BX和CX中存放计入文件的字节数 例: E:>DEBUG -N -L -R
•写文件
-W[<内存地址>] ①指定文件名
-N<文件名>
②将要写文件长度(字节数)放BX,CX中
③键入读文件命令-W[<内存地址>]
•输入命令I ---从某一I/0端口取得输入数据字节 I<端口号>
11.退出DEBUG命令Q(Quit) -Q
如:-T=100
-T=100 2
8.查找、比较和移动内存数据命令。S/C/M 对内存中的数据进行比较、移动及查找某
一特定字节。 •移动内存命令M(Move) 格式:M <源地址范围><目的地址>
如:-MDS:00 1F 100
•比较内存命令C(Compare) 比较两块存储区的内容,若不同,显示出
注意两点: ①<内存地址>的形式是段:偏移量。若未指定地址,则 DEBUG约定L、W命令使用CS段,而E命令使用DS段。 ②相对扇区号是0面0道1扇区为相对0,扇区数最大为 80H,即每次读写可达64KB。
如何将软盘的最后一个扇区全部写上“*” ??
10.其它命令 •十六进制的和差运算H
例: -H12 34 0046 FFDE -H655 8787 8DDC 7ECE
如:-U100
默认CS段
•对指定范围内的存储单元反汇编 -U rang 如: -U100 109
6.运行命令G(Go) -G[=address1] [address2 [address3…]} 从指定地址1开始运行,后面为断点地址。如不指定 则从当前CS:IP开始运行。

Debug常用命令实践

Debug常用命令实践

Debug常用命令实践一实验目的<1>学习Debug常用命令、掌握观察寄存器和内存单元的方法。

<2>获取计算机只认识机器语言的直接感受。

<3>熟悉汇编语言编程工具的使用。

二 Debug常用命令1.汇编命令A 格式:-A [地址]功能:从指定地址开始允许输入汇编指令,并将汇编成机器指令代码从指定代码开始存放,若不指定地址则系统默认的地址开始存放,按回车键退出汇编状态。

应用:用于调试一条指令或几条指令组成的一个程序段。

2.显示或修改寄存器命令R 格式: -R [寄存器名]功能:若指定寄存器,则显示指定寄存器的内容,并可进行修改;若不要修改,则按Enter键,若为指定寄存器,则默认显示所有寄存器内容。

应用:常用于寄存器的值查看指令的执行结果。

3.内存单元内容的,命令E 格式:-E [地址] 内容表功能:若指定内容表,则用内容表中的内容代替指定地址开始存储单元的值,否则,从指定地址考试逐个单元显示其内容,并等待用户修改。

按空格键继续显示下一个单元的值,按回车键结束。

应用:常用于在调试程序的过程中改变变量的初始值。

4.显示内存单元内容的命令D,格式:-D [地址] 或–D [范围]功能:前者为显示指定地址开始的一段存储单元的值;后者为显示指定范围内存存储单元的值。

应用:常用于在调试过程中检查变量的值.例如:-D 200 ;显示从DS:200单元开始的各单元的值-D 200 L10 ; 显示从DS:200单元开始的10个字节单元的值。

5.单步执行命令T 格式:-T [=地址]功能:从从指定地址执行一条指令后停下来,显示寄存器内容和状态值,若未指定地址,则执行当前指令的下一条指令。

6.反汇编命令U 格式:-U [地址] 或–U [范围]功能:从指定地址开始,反汇编32个字节,或者对指定范围内的主存内容进行反汇编,若没有指定地址,则接着上一个U命令的最后一个单元开始;若还没有使用过U命令,则从当前cs:ip开始。

汇编语言debug常用命令

汇编语言debug常用命令

Debug常用命令集名称解释格式a (Assemble) 逐行汇编a [address]c (Compare) 比较两内存块c range addressd (Dump) 内存16进制显示d [address]或d [range]e (Enter) 修改内存字节e address [list]f (fin) 预置一段内存f range listg (Go) 执行程序g [=address][address...]h (Hexavithmetic) 制算术运算h value valuei (Input) 从指定端口地址输入i pataddressl (Load) 读盘l [address [driver seetor]]m (Move) 内存块传送m range addressn (Name) 置文件名n filespec [filespec...]o (Output) 从指定端口地址输出o portadress byteq (Quit) 结束qr (Register) 显示和修改寄存器r [register name]s (Search) 查找字节串s range listt (Trace) 跟踪执行t [=address] [value]u (Unassemble) 反汇编u [address ]或rangew (Write) 存盘w [address[driver sector secnum]]? 联机帮助?debug小汇编a命令debug小汇编a命令是一个很有用的功能,许多的小程序都要他来做。

编一些小程序比汇编要来得方便,快洁。

在Debug中,中断是非常有用的,首先,让我们先了解一下中断。

所谓中断,其实,就是,当你做某事时,有人过来找你有其他事,你先放下手中的事(计算机中,称为保护现场),再去与叫你的那个人办事去,等完了,你又回,接着做刚才的事。

这是个很通俗的讲法。

计算机在运行时,也会出现这种情况,我们叫之中断。

dos汇编debug基本命令程序

dos汇编debug基本命令程序

dos汇编debug基本命令程序DOS汇编(Debug)基本命令程序在学习和编写DOS汇编语言程序时,了解和掌握调试程序是非常重要的。

DOS提供了一个非常有用的调试器,即Debug。

Debug是一个基本的汇编语言调试程序,它可以让程序员在运行程序时进行单步执行,查看寄存器和内存的内容,以及进行程序的调试和错误修复。

本文将介绍DOS汇编(Debug)基本命令程序。

一、启动Debug要启动Debug,可以在DOS命令提示符下输入"debug"命令,然后按Enter键。

此时,会显示Debug的提示符"-",表示Debug 已经启动。

二、基本命令Debug提供了一系列命令,用于执行和调试汇编语言程序。

下面是一些常用的基本命令:1. a(assemble):将汇编指令翻译成机器码,并将其写入内存中。

例如,输入"a 100"表示从内存地址100开始输入汇编指令。

2. d(dump):显示内存中的内容。

可以使用"d"命令来查看内存中的指令和数据。

例如,输入"d 100"表示从内存地址100开始显示内存内容。

3. e(enter):修改内存中的指令或数据。

可以使用"e"命令来修改内存中的指令或数据。

例如,输入"e 100"表示修改内存地址100处的内容。

4. g(go):执行程序。

使用"g"命令可以让程序开始执行。

例如,输入"g"表示开始执行程序。

5. r(register):显示和修改寄存器的内容。

可以使用"r"命令来查看和修改寄存器的内容。

例如,输入"r ax"表示显示或修改AX寄存器的内容。

6. t(trace):单步执行程序。

使用"t"命令可以让程序以单步执行的方式运行。

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反汇编命令

debug反汇编命令

DEBUG是Windows自带的调试工具一、A(assemble):汇编命令命令格式:a[<目标开始地址>]功能:从address地址开始写入汇编命令,回车结束此行,进入下一内存地址的编译。

如无address 参数,则默认从cs:ip下一址开始编译。

例:a 1000:1000 从1000:1000地址开始输入汇编指令。

二、C(compare):比较命令命令格式:c<范围><地址范围>功能:比较指定内存地址(range address)的值。

例:c 100:0 100 10:0 比较从100:0开始的下100个地址与10:0开始的下100个地址。

三、D(dump):内存显示命令命令格式:d[<目标开始地址][目标范围>]功能:显示指定范围的内存值。

例:d 100:100 显示100:100地址及下个内存的值。

d 100 显示ds:100地址及下个内存的值。

四、e(enter):内存修改命令命令格式:e<目标地址><目标范围>功能:修改指定内存的值。

使用:空格编辑下一内存地址值,减号回到上一内存地址进行重编辑,回车完成编辑。

例:e 修改ds:ip的值;e 100 修改ds:100内存的值。

五、F(fill):内存填充命令命令格式:f<目标范围><填充值列表>功能:填充指定范围内存的指定值。

使用: range:内存地址范围。

list:填充值列表,多个值用空格隔开。

依次列入指定地址,地址数,填充值数,则填充从头开始循环填入指定内存。

例:f 100 l 100 'ab''cd' 在从ds:100开始的下100个内存中分别填入'ab''cd'。

六、G(go):运行命令命令格式:g[=开始地址][断点地址]功能:从指定地址开始运行。

可设定断点,DEBUG支持最多10个断点的设定。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DEBUG主要命令
DEBUG是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。

1.DEBUG程序的调用
在DOS的提示符下,可键入命令:
C:>DEBUG [d:][path][文件名][参数1][参数2]
其中文件名是被调试文件的名字,它必须是可执行文件(EXE),两个参数是运行被调试文件所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。

2.DEBUG的主要命令
⑴显示内存单元内容的命令D,格式为:
-D [地址] 或-D [范围]
例如,显示指定范围内存单元内容的方法为:
-D 100 1FF
18E4:0100 47 06 04 02 38 01 47 06 -06 02 00 02 47 06 08 02 G...8.G.....G...
18E4:0110 02 02 3B 04 02 68 02 00 -4D 20 50 51 56 57 8B 37 ..;..h..M PQVW.7 其中左边为十六进制表示形式,右边为ASCII码表示形式,“.”表示不可显示字符。

这里没有指定段地址,D命令自动显示DS段的内容。

⑵修改内存单元内容的命令E,它有两种格式
1)用给定内容代替指定范围的单元内容,格式为:
-E 地址内容表
例如:-E DS:100 F358595A8D,即用F3,58,59,5A,8D五个字节代替内存单元DS:100到DS:104的内容。

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

78是程序员从键盘输入的。

程序员在修改完一个单元后,可按“空格”键继续修改下一单元内容,直至按“回车”键结束该命令。

⑶检查和修改寄存器内容的命令R,它有三种方式
1)显示CPU内部所有寄存器内容和标志寄存器中的各标志位状态
-R
该命令可显示AX,BX,CX,DX,SP,BP,SI,DI,DS,ES,SS,CS,IP及标志寄存器内容。

R命令显示中标志位状态的含义如下所示:
2)
-R 寄存器名
例如:-R AX
系统响应如下:
AX F130

表示AX当前内容为F130,此时若不对其作修改,可按“回车”键,否则,键入修改内容。

3)显示和修改标志寄存器内容
-RF
系统将给出响应,例如:
OV DN EI NG ZR AC PE CY-
这时若不作修改可按“回车”,否则在“-”之后键入修改值,键入顺序任意,各标志位的取值如上表所示。

⑷运行命令G,格式为:
-G [=地址1][地址2[地址3…]]
其中,地址1指定了运行的起始地址,后面的均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容和下一条要执行的指令。

⑸跟踪命令T,它有两种格式:
1)逐条指令跟踪,格式为:
-T[=地址]
该命令从指定地址起执行一条指令后停下来,显示所有寄存器及标志位的内容,如未指定地址从当前的CS:IP开始执行。

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

⑹汇编命令A,格式为:-A [地址]
该命令允许输入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。

必须注意:输入的数字均默认为十六进制数。

⑺反汇编命令U,它有两种格式:
1)从指定地址开始,反汇编32个字节,其格式为:
-U [地址]
2)对指定范围内的存储单元进行反汇编,其格式为:
-U [范围]
(8) 执行命令P,格式为:-P [=地址] [指令数]
该命令将控制从Debug 传送到要测试的程序时,该程序不间断运行,直到循环、重复字符串指令、软件中断或者完成了指定地址的子例程为止,或者直到执行了指定数量的机器指令为止。

(9) 退出DEBUG命令Q,格式为:-Q
该命令退出DEBUG程序,返回DOS。

[关于参数的几点说明:]
1、在DEBUG中的提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行;
2、命令是单个字母,命令和参数的大小写可混合输入
3、在DEBUG中输入或显示的数据都是十六进制形式;
4、命令和参数、参数和参数之间要用空格、逗号或制表符等分隔;
5、用“段值:偏移量”的形式来表示地址,也可用段寄存器来代表“段值”;
例如:1000:0,ds:10,cs:30等;
6、范围:用来表示地址范围,从哪个地址开始,到哪个地址结束。

它有二种表示方式:
●地址地址——前者表示起始地址,要用“段值:偏移量”来表达,
后者表示终止地址,只用“偏移量”来表示;
●地址长度——前者表示起始地址,要用“段值:偏移量”来表达,
后者表示该区域的大小,用字母’L’开头的数值来表示例如:100:50 100——段值为100,偏移量从50到100的内存区域,
100:50 L100——段值为100,偏移量从50开始的100个字节区域。

7、当命令出现语法错误时,将在出错位置显示“^ Error”。

相关文档
最新文档