汇编语言调试DEBUG命令详解

合集下载

【微机原理】DEBUG命令详解

【微机原理】DEBUG命令详解

DUBUG命令详解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 jump1可以将near 前缀缩写为ne。

区分字和字节内存位置当某个操作数可以引用某个字内存位置或者字节内存位置时,必须用前缀word ptr 或者前缀byte ptr 指定数据类型。

可接受的缩写分别是wo 和by。

以下范例显示两种格式:dec wo [si]neg byte ptr [128]指定操作数Debug 使用包括在中括号([ ]) 的操作数引用内存地址的习惯用法。

这是因为另一方面Debug 不能区分立即操作数和内存地址的操作数。

汇编DEBUG命令详解

汇编DEBUG命令详解

DEBUG命令详解DEBUG是DOS中的一个外部命令,从DOS 1.0起就带有此命令,因此可见此命令的重要性了。

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

因此,现将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。

区分字和字节内存位置当某个操作数可以引用某个字内存位置或者字节内存位置时,必须用前缀 word ptr 或者前缀 byte ptr 指定数据类型。

汇编 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命令详解1、显示命令D① D [地址]② D [范围]如不指定范围,一次显示8行×16个字节。

-D ;默认段寄存器为DS,当前偏移地址-D DS:100 / -D CS:200-D 200:100-D 200;200为偏移地址,默认段寄存器DS-D DS:100 110/ -D 100 L 102.修改命令E① E 地址;从指定地址开始,修改(或连续修改)存储单元内容。

DEBUG首先显示指定单元内容,如要修改,可输入新数据;空格键显示下一个单元内容并可修改,减号键显示上一个单元内容并可修改;如不修改,可直接按空格键或减号键;回车键结束命令。

② E 地址数据表;从指定的地址开始用数据表给定的数据修改存储单元。

-E DS:100 F3 ‘AB’ 8D。

3.添充命令FF 范围数据表;将数据表写入指定范围的存储单元;数据个数多,忽略多出的数据,个数少,则重复使用数据表。

-F DS:0 L5 01,02,03,04,05-F DS:0 L5 01 02 03 04 05(空格分隔)-F DS:0 L5 FF ;5个字节重复使用FF4.显示修改寄存器命令RR;★显示所有寄存器和标志位状态;★显示当前CS:IP指向的指令。

显示标志时使用的符号:标志标志=1 标志=0OF OV NVDF DN UPIF EI DISF NG PLZF ZR NZAF AC NAPF PE POCF CY NC5.汇编命令AA [地址];从指定的地址开始输入符号指令;如省略地址,则接着上一个A命令的最后一个单元开始;若第一次使用A命令省略地址,则从当前CS:IP 开始(通常是CS:100)。

注释:①在DEBUG下编写简单程序即使用A命令。

②每条指令后要按回车。

③不输入指令按回车,或按Ctrl+C结束汇编。

④支持所有8086符号硬指令,伪指令只支持DB、DW,不支持各类符号名。

