实验一 利用DEBUG调试程序调试程序段

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

实验一利用DEBUG调试程序调试程序段1.实验目的

(1)熟悉DEBUG有关命令的使用方法。

(2)利用DEBUG掌握有关指令的功能。

(3)利用DEBUG运行简单的程序段。

2.实验内容、实验步骤

(1)进入和退出DEBUG程序。

进入DEBUG程序,Windows中在命令提示符下进入DEBUG如图:退出DEBUG如图:

(2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命

令等的使用。对于U命令、N命令、W命令等,也应试一下。

➢R命令:

1)显示所有寄存器内容:

格式:-R↙

功能:以十六进制形式显示CPU内部各寄存器的值:以符号形式标志寄存

器各标志位(除TF外)的值,并将CS:IP所指的内存内容反汇编成一条指

令,可视为将要执行的指令。

●从显示可知,CS=11A7H, IP=0000H.

2)修改寄存器

格式:-R 寄存器名↙

功能:DEBUG首先显示指定寄存器的当前值,并在下一行首给出提示“:”,

等待用户输入新值,若直接回车相当于不个忙寄存器的值。

●由显示可知,用E命令修改,再查看可发现数据已经被改了。

3)修改标志值

格式:-RF↙

功能:先用符号显示当前各标志位的值,并在末尾给出提示符“-”,然后等待用户以符号形式输入新的标志值,对输入的次序没有要求,各标志值之间也可没有空格;若直接在“-”之后回车,则保留原标志值。

●由显示可知,相应的标志值改变了。

➢A命令

格式:-A 内存地址↙

●执行汇编命令A后,相应的指令对应的机器码将会依次存放在指定的

内存单元中,并提示下一地址。

➢U命令

格式:-U 内存块↙

●由显示可知,反汇编命令U从指定的内存地址开始对内存块进行反汇

编,并分三列显示反汇编的结果。

➢N命令

格式:-N【e】【PA TH】文件名.扩展名↙

➢W命令L 命令

格式:-W/L 内存地址

●由显示可知,命令N为命令W和命令L指定文件,而命令W把指定

内存块的内容写入命令N指定文件中,命令L则将其文件装入内存地址中。

➢T命令

1)单步执行

格式:-T=内存地址↙

●由显示可知,T命令将内存地址的段地址和偏移地址修改CS和IP,然

后执行由CS:IP指向的内存单元处的一条指令,显示各寄存器的值,并反编下一条指令,然后返回DEBUG状态。

2)多步执行

格式:-T=内存地址执行指令条数↙

●可知,该指令从指定的内存地址开始执行,直到执行的指令条数与命

令中给出的条数相等为止。图为执行从10DB:100H开始的两条指令。

➢G命令

格式:-G=内存地址断点地址↙

●由图示可知,G命令从给出的内存地址0100开始取指令执行,直到程

序中遇到结束程序指令为止。如该命令中INT 3。

➢D命令

格式:-D内存块↙

➢E命令

格式1:-E内存地址字符或数值串↙

格式2:-E内存地址

●由图示可知,D命令显示内存2000与2003中的内容,而E命令则能

修改内存地址中的内容。

格式:-F内存块字符或数值串↙

●由图示可知,该F命令将指定的字符或数值串填入指定的内存块,即

将字符串‘Hello World!’填入DS:2000H至2100H的内存块中。

➢S 命令

格式:-S 内存块字符或数值串↙

●该命令为在指定的内存块内搜索指定的字符或数值串。图中为在

DS:2000H开始,大小为20H的内存块中查找字符串“Hello World!”。

➢M 命令

格式:-M 内存块1 内存块2的首地址↙

●该命令将内存块1的内容复制到内存块2,内存块1的内容不变。图示

将2000:100H开始,大小为20H的内存块复制到DS:200H开始的内存处。

格式:-C 内存块1 内存块2的首地址↙

●该命令顺序比较两内存块各单元的内容。如图示为比较DS:200H和

2000H:200H开始,大小为20H的两内存块。

(3)利用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。

➢乘法MUL

格式:MUL SRC

➢除法DIV

格式:DIV SRC

➢加法ADD

格式:ADD DST, SRC

➢减法SUB

格式:SUB DST, SRC ➢带进位加ADC

➢带借位减SBB

➢堆栈操作指令PUSH/POP

3.实验准备

(1)仔细设计有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。

(2)作为例子,准备用A命令,输入在显示器上显示字符“S”的系统调用程序段。

(3)阅读将AX左移9位的程序段。

4.实验步骤

(1)在DOS提示符下,进入DEBUG程序。在DOS子目录下启动DEBUG。(2)详细记录每一步所用的命令,以及查看结果的方法和具体结果。

例:显示S

5.实验讨论

(1)启动DEBUG后,要装入某一个.EXE文件,应通过什么方法去实现?

格式:>\[d:][PATH]DEBUG 文件名.扩展名↙

指导教师意见:

签名:年月日

相关文档
最新文档