DEBUG主要命令

合集下载

DEBUG命令参考_全

DEBUG命令参考_全

DEBUG调试命令锐捷网络交换机提供了丰富的debug(调试)指令,对于交换机所支持的各种协议和功能,基本上都提供了相应的调试功能,可以有效的帮助用户诊断和定位和排除在使用交换机中的各种问题。

下面列出了部分常用的debug 命令,与各协议和功能相关的更具体的debug命令和对其细节的注释,请参见本手册及命令参考手册中的各相关章节。

要使用debug功能,需要在特权用户模式下进行配置:命令功能Switch#debug ?显示所有可用的debug指令及简短的说明Switch #show debugging显示当前各个调试开关的状态Switch #debug all打开系统所有的调试开关Switch #undebug all关闭所有的调试开关Switch #debug aaa打开AAA调试开关Switch #debug acl打开ACL调试开关Switch #debug arp打开ARP调试开关Switch #debug dvmrp打开DVMRP调试开关Switch #debug filter打开过滤器调试开关Switch #debug igmp打开IGMP调试开关Switch #debug ip打开IP调试开关Switch #debug mstp打开MSTP调试开关Switch #debug multicast打开多播数据流调试开关Switch #debug pim打开PIM调试开关Switch #debug sys-guard打开sys-guard调试开关Switch #debug vlan打开VLAN调试开关首先、要打开日志功能:Switch(config) # logging on,其次、设置日志的级别为Debug:Switch(config) # logging monitor 7在Telnet客户端登陆模式下,缺省的debug调试信息不会发送到Telnet客户端,如果需要在Telnet客户端显示调试信息,则需要在该终端会话的特权用户模式下,执行如下命令:Switch #terminal monitor交换机包含有大量的调试命令,上表所列出的,仅仅是部分DEBUG的第一级命令而已,还有许多的DEBUG命令是有各自的子命令的,比如debug ip命令,后面还有许多的扩展选项:Switch #debug ip ?cache Debug IP cacheospf Debug IP OSPFpacket Debug IP packetpacket-event Debug IP packet-eventrip Debug IP RIP说明:打开调试开关,将会占用CPU资源,某些调试开关的打开,甚至会严重占用CPU资源,影响交换机运行效率,所以如果没有必要,请不要轻易打开调试开关,尤其慎用debug all 命令,在调试结束后,应注意关闭全部调试开关。

debug常见命令使用说明

debug常见命令使用说明

五、DEBUG调试程序DEBUG.EXE程序是专门为分析、研制和开发汇编语言程序而设计的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。

它能使程序设计人员或用户触及到机器内部,因此可以说它是80X86CPU的心灵窗口,也是我们学习汇编语言必须掌握的调试工具。

1)DEBUG程序使用在DOS提示符下键入命令:C>DEBUG [盘符:][路径][文件名.EXE][参数1][参数2]这时屏幕上出现DEBUG的提示符“-”,表示系统在DEBUG管理之下,此时可以用DEBUG 进行程序调试。

若所有选项省略,仅把DEBUG装入内存,可对当前内存中的内容进行调试,或者再用N和L命令,从指定盘上装入要调试的程序;若命令行中有文件名,则DOS把DEBUG 程序调入内存后,再由DEBUG将指定的文件名装入内存。

2)DEBUG的常用命令(1)汇编命令A格式:A[起始地址]功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。

若缺省起始地址,则从当前CS:100地址开始存放。

A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。

(2)反汇编命令U格式1:U[起始地址]格式2:U[起始地址][结束地址|字节数]功能:格式1从指定起始地址处开始将32个字节的目标代码转换成汇编指令形式,缺省起始地址,则从当前地址CS:IP开始。

格式2将指定范围的内存单元中的目标代码转换成汇编指令。

(3)显示、修改寄存器命令R格式:R[寄存器名]功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。

缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。

AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000DI=0000 DS=3000 ES=23A0 CS=138E IP=0000NV UP DI PL NZ NA PO NC138E:0000 MOV AX,1234-R AX ;输入命令AX 0014 ;显示AX的内容:;供修改,不修改按回车。

debug命令大全

