网站大量收购独家精品文档,联系QQ:2885784924

debug命令学习指导程序.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
调试程序DEBUG.EXEDEBUG.EXE是DOS提供的可用于调试可执行程序的一个工具软件,也是可用于汇编语言程序设计的一种调试工具[路径\文件名]?[参数1]?[参数2]运行Debug程序时,如果不带被调试程序,则所有段寄存器值相等,都指向当前可用的主存段;除SP之外的通用寄存器都设置为0,而SP指示当前堆栈顶在这个段的尾部;IP=0100h;状态标志都是清0状态。 运行Debug程序时,如果带入的被调试程序扩展名是.EXE,则需要重新定位。此时,CS?:?IP和SS?:?SP根据被调试程序确定,分别指向代码段和堆栈段。DS=ES指向当前可用的主存段,BX.CX包含被调试文件大小的字节数(BX为高16位),其他通用寄存器为0,状态标志都是清0状态。 溢出OF 方向DF 中断IF 负号SF 零ZF 辅助进位AF 奇偶PF 进位CF 置位状态1 OV DN EI NG ZR AC PE CY 复位状态0 NV UP DI PL NZ NA PO NC 表1 DEBUG中标志位的符号表示 3、DEBUG的命令及其参数 (一)DEBUG的命令 Debug的命令都是一个字母,后跟一个或多个参数:?? 字母?[参数]命令的使用中注意:字母不分大小写; 只使用16进制数,;分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符 dcs:100 110 d cs:100 110 d,cs:100,110 (4) 只有在按ENTER键之后,输入的命令才有效。可以用Ctrl+Break中止命令的执行;∧error 错误原因是,命令D要求第二个地址中只包含16进制的偏移值。 (6)不能使用符号常量和符号地址。 (7)不能使用绝大部分伪指令,但两个最常用的伪指令DB和DW能被使用,用于直接把字节和字数据置人相应存储单元。如: DB 1,2,3,4,“ABCD” DW 1234,5678 (8)可以使用属性操作符“PTR”对DEBUG不能明确类型的操作数进行说明。如:INC BYTE PTR [BX]。 (9)DEBUG的A命令汇编程序能根据转移目标地址的距离自动地汇编出短、近或远的转移或调用指令。当然,这也能由“SHORT”、“NEAR PTR”或FAR PTR”对转移目标地址进行说明来实现。 (10)远返回指令的助记符在DEBUG中为RETF。 (11)指令前缀助记符必须在相关的指令之前输入,也可以分别放在不同的行。 (12)串操作指令只能用其字节型或字型的助记符形式,如:MOVSB、CMPSW等。 (13)可以使用段超越前缀助记符CS:、DS:、ES:和SS:。如: DS: MOV AL,[BP] (二)DEBUG的命令参数 许多命令的参数是主存逻辑地址,形式是“段地址?:?偏移地址”。其中,段地址可以是段寄存器或数值;偏移地址是数值。如果不输入段地址,则采用默认值,可以是缺省段寄存器值。如果没有提供偏移地址,则通常就是当前偏移地址。 对主存操作的命令还支持地址范围这种参数 ①?地址 地址——前者表示起始地址,要用“段值:偏移量”来表达,后者表示终止地址,只用“偏移量”来表示; 例如:200:50 100——段值为200,偏移量从50到100的内存区域, ②?地址 长度——前者表示起始地址,要用“段值:偏移量”来表达,后者表示该区域的大小,用字母’L’开头的数值来表示。 例如:200:50 L100——段值为200,偏移量从50开始的100个字节区域。 4、DEBUG命令的使用 DEBUG的命令共有19条,这里具体介绍常用的几条,其余的请同学们课后自行消化。 (1)装人命令(Load) 用途:把文件或特定磁盘扇区的内容加载到内存L?[地址]?????????????????? ;1:装入由N命令指定的文件当使用不带参数的 命令时,在 debug 命令行上指定的文件将加载到内存中,从地址 CS:100 开始。Debug 同时将 BX 和 CX 寄存器设置为加载的字节数。如果不在 debug 命令行指定文件,所装入的文件将是最近使用 n 命令指定的文件。如果使用带 address 参数的 命令,Debug 将从内存位置 address 开始加载文件或指定扇区的内容。L?地址?驱动器?扇区号?扇区数????用于从指定的驱动器中的盘上装人数据,并把数据存放在存储器中指定的address开始的单元中。 例如: L 4BA:100 1 OF 6D 从驱动器B的盘上装人数据,并把数据存放在以4BA:100开始的内存中。从相对扇区0FH(15),即该软盘的第16扇区开始,传送6DH(109)

文档评论(0)

挺进公司 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档