6.反汇编命令U① U [地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:IP开始(通常是CS:100)。

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命令的使用

实验一Debug命令的使用一、知识点1、DEBUG简介DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。

在汇编语言程序调试中很常用。

DEBUG的提示符是“-”,所有DEBUG调试命令军在此提示符下输入。

DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。

DEBUG命令的使用注意问题:(1)字母不分大小写(2)只使用十六进制数,但没有带后缀字母“H”(3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。

(4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。

2、Debug的调入和退出以WIN2000环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态:C:\Documents and Settings\lfy>然后输入命令:>Debug进入Debug调试状态,出现Debug命令提示府“-”,在此提示符下可运行所需要的Debug 命令了。

退出Debug的命令:Q3、Debug常用命令(1)汇编命令A,格式为:- A [地址]功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。

若不指定地址,则系统从默认的地址开始存放。

按回车键退出汇编状态应用:用于调试一条指令或几条指令组成的一个程序段。

(2)显示和修改寄存器命令R,格式为:- R [寄存器名]功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修改;若不要修改,则按Enter 健。

若未指定寄存器,则默认为显示所有寄存器的内容。

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

(3)内存单元内容的命令E,格式为:- E 地址[内容表]功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束。

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将所指定文件装入内存,显示提示符“-”等待进一步命令。

若装入文件为.exe文件,按照重定位原则装入为可执行状态。

.com文件类似。

若为其它类型文件则直接进行内存映射,由偏移量100H原封不动读入内存。

debug将在缓冲区为被调试程序建立适当的PSP(程序段前缀,Program Segment Prefix)。

在PSP中的偏移量80H为命令行的末尾。

而且在偏移量5CH和6CH由包含参数后面的可选参数构成缺省的FCB(文件控制块,File Control Block)。

进入时各寄存器初使情况:寄存器.com程序.exe程序AX 指定驱动器错误码指定驱动器错误码BX 程序空间的高地址程序空间的高地址CX 程序空间的低地址程序空间的低地址DX 0 0 SI 0 0DI 0 0BP 0 0SP 0FFFFH或可利用的不定内存空间上限减2IP 100H 目标程序的的代码入口偏移量CS PSP 目标程序代码段址DS PSP PSPCS PSP PSPSS PSP 目标程序堆栈段底命令:A: 编写汇编代码(Assemble)格式:A[地址]用途:程序允许在指定位置(若无缺省为IP指针位置)进行汇编程序书写。

细节:*所有数值皆为十六进制整数,数值后不带“H”*不支持文件管理用的目录表、宏标记、条件汇编*跳转指令后要直接书写十六进制地址不支持标号*数据类型若非默认类型,要以PTR加以指定*字符串操作要指定类型为B或W(如lodsb和lodsw等)及长度*用DB和DW接受数据定义,直按进行汇编*对内存地址加[]以与立即数区分C: 内存内容比较(Compare)格式:C 地址范围地址地址范围:做比较的第一个内存域始未地址或始地址和长度地址:做比较的第二个内存域的始地址用途:*对内存中两个域的内容加以比较,以字节为单位。

对发现有差别的内容及其地址用如下形式显示出:地址1 始位置未位置地址2*若地址范围或地址不含段地址,默认为DS的值。

汇编语言课程2_调试程序DEBUG

汇编语言课程2_调试程序DEBUG
R命令
12




DEBUG
② R 寄存器名;显示并修改指定的寄存器. 寄存器名;显示并修改指定的寄存器. RIP;RF等 RAX ;RIP;RF等 5.汇编命令 汇编命令A 5.汇编命令A [地址 地址] 从指定的地址开始输入符号指令; A [地址];从指定的地址开始输入符号指令; 如省略地址,则接着上一个A 如省略地址,则接着上一个A命令的最后一个单元开 若第一次使用A命令省略地址,则从当前CS:IP 始;若第一次使用A命令省略地址,则从当前CS:IP 开始(通常是CS 100). CS: 开始(通常是CS:100). 注释: DEBUG下编写简单程序即使用 命令. 下编写简单程序即使用A 注释:①在DEBUG下编写简单程序即使用A命令. 每条指令后要按回车. ②每条指令后要按回车. 不输入指令按回车,或按Ctrl+C结束汇编. Ctrl+C结束汇编 ③不输入指令按回车,或按Ctrl+C结束汇编. 支持所有8086符号硬指令,伪指令只支持DB 8086符号硬指令 DB, ④支持所有8086符号硬指令,伪指令只支持DB, DW,不支持各类符号名. DW,不支持各类符号名.
参数格式2
7




DEBUG
命 令 索 引
D命令 U命令 N命令 S命令 E命令 G命令 L命令 I命令 F命令 T命令 W命令 O命令 R命令 P命令 C命令 M命令 A命令 Q命令 H命令
命令索引
8




DEBUG
§3.DEBUG命令 3.DEBUG命令 1.显示命令D 1.显示命令D 显示命令 [地址 地址] ① D [地址] [范围 范围] ② D [范围] ;如不指定范围,一次显示8行×16个字节. 如不指定范围,一次显示8 16个字节. 个字节 -D ;默认段寄存器为 ,当前偏移地址 默认段寄存器为DS, -D DS:100 /-D CS:200 /- -D 200:100 200;200为偏移地址 默认段寄存器DS 为偏移地址, -D 200;200为偏移地址,默认段寄存器DS -D DS:100 110/ -D 100 L 10

汇编语言---debug调试串操作指令

汇编语言---debug调试串操作指令
– 终端上显示输出 – Debug调试 Debug调试
5
debug调试程序步骤:
1 2 3 4 >Debug movs.exe -u 确定断点 G 断点地址
6
说明: 说明:
1 进入debug并装入要调试的可执行程 进入debug并装入要调试的可执行程 序 U命令反汇编程序 确定断点偏移地址
– rep movsb指令完成后,选择下一条指令 movsb指令完成后,选择下一条指令 的偏移地址为断点
2
⒈串传送指令MOVSB/MOVSW 串传送指令MOVS /MOVSW MOVSB
该指令执行的操作为: ((ES):(DI))←((DS):(SI)) ((ES):(DI))←((DS):(SI)) 也可:MOVS 也可:MOVS DST,SRC 但要求: ①SRC用DS:SI寻址,DST用ES:DI寻址 SRC用DS:SI寻址,DST用ES:DI寻址 ②传送是字节还是字,决定两个操作数的 传送是字节还是字 定义类型. 定义类型. 不能 MOVSB DST,SRC 本指令不影响标志位
G命令启动程序,同时设定断点
7
确定断点偏移地址 执行程序到地址18
9
10
11
12
LEA si,source_BUF LEA di,dest_BUF cld mov cx,40 rep movsb ret CODE ENDS END START
4
debug调试
建立exe文件后,就可以直接执行 建立exe文件后,就可以直接执行 但是程序运行结束返回DOS 但是程序运行结束返回DOS 看结果
3
DATA SEGMENT source_BUF DB 40 dup('a') DATA ENDS extra SEGMENT dest_BUF DB 40 dup(?) extra ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:extra START: MOV AX,DATA MOV DS,AX MOV MOV AX,extra ES,AX

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调试命令介绍1.主要调试命令:(1)反汇编命令U:将存储器中的二进制数据翻译成较有意义的助记符形式,以帮助理解,如图1.5所示。

一般常用以下三种格式:a)-U↙:从当前IP处开始,对连续约32字节内容反汇编。

如对TEST.EXE,刚装入DEBUG时的IP=0000,则在输入U命令后有如下显示:-U↙13C2:0000 B402 MOV AH,0213C2:0002 B241 MOV DL,4113C2:0004 CD21 INT 2113C2:0006 B44C MOV AH,4C13C2:0008 CD21 INT 2113C2:000A 8B4606 MOV AX,[BP+06]………………13C2:0020 8B07 MOV AX,[BX]-图1.5 反汇编命令的执行结果在上例中,13C2:0000表示CS:IP的内容(其中CS的值是动态值);B402代表该处存放的二进制数据,亦即指令MOV AH,02H的机器代码;当连续约32字节的数据反汇编完后,重新回到DEBUG提示符“-”下,如果再键入U命令,则将继续对后面的内存区反汇编。

特别应该注意的是,由于反汇编命令针对内存区的二进制数据,而被调试程序仅占内存区的某一部分,故反汇编出来的内容并非全是被调试程序的代码,如上例中13C2:000A单元以后的部分,显然不是TEST.EXE的内容。

另外还需注意,DEBUG默认使用十六进制。

b)–U 0123↙:从指定的IP=0123处开始,对连续约32字节内容反汇编。

c)–U 0123 0143↙:从指定的IP=0123处开始反汇编,直至指定的0143处结束。