debug命令大全
-r cx
:0014
-w
-q
冷启动:
-a 100
jmp ffff:0
int 20
-n a:
-r cx
:0007
-w
-q
2、加密dos内部命令
例如要加密 dir
用pctools或diskedit找 c:下的文件
-a 150
****:0150 db "cmos.dat",0
****:0159
-r cx
cx 0000
:60
-n save
-w
-q
-w 100 2 0 1
-q
(2)恢复cmos数据 进入debug
-a 100
****:*100 mov cx,0150
****:**** mov ah,3d
****:**** mov al,00
****:**** int 21
****:**** mov dx,1000
****:**** mov bx,ax
****:**** mov cx,0040
****:**** mov ah,3f
****:**** int 21
****:**** out 70,al
****:**** mov cx,0005
****:0115 loop 0115
****:**** in al,71
****:**** mov 【bx】,al
****:**** cmp ah,0e
****:**** jb 0123
****:**** add ah,80
-e e0:4c

debug命令大全

debug命令大全

DEBUG命令大全(看看有啥用)a) 常用DOS命令1) 查看目录命令DIR,它列出所指盘上的文件目录,如:C>DIR D:2) 拷贝命令COPY,它把一个或多个文件拷贝成副本,如:C>COPY EX1.EXE D:3) 改变当前目录,格式为:C>CD 目录名4) 退出子目录,格式为:C>CD .. ,将退出当前子目录到直接外层目录下。

b) 熟悉DEBUG的使用方法,运行各种命令,观察运行后的情况1.DEBUG程序的调用在DOS提示符下,可键入命令:C>DEBUG [d:][path][文件名]其中文件名是被调试交件的名字,它须是执行文件(EXE),在DEBUG程序调入后,出现提示符"一",此时,可键入所需的DEBUG命令.2.DEBUG的主要命令〈1〉显示内存单元内容的命令D,格式为-D[地址]或-D[范围](2)修改内存单元内容的命令E,它有两种格式1) 给定的内容代替指定范围的单元内容一E地址内容表例如其中FLWX"'"Y""'Z"和8D各占一个字节,用这五个字节代替原内存单元内容,HXH,句""'Z"将分别按它们的ASCII码值代入。

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

78是程序员键入的(3)检查和修改寄存器内容的命令R,它有三种方式1〉显示CPU内部所有寄存器内容和标志位状态,格式为-RR命令显示中标志位状态的含义如下表所示标志名置位复位溢出overflow方向direction中断interrupt符号sign零zero辅助进位auxiliary carry奇偶parity进位carry OVDNEINGZRACPECY NVUPDIPLNZNAPONC2)显示和修改某个指定寄存器内容,格式为一R寄存器名例如打入: -R AX系统将响应如下:AX F1F4:表示AX当前内容为FlF4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:-R BXBX 0369:059F则BX内容由0369改为059F3)显示和修改标志位状态,命令格式为-RF系统将给出响应,如OV DN EI NG ZR AC PE CY一这时若不作修改可按ENTER键,否则在"一'号之后键入修改值,键入顺序任意。

DEBUG的命令及功能

DEBUG的命令及功能

DEBUG的命令及功能1. A(assemble):将指令转换成机器码并存储到内存中。

-A100:在内存地址100处开始输入指令。

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

-D100200:显示内存地址从100到200的内容。

3. E(enter):修改内存中的数据。

-E1004000:在内存地址100处将数据修改为40。

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

-G100:从内存地址100处开始执行程序。

6. Q(quit):退出DEBUG。

-Q:退出DEBUG程序。

7. R(registers):显示和修改CPU寄存器的值。

-R:显示所有寄存器及其值。

-RAX1234:将AX寄存器的值修改为12348. T(trace):单步跟踪程序的执行。

-T:执行下一条指令并停止。

9. P(proceed):继续执行程序直至下一个断点或程序结束。

-P:继续执行程序。

10. U(unassemble):将机器码转换成指令。

-U100120:从内存地址100处开始将机器码转换成指令。

11. B(breakpoint):设置断点。

-B100:在内存地址100处设置断点。

12. S (search):在内存中指定的内容。

- S 100 200 "Hello": 在内存地址100到200之间字符串"Hello"。

13. L(load):加载程序到内存中。

-L100:从内存地址100处加载程序。

14. W(write):将内存中的数据写入文件。

- W 100 200 file.txt: 将内存地址100到200的数据写入到文件file.txt。

15. M(move):将内存中的数据移动到指定的地址。

-M100200300:将内存地址100到200的数据移动到地址300处。

16. X (execute):执行子程序。

-X100:从内存地址100处执行子程序。

17. H(help):显示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:A(汇编)Debug:C(比较)Debug:D(转储)Debug:E(键入)Debug:F(填充)Debug:G(转向)Debug:H(十六进制)Debug:I(输入)Debug:L(加载)Debug:M(移动)Debug:N(名称)Debug:O(输出)Debug:P(执行)Debug:Q(退出)Debug:R(寄存器)Debug:S(搜索)Debug:T(跟踪)Debug:U(反汇编)Debug:W(写入)Debug:XA(分配扩展内存)Debug:XD(释放扩展内存)Debug:XM(映射扩展内存页)Debug:XS(显示扩展内存状态)Debug命令详解Debug:A(汇编)直接将 8086/8087/8088 记忆码合并到内存。

