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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一 利用DEBUG调试程序调试程序段

实验一 利用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命令: 显示所有寄存器内容: 格式:-R↙ 功能:以十六进制形式显示CPU内部各寄存器的值:以符号形式标志寄存器各标志位(除TF外)的值,并将CS:IP所指的内存内容反汇编成一条指令,可视为将要执行的指令。 从显示可知,CS=11A7H, IP=0000H. 修改寄存器 格式:-R 寄存器名↙ 功能:DEBUG首先显示指定寄存器的当前值,并在下一行首给出提示“:”,等待用户输入新值,若直接回车相当于不个忙寄存器的值。 由显示可知,用E命令修改,再查看可发现数据已经被改了。 修改标志值 格式:-RF↙ 功能:先用符号显示当前各标志位的值,并在末尾给出提示符“-”,然后等待用户以符号形式输入新的标志值,对输入的次序没有要求,各标志值之间也可没有空格;若直接在“-”之后回车,则保留原标志值。 由显示可知,相应的标志值改变了。 A命令 格式:-A 内存地址↙ 执行汇编命令A后,相应的指令对应的机器码将会依次存放在指定的内存单元中,并提示下一地址。 U命令 格式:-U 内存块↙ 由显示可知,反汇编命令U从指定的内存地址开始对内存块进行反汇编,并分三列显示反汇编的结果。 N命令 格式:-N【e】【PATH】文件名.扩展名↙ W命令 L 命令 格式:-W/L 内存地址 由显示可知,命令N为命令W和命令L指定文件,而命令W把指定内存块的内容写入命令N指定文件中,命令L则将其文件装入内存地址中。 T命令 单步执行 格式:-T=内存地址↙ 由显示可知,T命令将内存地址的段地址和偏移地址修改CS和IP,然后执行由CS:IP指向的内存单元处的一条指令,显示各寄存器的值,并反编下一条指令,然后返回DEBUG状态。 多步执行 格式:-T=内存地址 执行指令条数↙ 可知,该指令从指定的内存地址开始执行,直到执行的指令条数与命令中给出的条数相等为止。图为执行从10DB:100H开始的两条指令。 G命令 格式:-G=内存地址 断点地址↙ 由图示可知,G命令从给出的内存地址0100开始取指令执行,直到程序中遇到结束程序指令为止。如该命令中INT 3。 D命令 格式:-D内存块↙ E命令 格式1:-E内存地址 字符或数值串↙ 格式2:-E内存地址 由图示可知,D命令显示内存2000与2003中的内容,而E命令则能修改内存地址中的内容。 F命令 格式:-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 命令 格式:-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 文件名.扩展名↙ 指导教师意

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档