调试程序DEBUG的练习一
实验一DEBUG的使用

实验一 DEBUG 的使用实验目的:1.学习使用.学习使用DEBUG DEBUG DEBUG程序的各种命令。
程序的各种命令。
程序的各种命令。
2.掌握.掌握8088/868088/868088/86指令系统指令系统指令系统---------算数指令。
算数指令。
算数指令。
3.掌握用.掌握用DEBUG DEBUG DEBUG调试自编程序的方法。
调试自编程序的方法。
调试自编程序的方法。
4.掌握.掌握8088/8086 CPU 8088/8086 CPU 寄存器的用途和存储器组织及它们之间的关系。
寄存器的用途和存储器组织及它们之间的关系。
寄存器的用途和存储器组织及它们之间的关系。
5.掌握内存操作数及寻址方法。
.掌握内存操作数及寻址方法。
6.掌握汇编语言伪操作.掌握汇编语言伪操作:BYTE PTR,WORD PTR :BYTE PTR,WORD PTR。
内容及步骤:一、一、DEBUG DEBUG 命令使用命令使用: :1、 敲 DEBUG 进入进入进入 DEBUG DEBUG 环境,显示提示符环境,显示提示符环境,显示提示符 '_ ' '_ '。
2、 用命令用命令 D100 10F D100 10F 观察内存中的观察内存中的161616进制码及屏幕右边的进制码及屏幕右边的进制码及屏幕右边的ASCII ASCII ASCII字符。
字符。
字符。
3、 用命令用命令 E100 30 31 32 E100 30 31 32 ………… 3F 3F 将30H 30H~~3FH 3FH写入地址为写入地址为写入地址为100H 100H 100H开始的内存单元中,开始的内存单元中,再用再用D D 命令观察结果,看键入的命令观察结果,看键入的161616进制数是什么字符的进制数是什么字符的进制数是什么字符的ASCII ASCII ASCII码码?4、 用命令用命令 F100 10F 'A' F100 10F 'A' 将'A''A'的的ASCII ASCII码填入内存,用码填入内存,用码填入内存,用D D 命令查看结果。
[微机原理与接口技术课件]实验一DEBUG软件的使用
![[微机原理与接口技术课件]实验一DEBUG软件的使用](https://img.taocdn.com/s3/m/f4f03ee09f3143323968011ca300a6c30c22f1c6.png)
实 验 一 DEBUG 软 件 的 使 用是专为8086/8088汇编语言设计的一种调试工具,是汇编语言程序设计者必须掌握的工具。
具有显示、修改、动态跟踪等功能。
使用它可以对*.COM 、*.EXE文件进行动态跟踪。
DEBUG可以显示和修改内存与寄存器内容,以便在调试中检查程序,查找与改错;亦支持小汇编,直接对小段程序进行汇编;也可对磁盘进行读写。
一、实验目的1.通过实验掌握DEBUG软件的基本使用方法。
2.进一步熟悉、理解8088/8086的寻址方式。
3.掌握数据传送、算术运算、逻辑运算等类指令的基本操作。
二、实验内容与步骤本实验进行前必须保证系统盘上有DEBUG.EXE文件。
进入DEBUG只需在DOS环境下执行 DEBUG命令,即键入DEBUG回车后,屏幕上显示 DEBUG提示符:“_”(短划线)。
操作如下:C:>DEBUG-注: 字符下有下划线的为键入的内容,\代表回车,后面内容均如此.1.程序输入汇编命令(A命令)在输入程序应注意以下几点:(1)输入的数字必须是十六进制数,并且不输入H。
(2)分号后面的内容(注释)不要输入。
(3)不输入标号,条件转移指令中的标号用偏移地址代替。
方法:先用一个离本转移指令的IP不远的但不一定准确的偏移地址代替标号 ,待程序输入且完成反汇编后获得标号所在处的准确的偏移地址时再修改。
在DEBUG提示符下键入A即进入汇编输入状态-A \键入下面的汇编程序13F2:0100 MOV AX,200013F2:0103 MOV DS,AX13F2:0105 MOV SS,AX13F2:0107 MOV BX,205013F2:010A MOV SI,BX13F2:010C MOV DI,305013F2:010F MOV SI,DI13F2:0111 MOV SP,5FFF13F2:0114 MOV CL,1913F2:0116 MOV BL,CL13F2:0118 MOV AH,F013F2:011A MOV CH,AH13F2:011C MOV BYTE PTR [DI],4013F2:011F MOV WORD PTR [SI],010013F2:0123 MOV DL,[SI+01]13F2:0126 MOV DH,[SI+01]13F2:0129 MOV AL,[SI+01]13F2:012C MOV WORD PTR [BX+SI],0022 13F2:0130 MOV [BX+SI+02],BX13F2:0133 MOV [BX+SI+02],BX13F2:0136 MOV BP,[BX+DI+02]13F2:0139 MOV [BX+DI],BX13F2:013B MOV AX,[BP+DI]13F2:013D MOV BL,AL13F2:013F MOV ES,BX13F2:0141 PUSH BX13F2:0142 PUSH DI13F2:0143 PUSH DI13F2:0144 POP CX13F2:0145 POP DX13F2:0146 XCHG BP,AX13F2:0147 XCHG DH,BL13F2:0149 SAHF13F2:014A CMC13F2:014B LAHF13F2:014C STD13F2:014D CLI13F2:014E PUSHF13F2:014F CLD13F2:0150 POPF13F2:0151 INT2113F2:0153 ^C重新回到DEBUG提示符“-”状态,表示汇编命令已结束。
有图示的用DEBUG调试程序过程示例

用DEBUG调试程序示例例如:编程实现两个字类型的数相加,把和存在存储单元中,并且用debug查看程序的运行结果,检查程序运行结果的正确性。
参考源程序如下:DATA SEGMENTNUM1 DW 1234HNUM2 DW 5678HSUM DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,NUM1ADD AX,NUM2MOV SUM,AXMOV AH,4CHINT 21HCODE ENDSEND START假设把源程序命名为jiafa.asm,输入源程序后,完成汇编、连接的过程,则生成了可执行文件jiafa.exe。
运行此可执行文件时在屏幕上无显示结果。
在debug下调试程序的步骤示例如下:一、进入debug,同时把被调试程序调入内存。
回车后即进入了debug程序,结果如下图所示:注意:被调试的是可执行文件,而且文件必须写全名,不能只写主文件名。
二、用u命令反汇编(输入u后回车),以便查找需要设置断点的地址。
三、设置断点运行断点可以设置在程序中的任意一条指令的首地址处,但为了能够查看到程序的运行结果,一般把断点设置在主程序运行完并且程序退出之前,例如程序的最后两条指令是MOV AH, 4CHINT 21H则把断点设置在MOV AH, 4CH处,(如果程序较长,一次反汇编没有找到上述指令,再次输入u命令后回车,直到显示上述指令为止,),对于本例,显示如下图所示的结果。
如上图示例中的指令mov ah,4ch的偏移地址是0000F,指令int 21h(debug下默认为16进制,不显示h)的偏移地址是0011,则用G命令设置断点运行时输入g0F(g是debug下的程序运行命令,后面的数字0F是刚才选定的断点地址)回车后结果如下图:为了能够查看你的程序在内存单元中存放的数据,必须设置断点运行不能只用G命令,并且断点必须是你程序中的某条指令,一般设置在MOV AH, 4CH处。
DEBUG命令练习

2010年10月31日星期日
2010年10月31日星期日 4
存储单元内容修改命令——E命令 存储单元内容修改命令 命令
E 100 查看DS段中 单元起始的存储单元内容, 查看 段中100H单元起始的存储单元内容,并可随 段中 单元起始的存储单元内容 时修改; 时修改; E ES:10 1 31 20 段中地址为10H~12H的3个单元中的值修改为 、 个单元中的值修改为1、 将ES段中地址为 段中地址为 的 个单元中的值修改为 31H、20H; 、 ; E 10 ‘ABCD’ 段中地址为10H~13H的4个单元中的值修改为 将DS段中地址为 段中地址为 的 个单元中的值修改为 41H、42H、43H、44H; 、 、 、 ;
2010年10月31日星期日 3
DEBUG调试命令 调试命令
以下所有命令都是DEBUG命令; 以下所有命令都是 命令; 命令 查看存储单元内容的命令——D命令 命令 查看存储单元内容的命令 D——默认查看; 默认查看; 默认查看 D 1000:0——从指定单元查看数据,默认长度; 从指定单元查看数据, 从指定单元查看数据 默认长度; D DS:0——从指定单元查看 段中的数据,默认长度; 从指定单元查看DS段中的数据 从指定单元查看 段中的数据,默认长度; D 0 5——查看 段中 查看DS段中 单元中的6个数据 查看 段中0~5单元中的 个数据; 单元中的 个数据; D 10 L 5——查看 段中从 查看DS段中从 单元开始的5个单元内容 查看 段中从10H单元开始的 个单元内容; 单元开始的 个单元内容;
实验一 利用 DEBUG 调试汇编语言程序段

实验名称实验一利用 DEBUG 调试汇编语言程序段一、实验目的1.熟悉 DEBUG 有关命令的使用方法;2.利用 DEBUG 掌握有关指令的功能;3.利用 DEBUG 运行简单的程序段。
二、实验要求1.仔细阅读有关 DEBUG 命令的内容,对有关命令,要求事先准备好使用的例子;三、实验环境DOS 操作系统四、实验内容1.进入和退出 DEBUG 程序;1)开始—运行点确定进入DOS命令窗口图1进入DOS命令窗口2)在命令窗口中输入 dubug 进入 debug 程序图2进入 debug 程序3)进入 debug 窗口后,输入 q 命令退出 debug图3退出 debug2.学会 DEBUG 中的1)D 命令(显示内存数据 D 段地址:偏移地址)例 1:-D100 ;显示 DS 段, 0100 开始的 128 个字节内容-D ;默认段寄存器为 DS,当前偏移地址(刚进入 debug 程序偏移地址为 0100H)图4默认显示 DS 段内容-D DS:100 ;显示 DS 段, 0100H 开始的 128 个字节内容图5显示 DS 段内容-D CS:200 ;显示 CS 段, 0200H 开始的 128 个字节内容图6显示 CS 段内容-D 200:100 ;显示 DS 段, 0200:0100H 开始的 128 个字节内容图7显示 DS段0200:0100H内容-D 200 ;显示 DS 段, 0200H开始的128个字节内容图8显示 DS段0200H开始的内容-D 100 L 10 ;显示 DS 段, 100H 开始的 100H 个字节内容图9显示 DS段100H开始的100H字节内容2)E 命令(修改指定内存)例 1:-E100 41 42 43 44 48 47 46 45-D 100,L08结果:073F:0100 41 42 43 44 48 47 46 45-e 100 修改内存内容-d 100,L08 查看刚才修改的内存内容图10 修改和查看DS段100H开始的80H字节内容例 2: -E 100073F:0100 41. 42 : 42 是操作员键入此命令是将原 100 号内存内容 41 修改为 42,用 D 命令可察看。
微机原理与接口技术 DEBUG 调试程序的应用(1)