该命令从汇编语言语句创建可执行的机器码。

所有数值都是十六进制格式,必须按一到四个字符输入这些数值。

在引用的操作代码(操作码)前指定前缀记忆码。

a [address]参数address指定键入汇编语言指令的位置。

对address 使用十六进制值,并键入不以“h”字符结尾的每个值。

如果不指定地址,a 将在它上次停止处开始汇编。

有关将数据输入到指定字节中的信息,请参看Debug E(键入)。

有关反汇编字节的信息,请参看Debug U(反汇编)说明使用记忆码段的替代记忆码为 cs:、ds:、es: 和 ss:。

远程返回的记忆码是 retf。

字符串处理的记忆码必须明确声明字符串大小。

例如,使用movsw 可以移动 16 位的字串,使用 movsb 可以移动 8 位字节串。

汇编跳转和调用汇编程序根据字节替换自动将短、近和远的跳转及调用汇编到目标地址。

通过使用near 或far 前缀可以替代这样的跳转或调用,如下例所示:-a0100:05000100:0500 jmp 502 ; a 2-byte short jump0100:0502 jmp near 505 ; a 3-byte near jump0100:0505 jmp far 50a ; a 5-byte far jump可以将 near 前缀缩写为 ne。

DEBUG命令详解

DEBUG命令详解

DEBUG调试程序的使用一、DEBUG的启动在DOS系统提示符下,运行DEBUG命令即可启动。

命令格式:DEBUG [文件名全称]功能:启动DEBUG调试程序,并把指定名字的文件装载入内存,以供调试。

说明:启动DEBUG,实际就是让计算机执行DEBUG.EXE这个调试程序。

若该程序不在当前目录下,需要在命令中指定该程序所在的位置路径(包括其所在磁盘和文件夹)。

文件名全称指定要调试的文件名及其所在的位置路径。

若指定该选项,则在启动DEBUG时把该文件装载入内存,以供调试,该文件一般是EXE文件或COM文件。

若不指定该选项,则只启动DEBUG,不装载文件。

二、DEBUG常用命令1、D——显示内存单元内容的命令格式:D[开始地址[结束地址]]说明:①若“开始地址”和“结束地址”都指定,则显示指定地址范围内的内存单元的内容;若只指定“开始地址”,省略“结束地址”,则显示从“开始地址”开始的80H个字节的内容;若“开始地址”和“结束地址”都省略,则显示从上次显示的末字节单元的下一个字节开始的80H个字节的内容。

②“开始地址”可包含段地址,若省略段地址,则默认使用DS的值作段地址。

2、E——输入内容(修改内存单元内容)命令格式:E开始地址[数据表列]说明:①若指定数据表列,则用数据表列中的数据存入从指定地址开始的内存单元中;若省略数据表列,则先显示指定开始地址的内存单元的内容,等待你修改。

若需要修改,输入其内容,按空格键显示、修改下一个内存单元内容;若不需要修改,直接按空格键显示、修改下一个内存单元内容,修改完成后按回车键。

②“开始地址”可包含段地址,若省略段地址,则默认使用DS的值作段地址。

3、F——填充内容(修改内存单元内容)命令格式:F开始地址结束地址数据表列说明:①用数据表列中的数据存入由开始地址和结束地址指定范围内的内存单元。

若数据表列中的数据少于指定地址范围的内存单元数,则循环使用表列中的数据存入内存单元,若数据表列中的数据多于指定地址范围的内存单元数,则多余的数据被忽略。

DEBUG调试命令

DEBUG调试命令