(2)显示寄存器命令R:显示或修改寄存器的内容,如图1.6所示。

一般常用以下形式:a)-R↙:显示所有寄存器当前的内容及当前将执行的指令。

如对TEST.EXE,在程序运行之前,键入R命令:-R↙AX=0000 BX=0000 CX=000A DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=13B2 ES=13B2 SS=13C2 CS=13C2 IP=0000 NV UP EI PL NZ NA PO NC13C2:0000 B402 MOV AH,02-图1.6 显示寄存器命令执行结果在显示寄存器内容时,状态标志寄存器F表示成各个分离的标志位,其意义如下表1.1所示:表1.1 标志寄存器的标志为含义b)-R AX↙:显示指定的AX寄存器当前的内容,并等待键入新值;如果不作修改,可直接回车。

debug主要命令详解

debug主要命令详解

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

一、DEBUG程序的调用在DOS的提示符下,可键入命令:C:\DEBUG [D:][PATH][FILENAME[.EXT]][PARM1][PARM2]其中,文件名是被调试文件的名字。

如用户键入文件,则DEBUG 将指定的文件装入存储器中,用户可对其进行调试。

如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。

命令中的D指定驱动器PATH为路径,PARM1和PARM2则为运行被调试文件时所需要的命令参数。

在DEBUG程序调入后,将出现提示符,此时就可用DEBUG命令来调试程序。