实验一Debug 调试程序的应用一、实验目的1.掌握Debug常用命令的应用。
2.利用Debug调试可执行文件(*.EXE)。
二、实验内容1. 进入Debug,使用A命令将源程序写入100H开始的内存并汇编,然后使用G命令运行程序,接着用U命令反汇编,将机器指令送到起始地址为200H 的若干单元并加以验证,用Q命令退出Debug,返回DOS提示符。
2. 进入Debug,使用A命令将源程序写入100H开始的内存并汇编,然后使用G命令运行程序,接着用D命令观察运行结果后,在用U命令反汇编,用Q命令退出Debug,返回DOS提示符。
3.进入Debug,用A命令写入汇编源程序,接着用R命令显示状态,并用T命令单条执行指令,注意在执行命令的同时观察相应寄存器的状态。
4.练习使用填充命令F、搬家命令M和比较命令C。
5.利用Debug调试可执行文件(*.EXE)。
三、实验仪器、材料1. 软件DOSBOX、MASM2. PC微机一台四、实验步骤1.进入debug,使用A命令:-a100写入以下代码:MOV DL, 33H ;字符3的ASCII送DLMOV AH, 2 ;使用DOS的2号功能调用INT 21H ;进入功能调用,输出‘3’INT 20H ;执行INT 20H中断服务程序,结束程序,返回DOS 写完回车两下,再用-g=起始地址结束地址命令回车,再用-u命令回车,用-d100可得如图1-1,然后用-e200命令空格依次输入:B2 33 B4 02 CD 21 CD 20回车,用-d200可得如图1-2,用q退出debug。
2.进入dedug,使用A命令:-a300 写入以下代码MOV AL, [0120]ADD AL, [0122]DAAMOV BY[0124],ALMOV AL, [0121]ADC AL, [0123]DAAMOV BY[0125],ALINT 20用-g命令,再-d100查看结果如图2-1,在用U命令反汇编,用Q命令退出debug。
实验一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的使用

