调试程序Debug常用命令
debug g命令用法

debug g命令用法一、概述debug g命令是Git版本控制系统中的一个重要工具,用于调试和追踪Git 仓库中的变更。
通过使用debug g命令,开发者可以更好地理解代码变更的历史和流程,从而快速定位和解决问题。
二、常用debug g命令1. git log:用于查看Git仓库的变更历史记录,包括提交ID、提交者、提交时间等信息。
2. git blame:用于查看指定文件每一行代码的变更历史,帮助开发者快速定位代码的修改人。
3. git diff:用于比较两个提交之间的差异,生成差异输出,帮助开发者理解代码的变更内容。
4. git reflog:用于查看Git仓库中所有引用日志,帮助开发者追踪分支和标签等操作的历史记录。
5. git bisect:用于在多个提交之间进行二分查找,定位到问题的根源。
1. 查看提交历史记录:命令:git log -n <数量>示例:git log -n 10解释:该命令用于查看最近<数量>个提交的历史记录,可以用于查找问题的根源。
2. 查看文件变更历史:命令:git blame <文件路径>示例:git blame main.c解释:该命令用于查看指定文件<文件路径>的每一行代码的变更历史,可以帮助开发者快速定位代码的修改人。
3. 比较两个提交之间的差异:命令:git diff <commit1> <commit2>示例:git diff c054646b0335834f6c19f58f8362b5d8f84b3e6c6 HEAD~1解释:该命令用于比较<commit1>和<commit2>之间的差异,生成差异输出,帮助开发者理解代码的变更内容。
其中,<commit1>表示要比较的第一个提交,<commit2>表示要比较的第二个提交。
1. 使用分支和标签进行追踪:使用git reflog可以查看所有引用日志,包括分支和标签等操作的历史记录。
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 参数指定内存位置。
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"命令可以让程序以单步执行的方式运行。
java debug 参数

java debug 参数Java Debug参数在软件开发过程中,调试是一个非常重要的环节。
当程序出现问题时,我们需要通过调试来找出问题所在并进行修复。
Java作为一种广泛使用的编程语言,提供了丰富的调试工具和参数来帮助开发人员进行调试。
本文将介绍一些常用的Java Debug参数,帮助读者更好地理解和使用它们。
一、-Xdebug参数-Xdebug参数用于开启Java的远程调试功能。
在IDE中使用调试功能时,通常需要在程序启动时指定该参数,并指定调试器监听的端口号。
例如,可以使用以下命令行启动程序并开启调试功能:java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address= 5005 Main其中,-Xrunjdwp参数用于指定调试器的相关配置,transport参数指定调试器与程序之间的通信方式,server参数指定调试器是否作为服务器等待调试器连接,suspend参数指定程序启动后是否等待调试器连接,address参数指定调试器监听的端口号。
二、-Xnoagent参数-Xnoagent参数用于关闭Java的默认调试代理。
在某些情况下,我们可能不希望使用Java默认的调试代理,而是使用其他调试工具。
通过指定-Xnoagent参数,可以禁用Java的默认调试代理,从而使用其他调试工具进行调试。
三、-Xrunjdwp参数-Xrunjdwp参数用于指定Java调试代理的相关配置。
通过-Xrunjdwp参数,可以指定调试代理与调试器之间的通信方式、端口号等。
例如,可以使用以下命令行启动程序并开启调试代理:java -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address= 5005 Main其中,transport参数指定调试代理与调试器之间的通信方式,server参数指定调试代理是否作为服务器等待调试器连接,suspend参数指定程序启动后是否等待调试器连接,address参数指定调试代理监听的端口号。
实验一Debug命令的使用