二、DEBUG的主要命令1、显示存储单元的命令D(DUMP),格式为:_D[address]或_D[range]例如,按指定范围显示存储单元内容的方法为:-d100 12018E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G...8.G.....G...18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 ..;..h..M PQVW.718E4:0120 8B其中0100至0120是DEBUG显示的单元内容,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,·表示不可显示的字符。

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

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

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

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

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

汇编教程 DEBUG的使用

汇编教程 DEBUG的使用
汇编语言程序设计
什么是DEBUG命令
DEBUG是DOS中的一个外部命令 Debug简单的说就是除错程序,是用的DEBUG 命令: 命令: 几种常用的
(1) (2) (3) (4) (5) (6) (7) D:显示存储单元内容 E:修改存储单元内容 R:显示、修改寄存器内容 U:反汇编命令 T:跟踪命令 Q:退出命令 A:汇编命令
修改存储单元内容命令E(Enter)
两种格式 1、E address [list] 用给定的内容表来替代指定范围的存 储单元内容 2、E address 采用逐个单元相继修改的方法
跟踪命令T(Tace)
两种格式 1、T [=address] 逐条指令跟踪 2、T [=address][value] 多条指令跟踪
各标志位状态的含义
显示存储单元命令D(DUMP)
格式: D [address] 或 D [range] 按指定地址或指定范围显示存储单元内 容。 左边用十六进制表示每个字节,右边用 ASCII字符表示每个字节,.表示不可显 示的字符 如果只指定首地址,则显示从首地址开 始的80个字节的内容 如果完全没有指定地址,则显示上一个 D命令显示的最后一个单元后的内容
注意
DEBUG把键入的数字均看成十 六进制数,所以入要键入十进制 数,则其后应加以说明:100D
1、检查和修改寄存器内容命令 R(Register)
三种格式: 1、R 显示CPU内所有寄存器内容和标志位 状态 2、R register name 显示和修改某个寄存器内容 3、RF 显示和修改标志位状态
汇编命令A(Assemble)
格式: A [address] 将键入的汇编语言语句汇编成机 器代码,相继地存放在从指定地 址开始的存储区中

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的使用汇编语言是一种低级语言,它与机器语言非常接近,每一个汇编语言的指令几乎都对应着一条机器指令。

因此,了解并掌握汇编语言对于理解计算机内部工作原理以及进行底层编程是非常有帮助的。

