调试工具debug的使用及基本指令的用法

合集下载

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常用命令

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的启动

DEBUG的使用及调试方法

DEBUG的使用及调试方法

DEBUG的使用及调试方法1、实验目的和要求:掌握DEBUG下的主要命令如:U、T、D、E、R、A、G、Q命令等。

掌握调试方法,理解CS:IP的作用,要求能在DEBUG下编写简单程序。

2. DEBUG的功能DEBUG是专门为汇编语言设计的调试工具,它通过单步、设置断点等方式,为使用者提供了非常有效的调试手段。

在DEBUG下所有输入的数据都是十六进制,所以不需要后面加H。

并且不区分大、小写字母。

3. DEBUG的调用在DOS下有两种方式调用DEBUG:(1)把执行(调试)文件装入存储器中,格式为:C>DEBUG 文件名.EXE(2)先调用DEBUG,然后用N、L命令把执行(调试)文件装入存储器。

格式为:C>DEBUG-N 文件名.EXE-L4. DEBUG的主要命令(1) U(反汇编):将机器指令进行反汇编,默认的寄存器是CS:IP,从指定地址开始反汇编32个字节,它的格式是:-U[ START-ADDR]-U[ START—ADDR END—ADDR]-U 100 ;汇编开始于CS:100-U 100 150 ;反汇编从100H 到150H的内容。

⑵T(跟踪):以单步方式执行程序。

-T ;执行一条指令。

-T 10 ;执行下面10H(16)条指令。

-T=3 2 ;从指定IP=0003开始,执行下面2条指令.(3)A (把符号指令汇编成机器码):-A 100 ;从指定地址100H开始汇编,结果写入内存。

-A ;不指定地址,则从上次A命令开始汇编。

在A命令下不能使用字段名,A命令只识别指令和DB、DW的伪指令。

⑷G (运行可执行程序):-G 200 ;从程序当前地址执行到200H结束-G ;从程序当前位置执行到程序结束-G =200 260 ;从指定(200H)或当前地址开始执行,遇到断点(260H)停止,显示寄存器和标志寄存器的内容。

⑸E(检查修改内存单元内容):默认寄存器是DS,格式是:-E[ ADDRESS] [表]-E 105 13 3A 21 ;从DS:105H开始输入3个字节的内容-E CS:211 21 2A ;从CS:211H开始输入2个字节的内容-E 110 ‘anything’;输入从DS:110H开始的字符串-E 12C ;检查修改DS:12C的内容该操作等待从键盘的输入一个或多个十六进制值的字节,字节之间用空格隔开。

debug 的使用

debug 的使用

Debug是一种程序调试工具,主要用于帮助程序员检查和修复程序中的错误。

以下是如何使用Debug的基本步骤:
设置断点:断点是一种标记,告诉Debug从标记的地方开始查看。

在要设置断点的代码行上单击鼠标左键即可。

运行程序:在代码区域右击,选择Debug执行。

单步执行:点击Step Into(F7)这个箭头,或者直接按F7,以一行一行地操纵代码,从而判断程序的执行流程是否与预期一致。

查看变量值:在执行过程中,可以查看变量的当前值,以了解程序状态。

删除或禁用断点:选择要删除的断点,单击鼠标左键即可。

如果是多个断点,可以每一个再点击一次。

也可以一次性全部删除。

以上是使用Debug的基本步骤,但请注意,具体使用方式可能会根据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"命令可以让程序以单步执行的方式运行。

实验一熟悉使用调试工具软件DEBUG

实验一熟悉使用调试工具软件DEBUG

实验一熟悉使用调试工具软件DEBUG引言调试是软件开发过程中不可或缺的一部分。

通过调试工具软件DEBUG,我们可以查找和修复程序中的错误、检查变量的值、跟踪代码的执行路径等等。

本实验旨在帮助学生熟悉DEBUG的基本功能和使用方法。

一、实验目标1.熟悉DEBUG软件的界面和基本功能;2.学会使用DEBUG软件进行程序的调试和跟踪;3.掌握DEBUG软件中的断点设置和单步执行等功能。

二、实验环境1. 操作系统:Windows 10;2.调试工具软件:DEBUG。

三、实验步骤[DEBUG软件界面截图](1)Registers窗口显示寄存器的内容,包括通用寄存器、段寄存器等;(2)Disassembly窗口显示汇编指令的内容;(3)Dump窗口显示内存中的内容;(1)r:显示寄存器的内容;(2)u:显示当前汇编指令的地址和指令;(3)d:显示内存中的内容。