实验一 DEBUG调试命令的使用
• 实验目的:练习DEBUG常用的调试命令的 使用方法及使用时需注意的事项。 • 实验内容:常用DEBUG调试命令的使用。
实验二 数据区的移动
• 实验目的:熟悉汇编语言程序的设计,编 写数据区的移动实验程序。 • 实验内容:将以SI的内容为首地址的源串的 16个字节数据传送到以DI为首地址的目的 串中。(用两种方法实现:串的操作指 • 格式: • R :显示所有内部寄存器的内容和标志寄 存器的状态 • R [寄存器名]:显示和修改指定寄存器的内 容
5、追踪和显示命令T • • • • 格式: T [=地址] T [=地址] [条数] 其中条数决定了一共跟踪几条指令后返回 DEBUG状态
6、反汇编命令U • • • • • 格式: U [地址] U [地址范围] U 功能:将指定范围内的代码以汇编语言的 形式显示,同时显示该代码位于内存的地 址和机器码
实验三
二进制加法
• 实验目的:练习汇编语言程序设计方法, 编写二进制加法实验程序。 • 实验内容:在变量A和B开始处,各存放有 一个四字节的压缩的BCD数,将这两个数 相加,并将结果和进位标志存放在变量C处。
实验四 汇编语言程序设计(一)
• 实验目的:练习汇编语言程序设计方法, 编写数据排序实验程序。 • 实验内容:在4000h开始处存放有100个无 序的无符号数,试将这些数按照升序的顺 序排列。
实验五 汇编语言程序设计(二)
• 实验目的:练习汇编语言程序设计方法, 编写查找相同数的个数实验程序。 • 实验内容:在数据段起始地址1600h,长度 为100的字节串中,查找‘&’字符的个数, 并将个数存放在4000h单元中。(可以采用 REP SCASB和MOV指令)

DEBUG命令的功能及使用

DEBUG命令的功能及使用

DEBUG命令的功能及使用功能:1.单步执行:DEBUG命令可以逐条执行程序的指令,并在每个指令被执行后停止程序的执行。

这使得开发人员能够逐步查看程序的执行过程,以便找到潜在的错误和问题。

2.查看和修改内存:DEBUG命令允许开发人员查看程序运行时的内存状态,并且提供了一些命令来读取和修改内存中的数据。

这对于调试内存泄漏、内存溢出和指针问题非常有用。

3.断点:DEBUG命令可以在程序的特定位置设置断点,一旦程序执行到这个位置,就会自动停止执行。

这使得开发人员可以在关键点查看程序的状态,以便分析问题。

4.寄存器查看和修改:DEBUG命令允许开发人员查看和修改程序运行时的寄存器值。

这对于理解程序如何处理数据以及跟踪特定变量的值非常有用。

5. 注册表和文件系统访问:DEBUG命令可以访问Windows注册表和文件系统,以检查和修改系统的配置和状态。

这对于调试与注册表和文件系统相关的问题非常有用。

使用:1.运行DEBUG命令:在命令行窗口中输入"DEBUG"命令,然后按下回车键即可运行DEBUG命令。

DEBUG命令会显示一个提示符,表示它已经准备好接受命令。

2.设置断点:使用"t"命令可以在程序中设置断点。

例如,要在程序的第10行设置一个断点,可以输入"t10"命令。

3.单步执行:使用"p"命令可以逐步执行程序的指令。

每次执行一条指令后,DEBUG命令会显示当前指令的汇编代码和程序计数器的值,并等待用户输入下一个命令。

4.查看内存:使用"d"命令可以查看指定内存地址的内容。

例如,输入"d1000"命令可以查看地址为1000的内存单元的内容。

5.修改内存:使用"e"命令可以修改指定内存地址的内容。

例如,输入"e100090"命令可以将地址为1000的内存单元的内容修改为90。

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的主要命令实验目的:掌握调试程序DEBUG的使用方法。

实验内容:通过对一个汇编程序进行各种调试和检测,掌握调试程序DEBUG的使用方法。

DEBUG是为汇编语言设计的一种调试工具,主要用于检查、修改和执行汇编语言程序。

它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。

DEBUG的作用:1.为用户提供一个可控制的交互式汇编语言运行环境,以控制和监督被调试程序的执行情况。

由于DEBUG操作容易,可以直接和计算机的寄存器以及内存打交道,可以用来汇编简单程序。

2.用户可以直接在程序中修改错误,并立即执行程序以判断这样的修改是否已经奏效,而不必对程序重新汇编来判断修改的效果。

3.DEBUG可以访问DOS的禁区,这样如果引导扇区遭病毒感染,还可以用DEBUG编程加以清除。

步骤:一.进入DEBUG (下文方括号中的项表示任选项,“<CR>”表示回车键)1.进入DOS2.进入C:盘ASM目录3.在DOS提示符下,键入命令debug [执行文件全名]〈CR〉(执行文件指“.exe”文件或“.com”文件)便可进入DEBUG。

若指定文件名,则将该文件调入DEBUG。

进入DEBUG后,出现“–”提示符,即可用DEBUG命令来调试程序。

二.DEBUG命令的规定:1.DEBUG命令中的所有字母大小写皆可;2.DEBUG命令中的数字都是十六进制的;3.DEBUG命令都是一个字母,后面有一个或多个参数;4.命令只有在按下回车键后才开始执行,任何一个命令都可以用CTRL+BREAK键来结束其执行,返回提示符“—”状态;5.命令和参数之间可以用定界符分隔,但只有在两个相邻的十六进制数之间的定界符才是必须的;6.在命令执行过程中,可以用CTRL+NUM LOCK键停止屏幕显示的卷动,以便于查看,按下任何其他键,继续卷动。

三.DEBUG的主要命令:1.显示∕改写寄存器内容命令R格式一:–r<CR> 功能:显示CPU内所有寄存器内容和标志位状态。

DEBUG命令详解1

DEBUG命令详解1

DEBUG命令详解DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。

它可以用于逐指令执行某个程序以验证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。

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 参数指定内存位置。

Address 是一个包含字母段记录的二位名称或一个四位字段地址加上一个偏移量。

可以忽略段寄存器或段地址。

a,g,l,t,u 和w 命令的默认段是CS。

所有其他命令的默认段是DS。

所有数值均为十六进制格式。

有效地址如下:CS:010004BA:0100在段名和偏移量之间要有冒号。

指定有效范围项Debug 命令中的range 参数指定了内存的范围。

实验一--掌握DEBUG-的基本命令及其功能

实验一--掌握DEBUG-的基本命令及其功能

实验一--掌握DEBUG-的基本命令及其功能实验一掌握DEBUG 基本命令及其功能【上篇】查看CPU和内存,用机器指令和汇编指令编程一.实验目的:掌握DEBUG 的基本命令及其功能掌握win7 win8 使用DEBUG功能二.实验内容:1. 预备知识:Debug的使用(1) 什么是Debug?Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。

使用它,可以查看CPU 各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。

(2) 我们用到的Debug功能●用Debug的R命令查看、改变CPU寄存器的内容;●用Debug的D命令查看内存中的内容;●用Debug的E命令改写内存中的内容;●用Debug的U命令将内存中的机器指令翻译成汇编指令;●用Debug的T命令执行一条机器指令;用Debug的A命令以汇编指令的格式在内存中写入一条机器指令。

(3) 进入DebugDebug是在DOS方式下使用的程序。

我们在进入Debug前,应先进入到DOS方式。

用以下方式可以进入DOS:①重新启动计算机,进入DOS方式,此时进入的是实模式的DOS。

②在Windows中进入DOS方式,此时进入的是虚拟8086模式的DOS。

三.实验任务解决方案1. 从网上下载Dosbox和debug.exe(文件夹中有)。

2. d ebug.exe放在D:根目录,然后安装,安装完成以后,点击快捷方式进入Dos界面:3.输入mount c d:\ 接着输入c:01 d8 add ax,bx89 c3 mov bx,ax01 d8 add ax,bxb8 1a 00 mov ax,001AH bb 26 00 mov bx,0026H 00 d8 add al,bl00 dc add ah,bl00 c7 add bh,alb4 00 mov ah,000 d8 add al,bl04 9c add al,9CH提示:可用E命令和A命令以两种方式将指令写入内存。

debug指令详解

debug指令详解

debug指令详解一、DEBUG概述DEBUG是在DOS状态下面供程序员使用的程序调试工具。

它可以用来检查内存中任何地址中的内容以及修改特定地址中的内容。

DEBUG还可以用于逐指令执行某个程序,追踪程序的执行过程,比较一条指令执行前后数值变化情况,读写文件与磁盘扇区。

此外,DEBUG还可以用于读写端口中的数值。

在DEBUG状态下,所有数据都作为字节序列,可以用DEBUG把任何类型的文件读入内存中。

DEBUG能够处理的数据为两种: 十六进制数和ASCⅡ码,使用两位数表示十六进制数据(0~9,A~F)。

在DEBUG中涉及内存中的数据时,要指定数据所在的内存单元的地址,地址的输入格式是: [段地址]: [位移]。

如果没有输入地址,DEBUG将假定为当前内存段,从位于地址100H的字节开始。

前100H字节保留给程序段前缀使用(称PSP结构,包含程序执行的各种信息),该区域用于建立DOS与程序之间的联系。

在DEBUG中,使用四位十六进制数表示地址(0~9,A~F)。

DEBUG输入数据时有两种方法: 提示方法和非提示方法。

在提示方法下,输入要求输入数据的命令,后跟保存数据的地址。

执行后可以看到该地址中已有的内容及一个冒号提示符。

此时可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到“—”提示符。

在非提示方法下,输入保持数据的内存地址以及要输入的数据。

DEBUG的启动:进入DOS 状态下,键入DEBUG ‏,按ENTER键,如: C:\>DEBUG ‏,则屏幕显示:-符号“-”是进入DEBUG的提示符,在该提示符下可键入任意DEBUG命令。

DEBUG的退出:在DEBUG的提示符后输入Q命令,按ENTER键,则退出DEBUG返回DOS。

DEBUG的使用:在DEBUG的提示符后输入DEBUG命令,按ENTER键。

二、DEBUG 命令详解★A命令格式:A[地址]功能:将指令直接汇编成机器码输入到内存中。

实用debug命令集锦

实用debug命令集锦

实用debug命令集锦1. 非物理0磁道坏软盘的修复此种损坏从软盘盘面上来看并没有明显的划伤和霉变。

一般可以恢复其数据,也可是软盘重新在利用。

处理方法如下:ⅰ. 进入debugⅱ. 取一张引导区没有损坏的好磁盘,插入软驱-l 100 0 0 1ⅲ. 插入损坏的磁盘到软驱-w 100 0 0 1-q注意:好盘与坏盘容量必须相同2. 物理0磁道坏软盘中的数据读取对于0磁道损坏的磁盘,一般来说是应该抛弃了,当你也不妨试一试已下方法:磁化处理:用较强的磁铁在靠近坏磁盘的表面处反复移动,切不可碰到磁盘介质,以免划伤表面,然后在试试格式化。

软盘换面:小心的将磁盘打开,坚磁片与金属芯片分开,方面后再按原来的方法粘在一起即可,在重新格式化。

diskfix:对于diskfix想必大家都用的比较多了,里面的磁盘修复功能很好用的。

能修复大多数磁盘表面错误。

3. 硬盘启动失败处理在正常机上格式化一张软盘,无其它数据进入debug-l 0 2 0 1-w 0 0 0 1-q用系统盘启动故障机后在进入debug-l 0 0 0 1-w 0 2 0 1-q4. 软盘不能正确读取解决方法如果使用软盘时出现如下提示general failure error reading drive a可以用以下方法解决:将一张好盘插入软驱进入debug-a 100****:*100 mov al,0****:**** mov cx,1****:**** mov dx,0****:**** mov bx,1000****:**** int 25****:**** int 20回车-g=0100插入坏盘并进入debug-a 200****:*100 mov al,1****:**** mov cx,1****:**** mov dx,0****:**** mov bx,1000****:**** int 26****:**** int 20回车-g=2005. cmos 数据的保存,恢复cmosram的’地址口’的口地址为70h ’数据口’的口地址为 71h 读取时只需将读的cmosram的地址送到70h,随后就可以从71 h中得到所需数据。

DEBUG命令集锦

DEBUG命令集锦

DEBUG是DOS操作系统中的一个外部命令,从DOS 1.0起就带有此命令。

利用此命令下的子命令,可以查看和修改寄存器、内存单元的内容;输入并执行汇编指令;可以查看(反汇编)代码段中的指令;可以对端口进行操作;可以对磁盘和磁盘文件进行操作;可以调试简单程序。

因此可见此命令的重要性了。

虽然此命令的功能非常强大,可以解决许多问题,可是对许多人来说,尤其是初学者来说,却非常不易掌握。

因此,现将学习汇编语言常用到的DEBUG的命令详细介绍一番,以让大家知道它的使用。

其他命令请参考其他详细资料。

1. A(汇编,ASSEMBLE)作用:直接将 8086/8087/8088 记忆码合并到内存(默认存到代码段中)。

该命令从汇编语言语句创建可执行的机器码。

所有数值都是十六进制格式,必须按一到四个字符输入这些数值。

在引用的操作代码(操作码)前指定前缀记忆码。

格式:A [ADDRESS]说明:ADDRESS指定键入汇编语言指令的位置。

对 ADDRESS 使用十六进制值,但键入时不以“H”字符结尾,如果十六进制数以字母开始,也不要在前面加“0”。

如果不指定地址,A 将在它上次停止处开始汇编。

例:在代码段中偏移地址为0200处存入指令MOV AX,BX (假定CS=0B49H)A 命令支持两个常用的伪指令:DB 操作码,将字节值直接汇编到内存,DW 操作码,将字值直接汇编到内存。

以下是两个伪指令的范例:A 命令支持所有形式的寻址方式和所有操作码同义词。

2. C(内存比较,COMPARE)作用:比较两个内存区域中的数据是否相同格式:C RANGE ADDRESS说明:①RANGE指定要比较的内存第一个区域的起始和结束地址,或起始地址和长度。

②ADDRESS指定要比较的第二个内存区域的起始地址。

如果内存第一个区域的内容和内存第二个区域的内容相同,DEBUG 将不显示任何内容而直接返回到DEBUG 提示符。

如果有差异,DEBUG 将按如下格式显示:ADDRESS1 BYTE1 BYTE2 ADDESS2例:比较DS:0000-DS:000F和ES:0000-ES:000F区域的数据以下命令具有相同效果:C 100,10F 300C 100 L10 300每个命令都对 100H 到 10FH 的内存数据块与 300H 到 30FH 的内存数据块进行比较。

DEBUG的命令及功能

DEBUG的命令及功能

DEBUG的命令及功能
在软件开发和调试过程中,调试(Debugging)是一个关键步骤,它用于定位和解决代码中的错误和缺陷。

为了有效地进行调试,开发人员经常使用调试工具和命令来检查和分析代码的执行过程。

下面是一些常见的调试命令及其功能。

总结起来,调试命令是开发人员在调试过程中使用的工具,旨在帮助他们分析代码的执行过程、检查变量的值和状态,并解决代码中的错误和缺陷。

在大多数集成开发环境(IDE)和调试器中,这些命令通常都有单独的按钮、快捷键和菜单选项,使开发人员可以方便地使用它们。

调试命令的功能是非常丰富和多样化的,可以根据开发人员的需求和调试场景进行选择和配置。

Debug主要命令

Debug主要命令

Debug主要命令1. A[地址] 汇编命令功能: 将指令直接汇编成机器码输入到内存中。

说明: 用于小段程序的汇编及修改目标程序,所有输入的数字均采用十六进制,用户装入内存的汇编语句是连续存放的,若没有指定地址,并且前面没有使用汇编命令,该语句被汇编到 CS:0100区域。

-a 010008F1:0100 MOV AH,0908F1:0102 MOV DX,10908F1:0105 INT 21H08F1:0109 db 'HELLO WORLD!$'08F1:0115-g2.D[地址] 或D[起始地址][目的地址] 转储命令功能: 以内存映象方式显示内存中的信息。

说明: 转储用左右两部分显示内存映象内容,左边以十六进制,右边以ASCII字符显示,所有不可打印字符用句号(.)表示。

每行显示16个字节的内容,在第八和第九个字节之间有一个连字符 - 此命令隐含的段地址为DS的值。

若未指定起始地址,则D命令从显示的最后一个单元的下一个单元开始显示,若以前没有使用给D命令,则从初使化的段寄存器的内容,加上地址偏移量 0100H 开始显示。

3.E[地址] [字节串) 修改内存命令功能: 从指定的地址开始修改内存值。

说明: 若地址部分只输入偏移量,则 E 命令认为段包括在DS寄存器中。

命令格式有两种:其一是用命令中包含的字节串替换从指定的地址开始的多个字节的内容;其二是命令后不跟字节串,则允许按顺序方式显示和修改字节,按下空格键为显示下一字节内容,若想修改,直接输入相应值。

4.F[地址范围] [字节或字节串] 填写命令功能: 将要填写的字节或字节串填入由地址范围指定的存储器中。

5.G[=起始地址] [[断点]……] 执行命令功能: 执行正在调试的程序,当达到断点时停止执行,并且显示寄存器标志和下一条要执行的命令。

说明: 如果没有指定起始地址,那么当前指令地址由CS,IP寄存器的内容来决定,如果用户指定起始地址就从指定的起始地址开始执行。

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

附录六DEBUG主要命令
DEBUG 是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段.
6.1 DEBUG 程序的调用
在DOS 的提示符下,可键入命令:
C>DEBUG [d:][path][filename[.ext]][parm1][parm2]
其中,文件名是被调试文件的名字.如用户键入文件名,则DEBUG将指定的文件装入存储器中,拥护可对其进行调试.如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试.命令中的d指定驱动器,path为路径,parm1和parm2则为运行被调试文件时所需要的命令参数.
在DEBUG程序调入后,将出现提示符,此时就可用DEBUG命令来调试程序.
6.2 DEBUG的主要命令
1)显示存储单元的命令D(DUMP),格式为:
_D[address]或
_D[range]
例如,按指定范围显示存储单元内容的方法为:
-d100 120
18E4 : 0100 C7 06 04 02 38 01 C7 06—06 02 00 02 C7 06 08 02 G…8.G…..G…
18E4 : 0110 02 02 BB 04 02 E8 02 00—CD 20 50 51 56 57 8B 37 ..;..h..M PQVW.7 18E4:0120 8B
其中0100至0120是DEBUG显示的单元内容。