下面,我将详细介绍DEBUG的使用方法和功能。

1.DEBUG的启动和退出:在DOS命令行下输入DEBUG命令,即可启动DEBUG。

DEBUG启动后,会显示一个短横线"-”,表示等待执行命令。

在DEBUG中输入"q"命令,即可退出DEBUG。

2.DEBUG的命令格式和常用命令:-a:将键盘输入的ASCII码写入指定地址-d:显示内存中的指定地址的内容-e:修改内存中的指定地址的内容-g:从指定地址开始执行程序-r:查看和修改寄存器的值-t:查看和修改标志寄存器的值-u:以汇编代码的格式显示内存中的指令-w:将内存中的内容写入指定文件-n:加载并执行指定文件-i:打印当前的执行指令-f:在段间切换3.DEBUG的常用调试操作:- 通过“d”命令查看内存中的指令和数据内容,可以使用不同的参数来控制显示格式,如"d 100"表示从100H地址处开始显示,"d cs:100"表示从CS:100H地址处开始显示。

-通过“e”命令修改内存中的指令和数据内容。

- 通过“r”命令查看和修改寄存器的值,如"r ax"表示查看和修改AX寄存器的值。

-通过“u”命令以汇编代码的格式显示内存中的指令。

-通过“g”命令从指定地址开始执行程序。

-通过“n”命令加载并执行指定的二进制文件。

4.示例:下面给出一个使用DEBUG调试的示例过程:-启动DEBUG,进入DEBUG命令行界面。

-使用“n”命令加载一个二进制文件。

-使用“d”命令查看内存中的指令和数据,以及寄存器的值。

-使用“e”命令修改内存中的指令和数据。

-使用“g”命令执行程序。

-使用“r”命令查看和修改寄存器的值。

汇编语言程序调试及工具软件DEBUG

汇编语言程序调试及工具软件DEBUG

15
15、S检索 格式:S 起始地址 结束地址 值表 S 起始地址 L字节数 值表 功能:在指定内存范围内检索值表指定的字符,如果找到,则显示 检索到的单元地址;如果没找到,则显示提示符。 例: 设内存DS:0000H开始存入1,2,3, ‘A’ , ‘B’ , ‘A’ , ‘B’ 要求检索字符‘A’ , ‘B’ , ‘F’ -SDS:0 06 A 1542:0003 1542:0005 -SDS:0 06 B 1542:0004 1542:0006 -SDS:0 06 F -
通过调试工具检查功能的正确性。
2
二、调试工具软件DEBUG
1、简介 面向汇编语言的动态调试工具,有19条命令。 通过跟踪、测试对.EXE和.COM文件动态跟踪调试。 查找文件中的错误及运行结果。 可以直接编写、调试小程序。 2、DEBUG的启动方式
(1)在DOS状态下直接输入
C:DEBUG ADD.EXE (2)在DOS状态下输入 C:DEBUG -NADD.EXE -L
17
16
16、C比较 格式:C 起始地址 结束地址 目的地址 C 起始地址 L字节数 目的地址 功能:比较两个数据块内容,如果不相同,则显示其内容和地址。 默认为数据段,目的地址只包含偏移地址。 例:把ES:0开始的10个字节内容与DS:100H开始的区域进行比较, 找出与之不同的内容。 -CES:0 LA DS:100 执行结果: 82DD:0000 03 2D 82CD:100 82DD:0002 00 02 82CD:102 82DD:0003 05 09 82CD:103 82DD:0008 04 66 82CD:108 17、Q退出 格式:-Q 功能:退出DEBUG命令。
9
例2:从CS:0004开始执行3条指令。 -T=4 3

调试程序DEBUG命令说明

调试程序DEBUG命令说明

调试程序DEBUG命令说明
DEBUG是常用的汇编语言级调试工具,为汇编语言程序员提供了分析指令、跟踪程序的有效手段
如何进入Debug程序?
答:在命令提示符下输入“debug”回车即可
懂得汇编的朋友,相信看懂下面命令是没多大问题的。

