DEBUG命令详解
更新时间:2023-11-15 11:53:01 阅读量: 教育文库 文档下载
命令行参数形式:
格式: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 0 DI 0 0 BP 0 0
SP 0FFFFH或可利用的 不定 内存空间上限减2
IP 100H 目标程序的的代码 入口偏移量
CS PSP 目标程序代码段址 DS PSP PSP CS PSP PSP
SS PSP 目标程序堆栈段底 命令:
A: 编写汇编代码(Assemble) 格式:A[地址]
用途:程序允许在指定位置(若无缺省为IP指针位置)进行汇编 程序书写。 细节:
*所有数值皆为十六进制整数,数值后不带“H” *不支持文件管理用的目录表、宏标记、条件汇编 *跳转指令后要直接书写十六进制地址不支持标号 *数据类型若非默认类型,要以PTR加以指定
*字符串操作要指定类型为B或W(如lodsb和lodsw等)及长度 *用DB和DW接受数据定义,直按进行汇编 *对内存地址加[]以与立即数区分
C: 内存内容比较(Compare) 格式:C 地址范围 地址
地址范围:做比较的第一个内存域始未地址或始地址和长度
地址: 做比较的第二个内存域的始地址
用途:*对内存中两个域的内容加以比较,以字节为单位。对发现有 差别的内容及其地址用如下形式显示出: 地址1 始位置 未位置 地址2
*若地址范围或地址不含段地址,默认为DS的值。 D: 显示内存内容(Dump) 格式:D[地址范围]
地址范围:给定显示区的始未范围或始地址和长度。
用途:*内存内容显示指令,以十六进制和ASCII码形式显示指定范 围内的内存内容。
*若不指定范围,第一次按目标程序的CS:IP的位址开始显示。 以后使用上次显示的未地址的下一地址为开始进行显示。 *若不指定长度,则显示128byte的内容。计8行。
E: 数据的输入
格式:E 地址 数值列表 地址: 数据输入的内存始地址 数值列表:从始地址输入的连续数据
用途:*向内存区域输入数据。数据以十六进制形式,或以ASCII码形式 均可。覆盖掉原有数据。
*十六进制时要用空格、逗号或制表符加以分隔。字符串则要用单 引号或双引号括起且区分大小写。
*若不指写段址,则默认为DS中值。每写完一数据地址自动增加。 *如省略数值列表,对应每一字节请求输入。点号前为该字节原 始值,点号后请求输入。这时若按空格,跳过这一字节;按回车, 结束输入;按减号或连字符,显示前一字节内容。 *出错时内存内容有可能已被改变。提示后终止。 *字符串只能以数值列表的形式输入,不能按地址提式输入。
F: 内存填充(Fill)
格式:F 地址范围 数值列表
地址范围:数据输入的内存始本地址或首地址和长度 数值列表:从始地址输入的连续数据
用途:*将列表中数据写入内存。输入数据以十六进制或ASCII码形式。 覆盖原有信息;若出错,显示出错信息,原有信息保留。 *若未指写段址,默认为DS寄存器值。
*列表中可有十六进制或字符串两种形式,各内容用空格、逗号、 制表符隔开。字符串必须以单引号或双引号括起,区分大小写。 *若要填充区域大于数据数目,列表可重复使用;相反,若列表 比要填充区域大时,则自动截断后面的数据。
G: 程序执行(Go)
格式:G[=地址][断点0][……断点] 地址: Debug开始执行的地址。
断点0……断点9:指定的0—10个临时中断点。
用途:*将CPU控制权由Debug转移给被调试中的程序。不设断点时,则程 序的执行或是中途失败或是正常结束。结束时,提示有“Program termminated nomally”,即程序结束正常,控制权再返回到 Debug。
*此时因数据有可能重写,若需再次执行,因重新装入。
*地址中,如未指定段址,则使用目标程序的CS寄存器中的值。当 地址省略时,则Debug使用目标程序的CS:IP寄存器的值开始执行。 且为与断点区分,地址参数前必须加等号,否则将其认为是第零 个断点。
*断点参数可指定10个临时断点。当程序执行到指定的断点地址时 则发生中止。与断点表内的次序无关,断点可按任意次序输入。 *中止时,将会显示寄存器的内容、标志位状态及CS:IP指出的指 令(也就是下一条将要执行的指令),然后是提示符“-”。 *若没有装入可执行程序或程序内容未知,有可能进入死状态。 *若目标程序的栈不起作用或太小,则可能引起系统“破碎”。
H: 执行十六进制算术运算(Hexadecimal) 格式:H 值1 值2
值1、2为0—FFFFH范围内的任意十六进制数。
用途:*用来求两个十六进制数的和、差,对结果显示为值1+值2及值1- 值2。如果值2 > 值1则显示其补码。
*虽然很少用,但事实还是很有用的,熟练掌握。
I: 端口的输入(Input) 格式:I 端口地址
端口地址:0—FFFF范围内的I/O端口地址。
用途:用来读取指定I/O端口地址,并以2位十六进制数加以显示。 警告:I指令将直接访问计算机硬件,不是所以错误检查都能进行,所以 使用是必须小心。对某个外设控制器分配端口的输入操作,可能 干涉系统固有的操作。对没有分配指定I/O端口的设备,或该端口 为写入专用端口等情况,I命令都不能保证可显示。
L: 装入命令(Load) 格式:L 地址 或
L 地址 驱动器 开始扇区 扇区数 地址: 存放从盘中读出数据的内存地址。 驱动器: A=0, B=1, C=2, 以此类推。
开始扇区:以十六进制数表示要最先装入的逻辑扇区号。 扇区数: 以十六进制数表示要装入连续扇区个数。
用途:*若输入了一个不完全的L命令时,则对下述磁盘文件进行装入: 1在Debug命令行中指定过的文件; 2由命令末尾参数N指定的文件。
*在地址中若未指定段址,则使用CS中的值。若为可执行文件按重 定位原则装入为可执行状态。
*装入后文件长度,或.exe文件程序的实际长度放入目标程序的BX 和CX两个寄存器中。高十六位放在BX中。
*若在命令行中给出所有参数,则不必用MS-DOS的文件系统访问磁 盘。
M: 数据传送(Move) 格式:M 地址范围 地址
地址范围:被复制域的始末地址,或始地址和长度。 地址: 数据复制目的域的起始地址。
用途:*对内存中数据进行复制。目的域被覆盖。
*若地址范围中无段址,则使用DS内容;若地址中无段址,使用地 址范围中的值。
N: 文件名或命令末尾的参数(Name) 格式:N 参数 [参数……]
参数:插入到仿真的PSP中去一个以上的文件名或者是开关项。 用途:*对磁盘读写操作L、W指定目标文件。
O: 端口的输出(Output) 格式:O 端口 字节 端口:I/O端口地址。
字节:写入I/O端口的0—FFFF范围的值。 用途:向I/O端口地址写入一字节。 警告:错误的操作将导致系统崩溃。
P: 循环或子程序处理(Procedure) 格式:P[=地址] [命令数] 地址: 执行的起始地址。 指令数:执行的指令条数。
用途:*循环或子程序处理。将循环、串指令、软件中断或子程序调用 视为单语句。执行中了,显示目标程序寄存器内容、标志位状态 和下一条要执行的指令。
*若地址参数中无段址,则使用CS中的值。完全忽略地址时,则从 程序中的CS:IP指定位置开始执行。
Q: 结束Debug操作(Quit) 格式:Q
用途:程序结束返回。对未保存的结果丢失。
R: 寄存器显示与更改(Register)
格式:R [寄存器]
寄存器:AX BX CX DX SP BP SI DI DS ES CS IP PC F
用途:*若R不带参数,则显示所有寄存器的内容和状态标志、下一指令。 *若指定新值,在显示内容后,给出冒句提示输入新值。回车结束。 *对状态字F,在连字符“-”后以空格间隔输入新值,次序不计。 *若直接回车,则跳过修改,寄存器内容不变。
S: 内存检索(Search) 格式:S 地址范围 列表
地址范围:想来你该明白是什么样了吧:) 列表: 欲检索的一个以上的字节值或字符串。
用途:*在指定的内存范围内检索列表的值。对每一个匹配的地址进行 显示。
*若起地址中无段址,默认为DS的值。 *检索范围不得大于FFFFH
*列表必须以分隔符(空格,逗号,制表符等)分隔;字符串要加 单引号或双引号括起,区分大小写。
T: 程序执行跟踪(Trace) 格式:T[=地址][指令数]
地址: 执行的第一条指令的地址。 指定数:执行的机器指令的条数。
用途:*执行单条指令,显示寄存器及下一条指令。 *在地址参数中若无段址,则默认为CS寄存器的值。 *若全部省略,则由CS:IP寄存器指出的地址开始执行。 *以后则顺序执行。
*对ROM内的跟踪应使用T命令。
警告:对Intel 8259 中断屏幕的内容(IBM PC及兼容机端口20H和21H) 的更改,或者系统功能调用(INT 21H),不能使用T指令,对上述 情况要使用P指令。
U: 反汇编(Unassemble) 格式:U [地址范围]
用途:*将机器指定解码为汇编语言的助记符。 *地址范围中无段址时,默认使用CS值。 *当始地址与实际边界不一致时,结果将不可信。
*若不含末地址或长度,则自给定始地址起反汇编32个字节。 *以后由前次U最后一指令的下一指令做32字节的反汇编。 *若从没用过U,则于CS:IP开始进行反汇编。 *只能对8086指令解码,对其它以DB来显示。
W: 写入文件或扇区(Write)
格式:W [地址] 或
W 地址 驱动器 开始扇区 扇区数
地址: 待写入盘的数据在内存中的起始位置。
驱动器:写入数据的盘的驱动器号(A=0,B=1,C=2,以下类推)。 始扇区:写入数据的最前的逻辑扇区号(0—FFFFH)。 扇区数:写入数据的连续扇区个数(0—FFFFH)。 用途:*将内存中的文件或一个个扇区传送到磁盘上。
*W若不带参数,或只有地址参数,则按BX:CX寄存器指出的字节,从内 存向磁盘写入数据。此时的文件名是此命令前最后一个使用过的文件名 ,或者是N命令中指定的文件,如果没有使用过N命令,则使用Debug命 令行中指定的文件。
*Debug的W命令,不能向扩展名为.EXE或.HEX的文件中写入数据。 *这可用改扩展名的方法得到应用,让其能对.exe文件写入。 *若无地址项,则认为是目标程序的CS:0100H。
*该命令可不通过MS-DOS的文件系统直接访问磁盘的逻辑扇区。但必须 以十六进制形式给在命令行中给定各参数。
*W命令不能对用于网络上的驱动器进行逻辑扇区写入处理。 警告:若参数有误,则可能破坏盘文件结构。 请务必先搞清再作试践,特别是对硬盘的操作。
正在阅读:
DEBUG命令详解11-15
电气设备的缺陷定级及缺陷管理05-05
《滴水穿石的启示》教学设计04-25
ChinaFSAE方程式赛车悬架系统设计分析 - 图文07-03
2012全国非谓语动词高考题06-01
场依存与场独立启示11-11
促进母乳喂养成功的十点措施03-19
2018旷工解除劳动合同协议范本最新版07-07
第三章 刚体力学07-08
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 详解
- 命令
- DEBUG
- 2017~2018学年度第一学期新目标英语九年级第一阶段教学质量评估Units1-4试卷(附答案)
- 各类纤维材料物理力学性能-修正
- 2016-2021年中国烯草酮行业细分市场研究及重点企业深度调查分析报告
- 编程练习题答案
- 浅谈小学数学教材插图的作用
- 国内特种电源研究所、企业名单汇总-21项电源国军标、47项电池国军标
- 2019年名校小升初英语全真模拟试题(8) 人教(PEP)2014秋 含答案
- 给排水考试题目与答案(特别重要)
- 太原市改革开放三十年的发展变化
- 企业核心员工薪酬激励制度研究毕业论文
- KYN28-12开关柜产品经理培训手册 - 图文
- 全国中考物理真题分类汇编微观世界与分子运动2 - 图文
- ERP原理与应用期末综合练习(2016年6月)资料
- TCS230使用手册(C51) - 图文
- 自控控制原理习题 王建辉 第7章答案 - 图文
- 司法相关谜语
- 中餐厅服务教案
- 基于proteus的音频功率放大器前置放大电路的仿真分析
- 第7章答案
- 总复习 - 单选 判断