左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,·表示不可显示的字符。

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

如果只指定首地址,则显示从首地址开始的80个字节的内容。

如果完全没有指定地址,则显示上一个D 命令显示的最后一个单元后的内容。

2)修改存储单元内容的命令有两种。

·输入命令E(Enter),有两种格式如下:
第一种格式可以用给定的内容表来替代指定范围的存储单元内容。

命令格式为:
—E address [list]
例如,—e ds :100 F3’XYZ’8D
其中F3,‘X’,‘Y’,‘Z’和8D各占一个字节,该命令可以用这五个字节来替代存储单元DS:0111到0104的原先的内容。

第二种格式则是采用逐个单元相继修改的方法。

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

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

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

3)检查和修改寄存器内容的命令R(Register),它有三种格式如下:
·显示CPU内所有寄存器内容和标志位状态,其格式为:
—R
例如:
—r
AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC
18E4 : 0100 C70604023801 MOV WORD PTR [0204],0138 DS : 0204=0000
其中标志位状态的含义:
状态标志显示形式
·显示和修改某个寄存器内容,其格式为:
—R register name
例如,键入
—r ax
系统将响应如下:
AX F1F4

即AX寄存器的当前内容为F1F4,如不能修改则按Enter键,否则,可键入欲修改的内容,如:—r bx
BX 0369
:059F
则把BX寄存器的内容修改为059F。

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

