实验二 汇编语言动态调试程序Debug的使用.doc
文本预览下载声明
实验二 Debug的使用(基础与验证型)
一、实验要求和目的二、环境1、硬件环境:微机CPU 486以上,500MB以上硬盘,32M以上内存;
2软件环境:装有MASM 5.0、D、LINKEDIT、CREF.EXE和EXR2BIN.EXE等应用程序。
三、Debug就是用来调试汇编语言程序的一种工具。Debug的主要功能有显示和修改寄存器及内存单元的内容;按指定地址启动并运行程序;设置断点使程序分段运行,以便检查程序运行过程中的中间结果或确定程序出错的位置;反汇编被调试程序,它将一个可执行文件中的指令机器码反汇编成助记符指令并同时给出指令所在的内存地址;单条追踪或多条追踪被调试程序,它可以逐条指令执行或几条指令执行被调试程序,每执行一条(或几条)指令后,Debug程序将中断程序的运行并提供有关结果信息;汇编一段程序,在Debug的汇编命令下可以直接输入助记符指令,并将其汇编成可运行程序段。此外,Debug还可以将磁盘指定区的内容或一个文件装入到内存或将内存的信息写到磁盘上等等。
启动Debug程序:在DOS状态下可以用下面的命令启动Debug程序:
DEBUG [路径文件名.扩展名]
Debug后面的文件名及路径是指被调试程序的文件名及路径,Debug后面的文件必须是程序的可执行文件,其扩展名可以是.EXE 或.COM。在此命令后,DOS将调试程序Debug调入内存,Debug接着将被调程序送入内存。比如:DEBUG 123.EXE
调试程序Debug的主要命令如下:
(一)显示内存单元内容的命令D
格式(1):-D 地址
从指定地址开始,16个单元的内容,最右边区域则显示这一行的16个单元所对应的可显示的字符。若无可显示的字符,则用圆点(小数点)填充。
D命令中的地址可为段内偏移量,也可为段基址和段内偏移量两部分,中间用冒号隔开,如1680:0110,即指段基址为1680H,0110H。Debug中所显示的数据均为十六进制数,H标志。
格式(2):-D 范围
将显示指定地址范围内的内存单元的内容,,,,DS中。这里所说的范围包含起始地址和结束地址。
比如 –D DS:1000 1020
将显示数据段偏移地址为1000H到1020H的内容。
(二)修改内存单元内容的命令E
格式(1):-E 地址 内容表
它的功能是用给定的内容表去代替所指定的内存单元的内容。
例如:
E DS:0110 41 ‘CLOSE’ 41
该命令执行后,DS:0110 到DS:0116 的7个存储单元中。
格式(2):E 地址
它的功能是可以连续地逐个修改内存单元的内容。当屏幕上显示指定单元的地址和内容之后,:
①若指定单元的内容需要修改,,,,,,,,
②若需要显示前一个单元的地址和内容,-′,若要修改,,,-′键,
③按CR键,E命令。
(三)检查和修改寄存器内容的命令R
格式(1):R
此时将显示所有寄存器的内容和全部标志位的状态,CS:IP所指的机器指令代码和反汇编符号。
格式(2):R 寄存器名
该格式可用于检查和修改指定寄存器的内容。若不修改其内容,CR键,若需要修改其内容,1-4 个十六进制数,CR键。
格式(3):RF
该格式可用于显示标志和修改标志位状态。
当系统给出标志位状态后,
①若不需要修改任一标志位,CR键。
②若需要修改一个或多个标志位,,CR键。
由于标志位状态显示时,,,:
标志名置 位符号复 位符号
溢出标志OF(是/否) OV NV
方向标志DF(减/增) DN UP
中断标志IF(允许/禁止) EI DI
符号标志SF(负/正) NG PL
零标志ZF(是/否) ZR NZ
辅助进位标志AF(是/否) AC NA
奇偶校验标志PF(偶/奇) PE PO
进位标志CF(是/否) CY NC
只有追踪标志TF,RF命令,OV DN EI NG ZR AC PE CY-
若现在要修改奇偶、零、中断和溢出标志位,
PO NZ DI NVCR
(四)运行程序命令G
格式:G [=地址][地址[
显示全部