通过执行这些指令,我们可以查看和了解程序的运行状态和内存存储的内容。

(1)g:运行程序;(2)t:执行一条指令,并显示执行结果;(3)p:执行一行汇编代码,并显示执行结果。

通过执行这些指令,我们可以跟踪程序的执行路径和变量的值。

6. 在Disassembly窗口中,双击一条汇编指令可以设置断点。

设置断点后,程序执行到断点处会自动停止。

在调试过程中,我们可以查看断点前后的变量值,检查程序是否按照预期执行。

(1)bp:查看断点列表;(2)bl:清除断点列表中的断点;(3)bd:删除一个断点。

通过执行这些指令,我们可以管理和控制断点,实现更精细的调试过程。

8. 在DEBUG软件界面中,点击工具栏上的“跟踪”按钮,可以选中“Trace over”、“Trace into”和“Animate”等选项。

这些选项分别表示在执行过程中是否显示详细过程、是否跳过函数调用、是否动画演示执行过程等。

通过选择不同的选项,我们可以根据需要自定义调试过程。

四、实验总结通过本次实验,我们了解了DEBUG软件的基本功能和使用方法。

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

实验一掌握DEBUG 基本命令及其功能【调试debug步骤】【上篇】查看CPU和内存,用机器指令和汇编指令编程一.实验目的:掌握DEBUG 的基本命令及其功能掌握win7 win8 使用DEBUG功能二.实验任务(1) 使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU 中相关寄存器中内容的变化。

(逐条执行,每条指令执行结果截图)机器码汇编指令b8 20 4e mov ax,4E20H05 16 14 add ax,1416Hbb 00 20 mov bx,2000H01 d8 add ax,bx89 c3 mov bx,ax01 d8 add ax,bxb8 1a 00 mov ax,001AHbb 26 00 mov bx,0026H00 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命令以两种方式将指令写入内存。

注意用T命令执行时,CS:IP 的指向。

1、操作前2、一次输入完后3、mov ax,4E20H4、add ax,1416H5、mov bx,2000H6、add ax,bx7、mov bx,ax8、add ax,bx9、mov ax,001AH10、mov bx,0026H11、add al,bl12、add ah,bl13、add bh,al14、mov ah,015、add al,bl16、add al,9CH(2) 将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。

mov ax,1add ax,axjmp 2000:00031、输入指令2、改变CS和IP3、逐条执行(3) 查看内存中的内容PC机主板上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某几个单元中,请找到这个生产日期并试图改变它。

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的调用DEBUG是为汇编语言设计的一种调试工具,它通过单步执行、设置断点等方式为汇编语言程序员提供了非常有效的程序调试手段。

DEBUG可以直接用来检查和修改内存单元、装入、存储及启动运行程序、检查及修改寄存器,也就是说DEBUG可深入到计算机的内部,可使用户更紧密地与计算机中真正进行的工作相联系。

不仅如此,对汇编语言初学者来说,DEBUG 也是练习使用汇编指令的一种有效工具。

初学者可以直接在DEBUG环境下执行汇编指令。

然而,在DEBUG下运行汇编语言源程序也受到了一些限制,它不宜汇编较长的程序,不便于分块程序设计,不便于形成以DOS外部命令形式构成的 .EXE文件,不能使用浮动地址,也不能使用ASM和MASM提供的绝大多数伪指令。

在DOS系统中,DEBUG是以DOS外部命令文件形式提供给用户的,名为DEBUG.EXE。

命令文件DEBUG.EXE一般存放在DOS子目录下,因此调用DEBUG时,只需在DOS提示符下键入: DEBUG [<驱动器名>:][<路径>][<文件名>[.<扩展名>]][<参数1>][<参数2>] < 回车>例如: C:\DOS>DEBUG A: B:进入DEBUG的提示符是符号“-”。

即,出现提示符“-”就表示可以接受DEBUG命令了。

当进入DEBUG时,寄存器和标志设成以下数值,这些值用于DEBUG调试中的程序。

段寄存器CS,DS,ES和SS均指向DEBUG末尾的第一个段。

IP寄存器置为0100H。

栈指针SP指向尾部或装入程序的暂存部分的底部。

其余寄存器皆取零值,但若用户调用时含文件说明,则CX含文件长度(长度大于64K 时BX含长度的高位);标志为各自的复位值;驱动器传送地址在代码段位移80H处。