源程序:MOV AL,30H
MOV BL,26H
ADD AL,BL
PUSH AX
POP DX
MOV AH,02H
INT常用指令练习
1、传送指令
1)用A命令在内存100H处键入下列内容:
0AF4:0108 int 21
0AF4:010Amov dl,43
0AF4:010Cint 21
0AF4:010E int 20
0AF4:0110
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AF4 ES=0AF4 SS=0AF4 CS=0AF4 IP=0100 NV UP EI PL NZ NA PO NC
:0206 CD20 INT 20H ;结束
步骤:a.用E命令将目标代码写入内存CS:0200H~0207H
—E DS:200 B2,33,B4,02,CD,21,CD,20
b.用G命令从200H开始执行。
—G=CS:200
屏幕显示:
3
Program terminated normally.
—
c.用U命令反汇编
(2)用键盘,将AX,BX,CX,DX及DS,ES清0。
2.简单程序的执行:
(1)用E命令输入一段程序并执行,其源程序,目标代码及地址分配如下:
CS:0200 B233 MOV DL,33H ;将十六进制数‘33’存入DL中
:0202 B402 MOV AH,02H ;DOS2号功能调用
:0204 CD21 INT 21H ;屏幕显示DL内容
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言调试程序DEBUG的练习一一、练习目的1、学习使用DEBUG程序的各种命令。
2、利用DEBUG学习8086指令系统。
二、练习任务1、参照说明,掌握DEBUG程序的各种命令,重点是命令R,D,A,U,T,P,G命令的使用。
用命令A汇编下列指令,判断指令正误并说明原因。
1).ROR AX,8;错误,因为ROR指令的源操作数只能是数字1或是CL。
2).LEA DI,[AX];错误,因为LEA指令的目的操作数不能是DI。
3).MOV DS,2010;错误,因为段寄存器和立即数不能在MOV指令间传。
4).PUSH AL;错误,因为PUSH指令的目的操作数只能是通用寄存器或是内存。
5).OUT 900,AL;错误,因为900已经超过了8位二进制数的范围。
6).MOV [BX],0;错误,因为内存和立即数之间的类型没有确定。
2、练习使用汇编命令1)利用加法指令求3+52)利用乘法指令求3*53)利用算术运算指令求3的补码4)学习使用逻辑运算指令。
求5和17相与、相或的结果。
5)学习数据传送指令三、设备PC机一台四、练习步骤1、实现3加5:2、实现3*5:3、实现求3的补码:4、实现5和17相与:5、传送指令(独立练习)1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX2)用U命令检查键入的程序并记录,特别注意左边的机器码。
3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。
并注意标志位有无变化。
说明:下面所有操作均在DOS状态下进行。
DEBUG.EXE是DOS操作系统提供的一个调试汇编语言程序的工具程序。
其主要功能为:1.可动态调试汇编语言程序;2.可检查或修改CPU各寄存器、标志及内存单元的内容;3.可输入汇编指令到指定的内存;4.可把要调试的程序(通常以可执行文件形式存储在磁盘上)调入到内存中,控制CPU 按单步、设置断点等方式执行程序,检查程序运行过程中的中间结果,以便寻找程序出错的原因。
一、进入DEBUGC:\MASM>DEBUG二、常用DEBUG 命令1、DEBUG命令概述(1)特点A.除命令RF外,DEBUG命令本身均为单字符,后面跟一个或多个参数,有些命令不给参数也能运行,如下表[]中的参数,这种情况下用默认值作为参数;B.DEBUG下输入和显示的数均为十六进制数,故数字后不可加后缀H,O,B等,否则认为命令错;C.命令和参数不区分大小写;分类命令格式功能简介读写寄存器R 显示所有寄存器内容R 寄存器名显示和修改指定寄存器内容RF 显示和修改FR的内容汇编和反汇编A[内存地址] 从指定地址开始汇编指令U[内存块] 对指定内存块进行反汇编执行指令T[=内存地址][条数] 单步或多步执行指令P[=内存地址][条数] 单步或多步执行指令G[=内存地址] 连续执行指令G[=内存地址] 断点地址设断点执行程序读写内存D[内存块] 显示指定内存块内容E 内存地址字符或数值串修改指定内存内容F 内存块字符或数值串填充指定内存块S 内存块字符串或数值在指定内存块中查找串M 内存块1 内存块2的首地址复制内存块内容C内存块1 内存块2的首地址比较两个指定内存块退出DEBUG Q 退出DEBUG,返回DOSDEBUG主要命令一览表(2)常用参数含义A、内存地址内存地址表示一个内存区域的起始地址,由段地址和偏移地址两部分组成。
段地址可用一个1至4位的十六进制数表示,也可用某个段寄存器表示,偏移地址只能用1至4位的十六进制数表示。
段地址和偏移地址之间必须用冒号分隔。
例 300:800 表示300:800H的内存地址CS:100 表示以CS的内容为段地址,偏移地址为100H的内存地址B、内存块内存块表示一个内存区域,有两种表示方法:一种是用首地址和末地址表示,其中首地址用前面介绍的内存地址表示法,而末地址只用偏移地址表示,其段地址默认为首地址的段值,末地址的偏移地址应比首地址的偏移地址大。
另一种是用首地址和长度表示,其中长度由字符L引出。
内存块的最大值是64K。
命令D默认的长度为80H个字节,命令U默认的长度为20H个字节。
例下面两种表示法均表示DS:200H~DS:24FH的内存块DS:200 24FDS:200 L50例下面两种表示法均表示3000H:5100H~3000H:51FFH的内存块3000:5100 51FF3000:5100 L100C、字符串参数一般用单引号‘’给出例:-F DS:1000 ‘P lease Input:’D、数值参数为一个字节的十六进制数。
多个数值参数之间必须用分隔符分隔。
例:-E DS:2000 12 34 56 78 902、常用DEBUG命令介绍(1)显示、修改寄存器内容A、显示所有寄存器内容格式:-R功能:以十六进制形式显示CPU内部各寄存器的值;以符号形式显示标志寄存器各标志位(TF除外);并将CS:IP所指向的内存内容反汇编成一条指令,可视为将要执行的指令。
标志名称标志为1 标志为0 溢出标志(OF)(overflow flag) OV NV方向标志(DF)(direction flag) DN UP中断标志(IF)(interrupt flag) EI DI符号标志(SF)(sign flag) NG PL零标志(ZF)(zero flag) ZR NZ辅助标志(AF)(auxiliary carru flag) AC NA奇偶标志(PF)(parity flag) PE PO进位标志(CF)(carry flag) CY NC标志位的符号表示例进入DEBUG后,查看各寄存器的值,并记录当前CS和IP的值。
-RAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000SI=0000 DI=0000DS=1270 ES=1270 SS=1270 CS=1270 IP=0100 NV UP EI PL NZNA PO NC1270:0100 0409 ADD AL,09从显示可知,CS=1270H,IP=0100H由于所装的系统不同,可用内存会有所不同,应记录自己系统进入DEBUG后的CS和IP值。
B、修改寄存器格式:-R 寄存器名功能:DEBUG首先显示指定寄存器的当前值,并在下一行首给出提示符“:”,等待用户输入新值。
若直接回车相当于不修改寄存器的值。
例–R DS1270:12A3DS的内容由原来的1270H修改为12A3H。
(2)汇编、反汇编指令A、汇编命令A格式:-A 内存地址功能:先显示汇编的内存地址,等待用户输入一条助记符指令。
用户输入指令并回车后,DEBUG将把这条指令对应的机器码顺序存放在指定的内存单元中,并提示下一地址,等待用户继续输入下一条指令。
若直接回车,则退出A命令。
若输入指令有误,则显示出错信息,仍然提示当前的汇编地址,用户可重新输入指令。
-A 1270:1001270:0100 MOV AH,21270:0102 MOV DL,’a’error1270:0102 MOV DL,611270:0104 INT 211270:0106 INT 201270:0108B、反汇编指令U格式1:-U 内存地址格式2:-U 内存块功能:格式1从指定地址处开始将20H个字节的目标代码转换成汇编指令形式,缺省内存地址时,从当前地址CS:IP开始。
格式2将指定范围的内存单元中的目标代码转换成汇编指令。
例反汇编从1270:100开始长度为20H个字节的内存单元内容。
-U 1270:1001270:0100 B402 MOV AH,021270:0102 B261 MOV DL,61…(3)显示、修改内存内容A、显示命令D格式1:D 内存地址格式2:D 内存块功能:格式1从起始地址开始按十六进制显示80H个单元的内容,每行16个单元,共8行,每行右边显示16个单元的ASCII码,不可显示的ASCII码则显示“·”。
格式2显示指定范围内的存储单元的内容。
若地址缺省,则按格式1显示。
例如-D 200;表示从DS:0200H开始显示128个单元内容-D 100 120;表示显示DS:1000~DS:0120单元的内容例:-D 12AF:100 L3012AF:0100 41 42 43 44 45 00………ABCDE.W….12AF:011012AF:0120B、修改命令E格式1:-E 内存地址字符或数值串格式2:-E 内存地址功能:对于格式1,用命令中的字符串或数字修改指定的内存单元。
对于格式2,先给出命令中指定内存单元的内容,并给出提示符“·”,可在其后输入要修改的值,若直接按空格则不修改该单元内容,而接着提示下一单元的内容,若直接回车表示结束E命令。
例用字符串‘HELLO‘对应的ASCII码修改从DS:1000H开始的5个内存单元。
-E DS:1000 ‘HELLO‘例用数值12H,34H,56H,78H,90H,FAH 修改从12FA:100H开始的6个单元。
-E 12FA:10012FA:0100 41.12 42.34 43.56 44.78 45.90 00.FA 57C、填充命令F格式:-F 内存块字符或数值串功能:用命令中指定的字符或数值串填入指定的内存块,当指定的字符或数值串的总字节数小于指定的内存块,则在指定的内存块重复输入。
例将字符串‘H ELLO WORLD’填入DS:2000至2100H的内存块中:-F DS:2000 2100 ‘HELLO WORLD’D、搜索命令S格式:-S 内存块字符或数据串功能:在指定的内存块内搜索指定的字符或数据串,如找到则显示字符或数据串在内存中的首地址。
例:在DS:2000H开始,大小为20H的内存块中查找字符串‘HELLO WORLD’-S DS:2000 L20 ‘HELLO WORLD’12A3:200012A3:200CE、复制命令M格式:-M 内存块1 内存块2的首地址功能:将内存块1的内容复制到内存块2,内存块1的内容不变。
例将2000:100H开始,大小为20H的内存块复制到DS:200H-M 2000:100 L20 DS:200F、比较命令C格式:-C内存块1 内存块2的首地址功能:顺序比较两内存块各单元的内容,如两个内存块内容相同,则不显示任何信息,直接返回DEBUG状态;如有不同,则将各自的地址和内容显示出来。
例比较DS:200H和2000H:100H开始,大小为20H的两内存块。
-C DS:200 L20 2000:100(5)执行程序A、单步执行格式:-T=内存地址-P=内存地址功能:用命令中内存地址的段地址和偏移地址修改CS和IP,然后执行由CS:IP指向的内存单元处的一条指令,显示各寄存器的值,并反汇编下一条指令,返回DEBUG状态。