4)运行命令G(G0),其格式为
—G[=address1][ =address2[sddress3 ……] ]
其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。

后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。

5)跟踪命令T(Trace),有两种格式;
·逐条指令跟踪
—T[=address]
从指令地址执行一条指令后停下来,显示所有寄存器内容及标志位的值。

如未指定地址则从当前的CS:IP开始执行。

·多条指令跟踪
-T[=address][value]
从指定地址起执行n条指令后停下来,n由value指定。

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

必须注意:DEBUG把键入的数字均看成十六进制数,所以如要键入十进制数,则其后应加以说明,如100D。

7)反汇编命令U(Unassemble),有两种格式。

·从指定地址开始,反汇编32个字节,其格式为:
—U[address]
例如:
—u100
18E4:0100 C70604023801 MOV WORD PTR[0204],0138
18E4:0106 C70606020002 MOV WORD PTR[0206],0200
18E4:010C C70608020202 MOV WORD PTR[0208],0202
18E4:0112 BB0402 MOV BX,0204
18E4:0115 E80200 CALL 011A
18E4:0118 CD20 INT 20
18E4:011A 50 PUSH AX
18E4:011B 51 PUSH CX
18E4:011C 56 PUSH SI
18E4:011D 57 PUSH DI
18E4:011E 8B37 MOV SI,[BX]
如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。