注意,若DEBUG装入扩展名为.EXE的文件,则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开始地址结束地址数据表列说明:①用数据表列中的数据存入由开始地址和结束地址指定范围内的内存单元。

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

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

标志寄存器各标志位的含义:
溢出标志OF: OV/NV(溢出/不溢出) 方向标志DF: DN/UP(减/增) 中断标志IF: EI/DI(开中断/关中断) 符号标志SF:NG/PL(负/正) 零标志ZF: ZR/NZ(零/非零) 辅助进位AF:AC/NA(有/无) 奇偶标志PF:PE/PO(偶/奇) 进位标志CF:CY/NC(有/无)
实验一 调试工具debug的使用及基本指令的用法
4、观察和修改内存单元的内容
-e 2000 10DD:2000 修改从地址DS:2000H开始内存单元的内容 00.01 00.02 ↑ 键入的内容,中间按空格键
5、输入程序
-a 100 从CS:100H处开始输入程序(这是默认的程序开始的地址) 10DD:0100 mov ax,1234 10DD:0103 mov [2002],ax 10DD:0106 输完程序直接按回车即可
实验一 调试工具debug的使用及基本指令的用法
3、观察及修改CPU内部的各寄存器 -r 观察各寄存器的内容
AX=0000 BX=0000 CX=0000 DX=0000 SP=CFDE DS=10DD ES=10DD SS=10DD CS=10DD IP=0100 10DD:0100 7C0A JL 010C (当前CS:IP所指向的指令) BP=0000 SI=0000 DI=0000 NV UP DI PL NZ NA PO NC (标志寄存器的各个标志位)
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ ................ ................ ................ ................ ................ ................ ................
实验一 调试工具debug的使用及基本指令的用法
3、观察及修改CPU内部的各寄存器
-r ax AX 0000 :1234 将AX的内容改为1234H -rf NV UP DI PL NZ NA PO NC -ov dn 将标志寄存器的OF置为OV;DF置为DN。
ห้องสมุดไป่ตู้
4、观察和修改内存单元的内容
-d 2000
10DD:2000 10DD:2010 10DD:2020 10DD:2030 10DD:2040 10DD:2050 10DD:2060 10DD:2070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
查看从地址DS:2000H开始的128个单元的内容
[412C],AL 012E CX,+06 011E BYTE PTR [SI+0A],2C 011C
实验一 调试工具debug的使用及基本指令的用法
8、执行一段程序
-g=100 106 AX=1234 BX=0000 DS=10DD ES=10DD 10DD:0106 36 10DD:0107 A22C41 从CS:100H开始,执行到CS:106处停止。 CX=0000 DX=0000 SP=CFDE SS=10DD CS=10DD IP=0106 SS: MOV [412C],AL BP=0000 SI=0000 DI=0000 OV DN DI PL NZ NA PO NC SS:412C=00
实验一 调试工具debug的使用及基本指令的用法
实验目的:
掌握debug的基本命令和8086的各种基本指令的用法。
实验内容:
一、debug的使用: 1、debug的功能简介:用于调试汇编语言程序,能使用户接触 到计算机内部,允许用户直接观察和修改CPU的寄存器;能 观察、修改内存单元;允许直接输入机器指令并单步执行; 能反汇编程序。可以说,debug是观察和了解计算机内部运 行情况的有利助手。 2、debug的进入和退出: 开始→运行→debug 这是debug的提示符,在此可以输入debug的命令 -q 退出debug
-a 103 修改103处的指令 10DD:0103 mov [2000],ax 10DD:0106 -
实验一 调试工具debug的使用及基本指令的用法
6、单步执行程序
-t=100 执行CS:100H处的一条指令,自动显示各寄存器内容及下一条指令。 AX=1234 BX=0000 CX=0000 DX=0000 SP=CFDE BP=0000 SI=0000 DI=0000 DS=10DD ES=10DD SS=10DD CS=10DD IP=0103 OV DN DI PL NZ NA PO NC 10DD:0103 A30020 MOV [2000],AX DS:2000=0201 -t 继续执行下一条指令
7、反汇编程序
-u 100
10DD:0100 10DD:0103 10DD:0106 10DD:0107 10DD:010A 10DD:010C 10DD:010F 10DD:0111 10DD:0115 -
从CS:100H处开始反汇编
B83412 A30020 36 A22C41 EB22 83F906 750D 807C0A2C 7505 MOV MOV SS: MOV JMP CMP JNZ CMP JNZ AX,1234 [2000],AX 刚才输入的两条指令 乱码
相关文档
最新文档