常用命令:
-A 汇编格式:A 起始地址
例如:输入“A”,回车,然后输入“MOV AX,10”回车。

再按一次回车,则退出汇编状态。

-U 反汇编格式:U 起始地址结束地址
例如:接上面,输入“U”,回车,即可看到结果。

以下不再举例,类似上面,有待自己研究,这样记得更牢。

谢谢!
-T 单步执行格式:T 起始地址运行指令数
-G 断点执行格式:G 起始地址断点地址结束地址
-D 数据显示格式: D 起始地址结束地址
-R 显示修改寄存器
格式:R 寄存器名
-P 单步执行,不进入中断
格式:T 起始地址运行指令数
-F 连续填入内存内容
格式:起始地址结束地址要填入的数值系列
-E 单个修改内存内容
格式: E 地址填入内容
-Q 退出debug状态
格式: Q 回车
状态标志位的值如下图:
不常用命令:
-M 内存搬家指令:
格式:M 起始地址结束地址目的地址-H 16进制加法:
格式:H 操作数1 操作数2
结果显示:加法结果减法结果。

汇编语言程序设计debug调试命令

汇编语言程序设计debug调试命令
内容。 (8) Q(退出): 退出DEBUG,该操作不保护文件。 -Q
标志位:
“1”
“0”
OF:溢出标志 —— OV溢出, NV没溢出
DF:方向标志 —— DN减量, UP增量
IF:中断允许标志 —— EI允许, DI禁止
SF:符号标志 —— NG负数, PL正数
ZF:“0”标志
—— ZR为“0”, NZ不为“0”
下次课预习内容:顺序结构程序设计
要求:1、实验指导书及实验报告上的预习内容 2、预习验收时要提供设计的源程序磁盘或笔写程序
-E CS:211 21 2A
;从CS:211H开始输入2个字节的内容
-E 110 ‘anything’
;输入从DS:110H开始的字符串
⑹ D(显示存储器的内容):
默认寄存器是DS,格式是:
-D段地址:偏移地址
;显示80H个字节的内容。
-D
显示从上一次结束处开始的80H个字节 的内容。
⑺ R(显示修改寄存器内容) -R ;显示所有寄存器内容。 -RDS ;显示并可修改DS的内容。 -RF ;显示并可修改标志寄存器
实验数据记录注意事项:
1、实验报告第三页:表格中标志位与计算机 自动给出的不是一一对应的,要求记录1/0
2、实验报告第四、五页:列出调试运行后的程序清单
因为行汇编不识别标号,所以:用行汇编运行的程
序中没有行号,转移指令处是绝对地址。
验收内容:
1、用T命令执行完程序最后一条指令处的界面:
-T =段地址:0
-G=段地址:偏移地址
-G
;从程序当前位置执行到
程序结束
-G =200 260
;从指定200H地址开始执行, 遇到断点
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言调试DEBUG命令详解
1、显示命令D
① D [地址]
② D [范围]
如不指定范围,一次显示8行×16个字节。

-D ;默认段寄存器为DS,当前偏移地址
-D DS:100 / -D CS:200
-D 200:100
-D 200;200为偏移地址,默认段寄存器DS
-D DS:100 110/ -D 100 L 10
2.修改命令E
① E 地址;从指定地址开始,修改(或连续修改)存储单元内容。

DEBUG首先显示指定单元内容,如要修改,可输入新数据;空格键显示下一个单元内容并可修改,减号键显示上一个单元内容并可修改;如不修改,可直接按空格键或减号键;回车键结束命令。

② E 地址数据表;从指定的地址开始用数据表给定的数据修改存储单元。

-E DS:100 F3 ‘AB’ 8D。