·对指定范围内的存储单元进行反汇编,格式为:
—U[range]
例如:
—u100 10c
18E4:0100 C70604023801 MOV WORD PTR[0204],0138
18E4:0106 C70606020002 MOV WORD PTR[0206],0200
18E4:010C C70608020202 MOV WORD PTR[0208],0202

—u100 112
18E4:0100 C70604023801 MOV WORD PTR[0204],0138
18E4:0106 C70606020002 MOV WORD PTR[0206],0200
18E4:010C C70608020202 MOV WORD PTR[0208],0202
可见这两种格式是等效的。

8)命名命令N(Name),其格式为:
—N filespecs [filespecs]
命令把两个文件标志符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入或存盘。

Filespecs的格式可以是:
[d:][path] filename[.ext]
例如,
—N myprog
—L

可把文件myprog装入存储器。

9)装入命令L( Load), 有两种功能。

·把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中。

其格式为:
—L [address[drive sector sector]
·装入指定文件,其格式为:
—L[address]
此命令装入已在CS:5CH中格式化了的文件控制块所指定的文件。

如未指定地址,则装入CS :0100开始的存储区中。

10)写命令W(Write),有两种功能。

·把数据写入磁盘的指定扇区。

其格式为:
—W address drive sector sector
·把数据写入指定的文件中。

其格式为:
—W[address]
此命令把指定的存储区中的数据写入由CS:5CH处的文件控制块所指定的文件中。

如未指定地址则数据从CS:0100开始。

要写入文件的字节数应先放入BX和CX中。

11)退出DEBUG命令Q(Quit),其格式为:
—Q
它退出DEBUG,返回DOS。

本命令并无存盘功能,如需存盘应先使用W命令。

相关文档
最新文档