实验一Debug命令的使用实验一Debug命令的使用一、实验说明1、 DEBUG简介DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。
在汇编语言程序调试中很常用。
DEBUG的提示符是“-”,所有DEBUG调试命令军在此提示符下输入。
DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。
DEBUG命令的使用注意问题:(1)字母不分大小写(2)只使用十六进制数,但没有带后缀字母“H”(3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。
(4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。
2、 Debug的调入和退出以Windows环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态,如:C:\Documents and Settings\mjy>然后输入命令:>Debug进入Debug调试状态,出现Debug命令提示府“-”,在此提示符下可运行所需要的Debug 命令了。
退出Debug的命令:Q3、 Debug常用命令(1)汇编命令A,格式为:- A [地址]功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。
若不指定地址,则系统从默认的地址开始存放。
按回车键退出汇编状态应用:用于调试一条指令或几条指令组成的一个程序段。
(2)显示和修改寄存器命令R,格式为:- R [寄存器名]功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修改;若不要修改,则按Enter 健。
若未指定寄存器,则默认为显示所有寄存器的内容。
应用:常用于通过寄存器的值查看指令的执行结果。
(3)内存单元内容的命令E,格式为:- E 地址[内容表]功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束。
DEBUG使用总结

一、DEBUG的主要命令A命令功能: 将助记符指令转换为机器指令码存储在指定的内存单元,即汇编过程格式1: Axxxx:0100 助记符指令1(ENTER)xxxx:xxxx 助记符指令2(ENTER)……xxxx:xxxx ENTER结束功能: 逐次将助记符指令对应的指令码存入从CS: 0100h起的连续的内存单元格式2:A 起始地址start-addrxxxx:0100 助记符指令1(ENTER)xxxx:xxxx 助记符指令2(ENTER)……xxxx:xxxx ENTER结束功能: 逐次将助记符指令对应的指令码存入从CS: star-addr起的连续的内存单元注: 指令中可以包含数据定义伪指令DB/DW等语句D命令功能: 查看指定内存单元的内容格式1: D [起始地址start-addr [L长度length]]功能: 显示从起始地址start-addr开始的length个字节,省略start-addr时从DS:0100h开始,省略长度length时默认值为80H(128)注: start-addr可以为偏移地址, 此时其默认的段基址为DS;也可以显式地按段地址:偏移地址格式指明完整的逻辑地址, 段地址不一定是段寄存器, 还可以是任意16位地址格式2: D[起始地址start-addr 终结地址end-addr]功能: 显示从起始地址start-addr开始到结束地址end-addr之间的字节注: start-addr和end-addr同时为偏移地址时默认的段基址为DS;start-addr采用段地址:偏移地址格式指明时, end-addr可以不必再指明段地址, 直接以偏移地址形式给出(start-addr和end-addr的段地址始终相同);当start-addr和end-addr的偏移地址相同时只显示该存储单元的字节.E命令功能: 修改指定内存单元的内容格式1: E 起始地址start-addr 字节数据1 字节数据2 … 字节数据n功能: 逐次用后面的字节数据修改从起始地址起的连续内存单元的内容格式2: E 起始地址start-addr(按ENTER)起始地址该内存单元的原值.待输入新值/空格键功能:在提示情况下逐个修改从起始地址start-addr开始的字节数据的值, 输入空格表示不做修改, 直至输入ENTER键结束G命令功能: 执行正在调试的汇编程序至指定的断点格式: G [start-addr] break-addr1[, break-addr2, …]功能:star-addr是指令码的起始偏移地址, break-addr是断点处的偏移地址, 段地址均为CS, 可以指定多个断点位置P命令功能: 执行INT, CALL, LOOP及重复串指令(REP等)直至下一条指令格式: P [start-addr] [n]功能:star-addr是待执行指令码的起始偏移地址, n是往下执行指令的条数Q命令功能: 退出debug格式: QR命令功能:显示和修改寄存器的内容格式1:R;显示所有寄存器的内容格式2: R 寄存器名;显示指定寄存器的值, 再按ENTER后键入数值可修改该寄存器的值格式3:R F;显示标志寄存器中各标志位的值标志位符号的意义如下:标志位符号意义标志位1标志位0OF 溢出(是/否) OV NVDF 方向(减/增) DN UPIF 中断(允许/关闭)EI DISF 符号(负/正) NG PLZF 零(是/否) ZR NZAF 辅助进位(是/否)AC NAPF 奇偶(偶/奇) PE POCF 进位(是/否) CY NCT命令功能: 以单步方式执行指定的指令代码格式1: T功能: 以单步方式执行从CS:IP开始的1条指令格式2: T 指令条数n功能: 以单步方式执行从CS:IP开始开始的n条指令U命令功能: 将内存单元的机器指令码转换为助记符指令,即反汇编过程格式1: U 起始地址start-addr功能: 将从start-addr开始的32个字节的指令码转换为助记符格式2: U 起始地址start-addr终结地址end-addr功能: 将从start-addr开始至终结地址end-addr之间的指令码转换为助记符二、DEBUG的相关说明1.debug默认所有的数值都是16进制的,且无需在最后添加后缀h;2.debug不区分字母的大小写;3.快捷键: F1键--逐个重复前一条命令的字符,F3键--重复前面整条命令;4.在dos系统中文件名的最大长度为8个字符,扩展名的最大长度为3个字符.在给asm文件命名时若超过8个字符,虽然可以编译生成obj文件但在连接时却生成不了exe文件,从而引发一些错误.注意文件名不要超过8个字符;5.对于32位指令,debug并不显示其助记符,而是会以DB开头显示,这与数据定义伪指令不同;6.在[EA](EA为常数)作操作数时(如MOV 寄存器,[EA]和MOV [EA],寄存器),若不在[EA]前加段前缀, 则debug会将其视为常数EA而非偏移地址,此时必须显式指明段前缀.三、用DEBUG调试程序1.顺序指令的调试调试程序的指令格式路径>debug filename.exe接着可用R指令查看各寄存器的值, 说明如下:1)CX的值为整个程序的指令码的字节总数;2)CS:IP指向第一条指令, (CS)=(DS)+10h, (IP)=0000h, 这是因为程序在内存中的起始地址是DS:0000h,但前256个字节单元用于PSP,所以从(CS+10h): 0000h才是程序的指令码.用U命令可以查看程序的助记符指令下面以程序test.asm为例说明, 其源代码如下:.model small.databuff db 2 dup(?).codestart:mov ax,@datamov ds,axmov ax,100mov bl,3div blmov buff,almov buff+1,ahmov ah,4chint 21hend start可知数据段的段基址为1450h, 而buff内存的偏移地址为0008h, 从144F:00~144F:16都是源程序的机器码, 共计17个字节再接着可用T命令单步调试每单步执行一条指令, 都会显示执行指令后的寄存器的内容注意IP的变化代表了上一条指令的机器码长度下面执行3条指令, 如下所示:可以看到进行除法运算后AL=21h=33(商), AH=1h(余数), 同时提示下一条指令为: MOV [0008H], AL这里偏移量0008h就是buff的偏移量, 同时右下角显示了该内存单元的当前内容为14h上面在执行完商和余数的MOV指令后, 用D指令查看buff及其后一个单元的内容, 分别是商21h及余数1h, 程序执行完全正确.最后在单步执行INT 21H指令时要用P指令, 此时会显示程序正常结束字样!2.循环结构的调试以testloop.asm为例:.model small.databuff dw ?.codestart:mov ax,@datamov ds,axmov cx,9mov ax,2again:add ax,axloop againmov buff,axmov ah,4chint 21hend start对循环结构的调试方法是:只需调试2~3次循环即可确定循环逻辑是否正确,接着可让程序直接执行到循环结束,然后再单步调试.让程序执行到某个断点位置: G命令断点偏移地址让程序执行到循环结束: 在调试LOOP指令时使用P命令。
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的启动在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开始地址结束地址数据表列说明:①用数据表列中的数据存入由开始地址和结束地址指定范围内的内存单元。
若数据表列中的数据少于指定地址范围的内存单元数,则循环使用表列中的数据存入内存单元,若数据表列中的数据多于指定地址范围的内存单元数,则多余的数据被忽略。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20122012-4-27
7
2)D命令(显示内存单元内容) ) 命令 显示内存单元内容) 命令(
格式3:_D DS: 长度↙ 格式3:_D DS:开始偏移地址 L 长度↙ 作用: 作用:显示指定段中从开始偏移地址起由长度指定的 字节单元的内容。 字节单元的内容。 :_D DS: 例:_D DS:4 L 5↙
20122012-4-27
2
1)R命令(查看和修改寄存器内容) ) 命令 查看和修改寄存器内容) 命令(
格式1:_R (_r 格式1:_R↙(_r↙) 作用:显示所有寄存器的内容。 作用:显示所有寄存器的内容。
20122012-4-27
3
1)R命令(查看和修改寄存器内容) ) 命令 查看和修改寄存器内容) 命令(
20122012-4-27
17
6)T命令(单步运行或跟踪) 命令(单步运行或跟踪)
格式2:_T 偏移地址↙ 格式2:_T =偏移地址↙ 作用:执行指定的偏移地址处的一条指令, 作用:执行指定的偏移地址处的一条指令,执行完后 停下来, 停下来,并显示所有寄存器内容及状态标志位的值和 下一条要执行的指令。 下一条要执行的指令。 :_T 0105↙ 例:_T =0105↙
20122012-4-27
9
3)E命令(修改内存单元内容) 命令(修改内存单元内容)
格式1:_E DS: 内容表↙ 格式1:_E DS:偏移地址 内容表↙ 作用: 作用:用内容表中内容去替换从偏移地址开始的内存 单元的内容。 单元的内容。 :_E DS: dsx’ AA↙ 例:_E DS:4 ‘dsx FF 00 AA↙
调试程序Debug 调试程序Debug 常用命令简介) (常用命令简介)
Debug的启动 Debug的启动
“开始”-“运行”-CMD-确定-进入 开始” 运行” CMD-确定- DOS界面 提示符后输入Debug- DOS界面-提示符后输入Debug-回车 界面- 开始” 所有程序” 附件” “开始”-“所有程序”-“附件”- 命令提示符” 进入DOS界面 界面- “命令提示符”-进入DOS界面-提示符 后输入Debug- 后输入Debug-回车
20122012-4-27
24
格式2:_U 偏移地址↙ 格式2:_U 偏移地址↙ 作用:从指定的偏移地址开始,反汇编32个字节。 32个字节 作用:从指定的偏移地址开始,反汇编32个字节。 例:_U 0100↙ :_U 0100↙
20122012-4-27
15
5)U命令(反汇编) 命令(反汇编)
格式3:_U 地址范围↙ 格式3:_U 地址范围↙ 作用:将地址范围内的内容进行反汇编。 作用:将地址范围内的内容进行反汇编。 例:_U 0105 010B↙ :_U 010B↙
状态 标志名称 溢出标志OF 溢出标志 方向标志DF 方向标志 中断标志IF 中断标志 符号标志SF 符号标志 零标志ZF 零标志 辅助进位标志AF 辅助进位标志 奇偶标志PF 奇偶标志 进位标志CF 进位标志
20122012-4-27
标志= 标志=1 OV DN EI NG ZR AC PE CY
20122012-4-27
16
6)T命令(单步运行或跟踪) 命令(单步运行或跟踪)
格式1:_T 格式1:_T↙ 作用:执行由CS IP所指示的一条指令 CS: 所指示的一条指令, 作用:执行由CS:IP所指示的一条指令,执行完后停 下来, 下来,并显示所有寄存器内容及状态标志位的值和下 一条要执行的指令。 一条要执行的指令。 格式:_ :_T 格式:_T↙
20122012-4-27
8
2)D命令(显示内存单元内容) ) 命令 显示内存单元内容) 命令(
格式4:_D DS:地址范围↙ 格式4:_D DS:地址范围↙ 作用:显示指定段中指定范围内字节单元的内容。 作用:显示指定段中指定范围内字节单元的内容。 :_D DS: 10↙ 例:_D DS:4 10↙
20122012-4-27
18
6)T命令(单步运行或跟踪) 命令(单步运行或跟踪)
格式3:_T 格式3:_T =偏移地址 N↙ 作用:从指定的偏移地址起执行N条指令, 作用:从指定的偏移地址起执行N条指令,每执行一条 指令后,显示寄存器内容和状态值,直至n 指令后,显示寄存器内容和状态值,直至n条指令执行 完后停止。 完后停止。 :_T 例:_T =0105 4↙
20122012-4-27
11
4)A命令(汇编) 命令(汇编)
格式1:_A 格式1:_A↙ 作用:从代码段中偏移地址0100H 第一次) 0100H( 作用:从代码段中偏移地址0100H(第一次)开始输入 汇编语句, 汇编语句,并把它们汇编成机器代码顺序存放在代码 段中。 段中。 :_A 例:_A↙
20122012-4-27
6
2)D命令(显示内存单元内容) ) 命令 显示内存单元内容) 命令(
格式2:_D DS:偏移地址↙ 格式2:_D DS:偏移地址↙ 作用:显示指定段中从指定的偏移地址开始的128 128个字 作用:显示指定段中从指定的偏移地址开始的128个字 节单元的内容。 节单元的内容。 例:_D DS:4↙ :_D DS:
标志= 标志=0 NV UP DI PL NZ NA PO NC
5
2)D命令(显示内存单元内容) ) 命令 显示内存单元内容) 命令(
格式1:_D 格式1:_D↙ 作用:显示当前段中从偏移地址0100H开始的128 0100H开始的128个字 作用:显示当前段中从偏移地址0100H开始的128个字 节单元的内容。(一般是查看DS数据段) 。(一般是查看DS数据段 节单元的内容。(一般是查看DS数据段)
格式:_Q 格式:_Q↙ :_ 作用:退出DEBUG程序,返回DOS DEBUG程序 DOS。 作用:退出DEBUG程序,返回DOS。
20122012-4-27
23
练习
目的:(1)掌握常用Debug命令 目的:(1)掌握常用Debug命令 (2)学习汇编指令的使用 内容: 教材115页。二、分析题:1 教材115页。二、分析题E命令(修改内存单元内容) 命令(修改内存单元内容)
格式2:_E DS:偏移地址↙ 格式2:_E DS:偏移地址↙ 作用:显示并修改由偏移地址开始的1 作用:显示并修改由偏移地址开始的1个或多个内存单 元的内容,直到按回车鍵为止。 元的内容,直到按回车鍵为止。 :_E DS:200↙ 例:_E DS:200↙
格式2:_R 寄存器名↙(_r寄存器名↙ 格式2:_R 寄存器名↙(_r寄存器名↙) 作用:显示或修改指定寄存器的内容。 作用:显示或修改指定寄存器的内容。
20122012-4-27
4
1)R命令(查看和修改寄存器内容) ) 命令 查看和修改寄存器内容) 命令(
格式3:_RF (_rf RF↙ rf↙ 格式3:_RF↙(_rf↙) 作用:显示或修改标志寄存器的内容。 作用:显示或修改标志寄存器的内容。
20122012-4-27
19
7)G命令(运行) 命令(运行)
格式1:_G 断点偏移地址↙ 格式1:_G=起始偏移地址 断点偏移地址↙ 作用:从起始偏移地址开始执行指令, 作用:从起始偏移地址开始执行指令,当指令执行到 断点偏移地址时(此处的指令不执行), ),就停止执行 断点偏移地址时(此处的指令不执行),就停止执行 并显示当前所有寄存器及标志位的内容和下一条要执 行的指令。 行的指令。 :_G 0106↙ 例:_G =0100 0106↙
20122012-4-27
13
5)U命令(反汇编) 命令(反汇编)
格式1:_U 格式1:_U↙ 作用: IP所指定的偏移地址开始 反汇编32个字节。 所指定的偏移地址开始, 32个字节 作用:从IP所指定的偏移地址开始,反汇编32个字节。 :_U 例:_U↙
20122012-4-27
14
5)U命令(反汇编) 命令(反汇编)
20122012-4-27
12
4)A命令(汇编) 命令(汇编)
格式2:_A 偏移地址↙ 格式2:_A 偏移地址↙ 作用:从指定的偏移地址开始输入汇编语句, 作用:从指定的偏移地址开始输入汇编语句,并把它 们汇编成机器代码顺序存放在代码段中。 们汇编成机器代码顺序存放在代码段中。 :_A 0105↙ 例:_A 0105↙
20122012-4-27
21
7)G命令(运行) 命令(运行)
格式3:_G 慎用) 格式3:_G↙(慎用) 作用: CS:IP处开始执行指令直到遇到结束指令 处开始执行指令直到遇到结束指令。 作用:从CS:IP处开始执行指令直到遇到结束指令。 :_G 例:_G ↙
20122012-4-27
22
8)Q命令(退出DEBUG) 命令(退出DEBUG)
20122012-4-27
20
7)G命令(运行) 命令(运行)
格式2:_G 断点偏移地址↙ 格式2:_G 断点偏移地址↙ 作用: CS:IP处开始执行 处开始执行, 作用:从CS:IP处开始执行,当指令执行到断点偏移 地址时, 地址时,就停止执行并显示当前所有寄存器及标志位 的内容和下一条要执行的指令。 的内容和下一条要执行的指令。 :_G 0106↙ 例:_G 0106↙