主题:debug 是个什么样的程序啊?
jdxyw
[专家分:230] 发布于 2006-06-24 00:42:00
debug 是个什么样的程序啊?有什么用途?怎么用啊?
回复列表 (共3个回复)
沙发
wbsun111 [专家分:320] 发布于 2006-06-24 20:50:00
你仔细看一下教科书
这是一个调试程序,最多支持16bit
怎么用,我也不知道
我也是专科生,学校刚刚教完汇编语言上半部分,可惜,不教下半部分了
板凳
aboutbmp [专家分:830] 发布于 2006-06-25 22:57:00
命令行下的调试程序,你平时写dos汇编程序时调试代码用。
详细使用内容查书or上网查。
3 楼
宽 [专家分:150] 发布于 2006-06-26 14:37:00
1. 直接启动DEBUG程序
格式:DEBUG
功能:该命令是在DOS下把DEBUG.EXE程序调入内存,并运行DEBUG程序。命令输入后,出现提示符“-“,表示已在DEBUG状态,可执行DEBUG程序的命令。DEBUG相当于DOS的一个外部命令,其版本应与DOS版本相符,若两者的版本不同,输入DEBUG后屏幕上将显示错信息“Incorrect DOS Version”,表示DEBUG的启动失败。
说明:DEBUG高度程序是在DOS 下运行的一个软件。如果使用的是DOS操作系统,在DOS的提示符”>”下输入DEBUG;如果使用的是WindoW平台,则可以使用Window中的“MS-DOS方式”来启动DEBUG。
2. DEBUG程序的同时装入被装入调试文件
命令格式如下:
DEBUG [盘符][路径]文件名.扩展名
如:ABC.EXE 可执行文件存放在A盘根目录,用DEBUG调试时,装入程序的操作命令如下:
>DEBUG A:\ABC.EXE
DOS在调用DEBUG程序后,再由DEBUG把被调试文件装入内存,当被调试文件的扩展名为.COM时,装入偏移地址为100H的位置,当扩展名为.EXE时,装入偏移地址为0000H(因为.EXE文件需要重定位,默认的偏移地址为0000H,当用ORG指定时,就采用指定值)的位置,并建立程序段前缀PSP.
3. 启动DEBUG程序的同时装入带有参数的被调试文件
命令格式如下:
DEBUG [盘符][路径]文件名.扩展名 参数1[参数2]
如:
C:\>DEBUG DISKCOMP.COM A:B:
其中的A:与B:参数是DISKCOMP.COM文件所要求的。
4. 退出DEBUG程序
在DEBUG命令提示符"-"下键入Q命令,即可结束DEBUG的运行,返回DOS操作系统。
5. 在BEBUG环境下建立和汇编程序
在DEBUG环境下用户可以直接建立汇编语言源程序,也可以进行编辑修改,还可以进行汇编
比如,在DEBUG下运行如下程序:
MOV DL,38H ; 字符"8"的ASCII码送DL
MOV AH,2 ; 使用DOS的2号功能调用
INT 21H ; 进入功能调用,输出"8"
INT 20H ; DOS中断服务,程序正常结束
该程序运行结果是在显示器上输出一个字符"8"。如果要输出其他字符,请改变程序中"38H"为相应字符的ASCII码。其中涉及DOS和BIOS功能调用。因为我们是在DOS的支持下运行汇编语言程序,所以一般情况下,不能轻易使用输入/输出指令直接通过端口输入或输出,而必须使用DOS内部提供的子程序完成输入或输出。
DOS功能调用就是为诸如此类的目的设置的。DOS功能调用要求在进入INT 21H调用前,首先将功能调用号送入AH寄存器,并根据功能调用号准备初始数据。也就是说INT 21H的2号功能调用是输出DL寄存器中的字符。INT 20H是DOS中断服务,这一软中断用来正常结束程序。
分类 命令格式 功能简介
读写寄存器
R 显示所以寄存器内容
R寄存器名 显示和修改指定寄存器内容
RF 显示和修改标志寄存器内容
汇编和反汇编 A[内存地址] 从指定地址开始汇编指令
U[内存块] 对指定内存块进行反汇编
执行命令 T[:内存地址][条数] 单步或多步执行命令
P[= 内存地址][条数] 单步或多步执行指令
G[= 内存地址] 连续执行指令
G[= 内存地址]断点地址 设断点执行程序
读写内存 D[内存块] 显示指定内存块内容
E 内存地址 字符或数值串 修改指定内存内容
F 内存块 字符或数值串 填充指定内存块
S 内存块 字符串或数值 在指定内存块中查找串
M 内存块1 内存块2的首地址 复制内存块内容
C 内存块1 内存快2的首地址 比较两个指定内存块
读写磁盘 N[d:][PATH]文件名.扩展名 指定欲读写的磁盘文件
W 内存地址 将指定内存块写入文件
L[内存地址] 将文件调入内存
读写I/O端口 I端口地址 读入指定端口的内容
O端口地址 数值 将数据写入指定端口
十六进制加减 H 数值1 数值2(-h 34,22)kf 计算并显示两数之和,两数之差
退出DEBUG Q 退出DEBUG,返回DOS
我来回复