3.添充命令F
F 范围数据表;
将数据表写入指定范围的存储单元;数据个数多,忽略多出的数据,个数少,则重复使用数据表。

-F DS:0 L5 01,02,03,04,05
-F DS:0 L5 01 02 03 04 05(空格分隔)
-F DS:0 L5 FF ;5个字节重复使用FF
4.显示修改寄存器命令R
R;★显示所有寄存器和标志位状态;
★显示当前CS:IP指向的指令。

显示标志时使用的符号:
标志标志=1 标志=0
OF OV NV
DF DN UP
IF EI DI
SF NG PL
ZF ZR NZ
AF AC NA
PF PE PO
CF CY NC
5.汇编命令A
A [地址];从指定的地址开始输入符号指令;如省略地址,则接着上一个A命令的最后一个单元开始;若第一次使用A命令省略地址,则从当前CS:IP 开始(通常是CS:100)。

注释:①在DEBUG下编写简单程序即使用A命令。

②每条指令后要按回车。

③不输入指令按回车,或按Ctrl+C结束汇编。

④支持所有8086符号硬指令,伪指令只支持DB、DW,不支持各类符号名。

6.反汇编命令U
① U [地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:IP开始(通常是CS:100)。

② U 范围;对指定范围的单元进行反汇编。

-U
-U100
-U100L10
7.运行程序命令G
① G;从CS:IP指向的指令开始执行程序,直到程序结束或遇到INT 3。

② G=地址;从指定地址开始执行程序,直到程序结束或遇到INT 3。

③ G 断点1[,断点2,…断点10];从CS:IP指向的指令开始执行程序,直到遇到断点。

④G=地址断点1[,断点2,…断点10]
-G ;从CS:IP指向的指令开始执行程序。

-G=100 ;从指定地址开始执行程序。

-G=100 105 110 120
8.跟踪命令(单步执行命令)T
① T;从当前IP开始执行一条指令。

② T 数值;从当前IP开始执行多条指令。

② T =地址;
③ T =地址数值;
-T
-T5 / -T=100 5
9.跟踪执行并跳过子程序命令P
P [=地址] [数值];类似T命令,但跳过子程序和中断服务程序。

10.退出DEBUG命令Q
Q;返回DOS环境。

-Q
11.命名命令N
N 文件标示符;指定文件,以便用W命令在磁盘上生成该文件,或者用L命令从磁盘装入该文件。

-N MY_
写盘:在当前盘当前目录生成指定文件。

读盘:在当前盘当前目录读取指定文件。

- N A:\ USER \ MY_
12.装入命令L
① L [地址];装入N命令指定的文件,默认的内存地址为CS:100。

-N MY_
-L
② L 地址驱动器号扇区号扇区数;将某驱动器的若干扇区(最多80H 个)装入内存;
0=A,1=B,2=C……;默认的段地址为CS。

-L DS:200 2 0 1
13.写盘命令W
① W [地址];将指定地址开始的内存数据写入磁盘,生成N命令指定的文件;默认的内存地址为
CS:100;写盘的字节数由BX(高位字)和CX(低位字)决定,可执行程序写盘时,文件扩展名应指定.COM。

-N MY_
-W
② W 地址驱动器号扇区号扇区数;将内存数据写入磁盘的若干扇区(最多80H);默认的段地址为CS。

-W DS:0 2 0 1
注释:写磁盘扇区要慎用
14.其他命令
(1)比较命令C
C 范围地址;将指定范围内的内容与以指定地址为起点的内容相比较。

(2)16进制数计算命令H
H 数1,数2(H 数1 数2);同时计算两个数字的和与差。

(3)查找命令S
S 范围数据;在指定范围内查找指定数据。

(4)输入命令I
I 端口地址;输入一个字节并显示。

(5)输出命令O
O 端口地址字节数据;输出到指定的端口。

(6)传送命令M
M 范围地址;将指定范围的内容传送到以指定地址为起点的存储单元。

相关文档
最新文档